diff --git a/out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.html b/out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.html
deleted file mode 100644
index 3855989..0000000
--- a/out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.html
+++ /dev/null
@@ -1,994 +0,0 @@
-
-
-
-
-
- State Machine Explorer - click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.json b/out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.json
deleted file mode 100644
index cc9e13f..0000000
--- a/out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.json
+++ /dev/null
@@ -1,374 +0,0 @@
-{
- "metadata" : {
- "triggers" : [ {
- "event" : "FINISH",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "finishOrder",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 34
- }, {
- "event" : "AUDIT_EVENT",
- "className" : "click.kamil.examples.statemachine.extended.web.AuditInterceptor",
- "methodName" : "preHandle",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 16
- }, {
- "event" : "EXTERNAL_TRIGGER",
- "className" : "click.kamil.examples.statemachine.extended.service.OrderService",
- "methodName" : "processSubmit",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 19
- }, {
- "event" : "SUBMIT_EVENT",
- "className" : "click.kamil.examples.statemachine.extended.service.OrderService",
- "methodName" : "processSubmit",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 20
- }, {
- "event" : "CANCEL_EVENT",
- "className" : "click.kamil.examples.statemachine.extended.service.OrderService",
- "methodName" : "processCancel",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 25
- }, {
- "event" : "[LIFECYCLE:RESTORE]",
- "className" : "click.kamil.examples.statemachine.extended.service.OrderService",
- "methodName" : "resumeOrder",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 29
- }, {
- "event" : "REACTIVE_EVENT",
- "className" : "click.kamil.examples.statemachine.extended.service.ReactiveOrderService",
- "methodName" : "processReactive",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 18
- } ],
- "entryPoints" : [ {
- "type" : "REST",
- "name" : "POST /api/orders/submit",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "submitOrder",
- "metadata" : {
- "path" : "/api/orders/submit",
- "verb" : "POST"
- },
- "parameters" : [ ]
- }, {
- "type" : "REST",
- "name" : "POST /api/orders/cancel",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "cancelOrder",
- "metadata" : {
- "path" : "/api/orders/cancel",
- "verb" : "POST"
- },
- "parameters" : [ ]
- }, {
- "type" : "REST",
- "name" : "POST /api/orders/finish",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "finishOrder",
- "metadata" : {
- "path" : "/api/orders/finish",
- "verb" : "POST"
- },
- "parameters" : [ ]
- }, {
- "type" : "REST",
- "name" : "POST /api/orders/resume",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "resumeOrder",
- "metadata" : {
- "path" : "/api/orders/resume",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- }, {
- "type" : "REST",
- "name" : "POST /api/orders/reactive",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "reactiveOrder",
- "metadata" : {
- "path" : "/api/orders/reactive",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- }, {
- "type" : "CUSTOM",
- "name" : "INTERCEPTOR: AuditInterceptor.preHandle",
- "className" : "click.kamil.examples.statemachine.extended.web.AuditInterceptor",
- "methodName" : "preHandle",
- "metadata" : {
- "interceptorType" : "Spring MVC Interceptor"
- },
- "parameters" : [ ]
- } ],
- "callChains" : [ {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/orders/submit",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "submitOrder",
- "metadata" : {
- "path" : "/api/orders/submit",
- "verb" : "POST"
- },
- "parameters" : [ ]
- },
- "methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.submitOrder", "click.kamil.examples.statemachine.extended.service.OrderService.processSubmit" ],
- "triggerPoint" : {
- "event" : "EXTERNAL_TRIGGER",
- "className" : "click.kamil.examples.statemachine.extended.service.OrderService",
- "methodName" : "processSubmit",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 19
- }
- }, {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/orders/submit",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "submitOrder",
- "metadata" : {
- "path" : "/api/orders/submit",
- "verb" : "POST"
- },
- "parameters" : [ ]
- },
- "methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.submitOrder", "click.kamil.examples.statemachine.extended.service.OrderService.processSubmit" ],
- "triggerPoint" : {
- "event" : "SUBMIT_EVENT",
- "className" : "click.kamil.examples.statemachine.extended.service.OrderService",
- "methodName" : "processSubmit",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 20
- }
- }, {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/orders/cancel",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "cancelOrder",
- "metadata" : {
- "path" : "/api/orders/cancel",
- "verb" : "POST"
- },
- "parameters" : [ ]
- },
- "methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.cancelOrder", "click.kamil.examples.statemachine.extended.service.OrderService.processCancel" ],
- "triggerPoint" : {
- "event" : "CANCEL_EVENT",
- "className" : "click.kamil.examples.statemachine.extended.service.OrderService",
- "methodName" : "processCancel",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 25
- }
- }, {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/orders/finish",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "finishOrder",
- "metadata" : {
- "path" : "/api/orders/finish",
- "verb" : "POST"
- },
- "parameters" : [ ]
- },
- "methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.finishOrder" ],
- "triggerPoint" : {
- "event" : "FINISH",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "finishOrder",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 34
- }
- }, {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/orders/resume",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "resumeOrder",
- "metadata" : {
- "path" : "/api/orders/resume",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.resumeOrder", "click.kamil.examples.statemachine.extended.service.OrderService.resumeOrder" ],
- "triggerPoint" : {
- "event" : "[LIFECYCLE:RESTORE]",
- "className" : "click.kamil.examples.statemachine.extended.service.OrderService",
- "methodName" : "resumeOrder",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 29
- }
- }, {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/orders/reactive",
- "className" : "click.kamil.examples.statemachine.extended.web.OrderController",
- "methodName" : "reactiveOrder",
- "metadata" : {
- "path" : "/api/orders/reactive",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.reactiveOrder", "click.kamil.examples.statemachine.extended.service.ReactiveOrderService.processReactive" ],
- "triggerPoint" : {
- "event" : "REACTIVE_EVENT",
- "className" : "click.kamil.examples.statemachine.extended.service.ReactiveOrderService",
- "methodName" : "processReactive",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 18
- }
- }, {
- "entryPoint" : {
- "type" : "CUSTOM",
- "name" : "INTERCEPTOR: AuditInterceptor.preHandle",
- "className" : "click.kamil.examples.statemachine.extended.web.AuditInterceptor",
- "methodName" : "preHandle",
- "metadata" : {
- "interceptorType" : "Spring MVC Interceptor"
- },
- "parameters" : [ ]
- },
- "methodChain" : [ "click.kamil.examples.statemachine.extended.web.AuditInterceptor.preHandle" ],
- "triggerPoint" : {
- "event" : "AUDIT_EVENT",
- "className" : "click.kamil.examples.statemachine.extended.web.AuditInterceptor",
- "methodName" : "preHandle",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 16
- }
- } ],
- "properties" : {
- "default" : {
- "app.states.initial" : "INIT_STATE"
- },
- "prod" : {
- "app.states.initial" : "PROD_INITIAL"
- }
- }
- },
- "name" : "click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig",
- "renderChoicesAsDiamonds" : true,
- "startStates" : [ "${app.states.initial:START}" ],
- "transitions" : [ {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"START\"",
- "fullIdentifier" : "START"
- } ],
- "targetStates" : [ {
- "rawName" : "\"PROCESSING\"",
- "fullIdentifier" : "PROCESSING"
- } ],
- "event" : "SUBMIT_EVENT",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"PROCESSING\"",
- "fullIdentifier" : "PROCESSING"
- } ],
- "targetStates" : [ {
- "rawName" : "\"COMPLETED\"",
- "fullIdentifier" : "COMPLETED"
- } ],
- "event" : "FINISH",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"PROCESSING\"",
- "fullIdentifier" : "PROCESSING"
- } ],
- "targetStates" : [ {
- "rawName" : "\"CANCELLED\"",
- "fullIdentifier" : "CANCELLED"
- } ],
- "event" : "CANCEL_EVENT",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"START\"",
- "fullIdentifier" : "START"
- } ],
- "targetStates" : [ {
- "rawName" : "\"PROCESSING\"",
- "fullIdentifier" : "PROCESSING"
- } ],
- "event" : "REACTIVE_EVENT",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"START\"",
- "fullIdentifier" : "START"
- } ],
- "targetStates" : [ {
- "rawName" : "\"START\"",
- "fullIdentifier" : "START"
- } ],
- "event" : "AUDIT_EVENT",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"START\"",
- "fullIdentifier" : "START"
- } ],
- "targetStates" : [ {
- "rawName" : "\"PROCESSING\"",
- "fullIdentifier" : "PROCESSING"
- } ],
- "event" : "EXTERNAL_TRIGGER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- } ],
- "endStates" : [ "CANCELLED", "COMPLETED" ]
-}
diff --git a/out_maven/click.kamil.maven.core.MavenOrderStateMachine/click.kamil.maven.core.MavenOrderStateMachine.html b/out_maven/click.kamil.maven.core.MavenOrderStateMachine/click.kamil.maven.core.MavenOrderStateMachine.html
deleted file mode 100644
index 964cc30..0000000
--- a/out_maven/click.kamil.maven.core.MavenOrderStateMachine/click.kamil.maven.core.MavenOrderStateMachine.html
+++ /dev/null
@@ -1,770 +0,0 @@
-
-
-
-
-
- State Machine Explorer - click.kamil.maven.core.MavenOrderStateMachine
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/out_maven/click.kamil.maven.core.MavenOrderStateMachine/click.kamil.maven.core.MavenOrderStateMachine.json b/out_maven/click.kamil.maven.core.MavenOrderStateMachine/click.kamil.maven.core.MavenOrderStateMachine.json
deleted file mode 100644
index 37d159a..0000000
--- a/out_maven/click.kamil.maven.core.MavenOrderStateMachine/click.kamil.maven.core.MavenOrderStateMachine.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{
- "metadata" : {
- "triggers" : [ {
- "event" : "SUBMIT",
- "className" : "click.kamil.maven.core.MavenOrderStateMachine.OrderController",
- "methodName" : "submitOrder",
- "sourceFile" : "core-module/src/main/java/click/kamil/maven/core/MavenOrderStateMachine.java",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 40
- }, {
- "event" : "ORDER_EVENT",
- "className" : "click.kamil.maven.core.MavenOrderStateMachine.OrderService",
- "methodName" : "onMessage",
- "sourceFile" : "core-module/src/main/java/click/kamil/maven/core/MavenOrderStateMachine.java",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 52
- } ],
- "entryPoints" : [ {
- "type" : "REST",
- "name" : "POST /maven/orders/submit",
- "className" : "click.kamil.maven.core.MavenOrderStateMachine.OrderController",
- "methodName" : "submitOrder",
- "sourceFile" : "core-module/src/main/java/click/kamil/maven/core/MavenOrderStateMachine.java",
- "metadata" : {
- "path" : "/maven/orders/submit",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- }, {
- "type" : "REST",
- "name" : "POST /reactive/order",
- "className" : "click.kamil.maven.api.ReactiveOrderApi",
- "methodName" : "orderRoutes",
- "sourceFile" : "api-module/src/main/java/click/kamil/maven/api/ReactiveOrderApi.java",
- "metadata" : {
- "path" : "/reactive/order",
- "verb" : "POST",
- "style" : "WebFlux Functional"
- },
- "parameters" : [ ]
- }, {
- "type" : "REST",
- "name" : "POST /maven/orders/submit",
- "className" : "click.kamil.maven.api.MavenOrderApi",
- "methodName" : "submitOrder",
- "sourceFile" : "api-module/src/main/java/click/kamil/maven/api/MavenOrderApi.java",
- "metadata" : {
- "path" : "/maven/orders/submit",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- }, {
- "type" : "JMS",
- "name" : "JMS: order.queue",
- "className" : "click.kamil.maven.api.JmsOrderListener",
- "methodName" : "onMessage",
- "sourceFile" : null,
- "metadata" : {
- "protocol" : "JMS",
- "destination" : "order.queue"
- },
- "parameters" : [ {
- "name" : "message",
- "type" : "String",
- "annotations" : [ ]
- } ]
- } ],
- "callChains" : [ {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /maven/orders/submit",
- "className" : "click.kamil.maven.core.MavenOrderStateMachine.OrderController",
- "methodName" : "submitOrder",
- "sourceFile" : "core-module/src/main/java/click/kamil/maven/core/MavenOrderStateMachine.java",
- "metadata" : {
- "path" : "/maven/orders/submit",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- },
- "methodChain" : [ "click.kamil.maven.core.MavenOrderStateMachine.OrderController.submitOrder" ],
- "triggerPoint" : {
- "event" : "SUBMIT",
- "className" : "click.kamil.maven.core.MavenOrderStateMachine.OrderController",
- "methodName" : "submitOrder",
- "sourceFile" : "core-module/src/main/java/click/kamil/maven/core/MavenOrderStateMachine.java",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 40
- }
- } ],
- "properties" : {
- "default" : { }
- }
- },
- "name" : "click.kamil.maven.core.MavenOrderStateMachine",
- "renderChoicesAsDiamonds" : true,
- "startStates" : [ "INIT" ],
- "transitions" : [ {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"INIT\"",
- "fullIdentifier" : "INIT"
- } ],
- "targetStates" : [ {
- "rawName" : "\"BUSY\"",
- "fullIdentifier" : "BUSY"
- } ],
- "event" : "SUBMIT",
- "guard" : null,
- "actions" : [ {
- "expression" : "loggingAction()",
- "isLambda" : false,
- "internalLogic" : "context -> {\n System.out.println(\"LOG: State transition in progress...\");\n}\n",
- "lineNumber" : 25,
- "className" : "click.kamil.maven.core.MavenOrderStateMachine",
- "sourceFile" : "core-module/src/main/java/click/kamil/maven/core/MavenOrderStateMachine.java"
- } ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"BUSY\"",
- "fullIdentifier" : "BUSY"
- } ],
- "targetStates" : [ {
- "rawName" : "\"DONE\"",
- "fullIdentifier" : "DONE"
- } ],
- "event" : "ORDER_EVENT",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- } ],
- "endStates" : [ "DONE" ]
-}
diff --git a/out_maven/click.kamil.maven.core.MavenOrderStateMachine/click.kamil.maven.core.MavenOrderStateMachine.puml b/out_maven/click.kamil.maven.core.MavenOrderStateMachine/click.kamil.maven.core.MavenOrderStateMachine.puml
deleted file mode 100644
index 98f60a8..0000000
--- a/out_maven/click.kamil.maven.core.MavenOrderStateMachine/click.kamil.maven.core.MavenOrderStateMachine.puml
+++ /dev/null
@@ -1,31 +0,0 @@
-@startuml
-!pragma layout smetana
-set separator none
-hide empty description
-hide stereotype
-skinparam state {
- BackgroundColor white
- BorderColor #94a3b8
- BorderThickness 1
- FontName Inter
- FontSize 9
- FontStyle bold
- RoundCorner 20
- Padding 1
-}
-skinparam shadowing false
-skinparam ArrowFontName JetBrains Mono
-skinparam ArrowFontSize 8
-skinparam ArrowColor #cbd5e1
-skinparam ArrowThickness 1
-skinparam dpi 110
-skinparam svgLinkTarget _self
-
-[*] --> INIT
-
-
-INIT -[#1E90FF,bold]-> BUSY <> <> : ORDER_EVENT / loggingAction()
-
-DONE --> [*]
-@enduml
-
diff --git a/out_multi/click.kamil.multi.core.OrderStateMachineConfig/click.kamil.multi.core.OrderStateMachineConfig.html b/out_multi/click.kamil.multi.core.OrderStateMachineConfig/click.kamil.multi.core.OrderStateMachineConfig.html
deleted file mode 100644
index d731eec..0000000
--- a/out_multi/click.kamil.multi.core.OrderStateMachineConfig/click.kamil.multi.core.OrderStateMachineConfig.html
+++ /dev/null
@@ -1,735 +0,0 @@
-
-
-
-
-
- State Machine Explorer - click.kamil.multi.core.OrderStateMachineConfig
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/out_multi/click.kamil.multi.core.OrderStateMachineConfig/click.kamil.multi.core.OrderStateMachineConfig.json b/out_multi/click.kamil.multi.core.OrderStateMachineConfig/click.kamil.multi.core.OrderStateMachineConfig.json
deleted file mode 100644
index 0f80575..0000000
--- a/out_multi/click.kamil.multi.core.OrderStateMachineConfig/click.kamil.multi.core.OrderStateMachineConfig.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
- "metadata" : {
- "triggers" : [ {
- "event" : "SUBMIT",
- "className" : "click.kamil.multi.core.OrderController",
- "methodName" : "submitOrder",
- "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderController.java",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 18
- } ],
- "entryPoints" : [ {
- "type" : "REST",
- "name" : "POST /orders/submit",
- "className" : "click.kamil.multi.core.OrderController",
- "methodName" : "submitOrder",
- "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderController.java",
- "metadata" : {
- "path" : "/orders/submit",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- }, {
- "type" : "REST",
- "name" : "POST /orders/submit",
- "className" : "click.kamil.multi.api.OrderApi",
- "methodName" : "submitOrder",
- "sourceFile" : "api-module/src/main/java/click/kamil/multi/api/OrderApi.java",
- "metadata" : {
- "path" : "/orders/submit",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- } ],
- "callChains" : [ {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /orders/submit",
- "className" : "click.kamil.multi.core.OrderController",
- "methodName" : "submitOrder",
- "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderController.java",
- "metadata" : {
- "path" : "/orders/submit",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- },
- "methodChain" : [ "click.kamil.multi.core.OrderController.submitOrder" ],
- "triggerPoint" : {
- "event" : "SUBMIT",
- "className" : "click.kamil.multi.core.OrderController",
- "methodName" : "submitOrder",
- "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderController.java",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 18
- }
- } ],
- "properties" : {
- "default" : { }
- }
- },
- "name" : "click.kamil.multi.core.OrderStateMachineConfig",
- "renderChoicesAsDiamonds" : true,
- "startStates" : [ "NEW" ],
- "transitions" : [ {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"NEW\"",
- "fullIdentifier" : "NEW"
- } ],
- "targetStates" : [ {
- "rawName" : "\"PROCESSING\"",
- "fullIdentifier" : "PROCESSING"
- } ],
- "event" : "SUBMIT",
- "guard" : null,
- "actions" : [ {
- "expression" : "processAction()",
- "isLambda" : false,
- "internalLogic" : "@Override default void execute(StateContext context){\n System.out.println(\"Processing order: \" + context.getMessageHeader(\"orderId\"));\n}\n",
- "lineNumber" : 31,
- "className" : "click.kamil.multi.core.OrderStateMachineConfig",
- "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderStateMachineConfig.java"
- } ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"PROCESSING\"",
- "fullIdentifier" : "PROCESSING"
- } ],
- "targetStates" : [ {
- "rawName" : "\"COMPLETED\"",
- "fullIdentifier" : "COMPLETED"
- } ],
- "event" : "FINISH",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- } ],
- "endStates" : [ "COMPLETED" ]
-}
diff --git a/out_multi/click.kamil.multi.core.OrderStateMachineConfig/click.kamil.multi.core.OrderStateMachineConfig.puml b/out_multi/click.kamil.multi.core.OrderStateMachineConfig/click.kamil.multi.core.OrderStateMachineConfig.puml
deleted file mode 100644
index 3b59d0b..0000000
--- a/out_multi/click.kamil.multi.core.OrderStateMachineConfig/click.kamil.multi.core.OrderStateMachineConfig.puml
+++ /dev/null
@@ -1,32 +0,0 @@
-@startuml
-!pragma layout smetana
-set separator none
-hide empty description
-hide stereotype
-skinparam state {
- BackgroundColor white
- BorderColor #94a3b8
- BorderThickness 1
- FontName Inter
- FontSize 9
- FontStyle bold
- RoundCorner 20
- Padding 1
-}
-skinparam shadowing false
-skinparam ArrowFontName JetBrains Mono
-skinparam ArrowFontSize 8
-skinparam ArrowColor #cbd5e1
-skinparam ArrowThickness 1
-skinparam dpi 110
-skinparam svgLinkTarget _self
-
-[*] --> NEW
-
-
-NEW -[#1E90FF,bold]-> PROCESSING <> <> : SUBMIT / processAction()
-PROCESSING -[#1E90FF,bold]-> COMPLETED <> <> : FINISH
-
-COMPLETED --> [*]
-@enduml
-
diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/CallGraphBuilder.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/CallGraphBuilder.java
index 15cb7b7..415e2ca 100644
--- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/CallGraphBuilder.java
+++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/CallGraphBuilder.java
@@ -4,19 +4,32 @@ import click.kamil.springstatemachineexporter.analysis.model.CallChain;
import click.kamil.springstatemachineexporter.analysis.model.EntryPoint;
import click.kamil.springstatemachineexporter.analysis.model.TriggerPoint;
import click.kamil.springstatemachineexporter.ast.common.CodebaseContext;
-import lombok.RequiredArgsConstructor;
+import click.kamil.springstatemachineexporter.analysis.resolver.ConstantResolver;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.jdt.core.dom.*;
import java.util.*;
@Slf4j
-@RequiredArgsConstructor
public class CallGraphBuilder {
private final CodebaseContext context;
+ private final ConstantResolver constantResolver;
+ private String currentMethodFqn;
+ private Map> graph;
+
+ @lombok.Data
+ private static class CallEdge {
+ private final String targetMethod;
+ private final List arguments;
+ }
+
+ public CallGraphBuilder(CodebaseContext context) {
+ this.context = context;
+ this.constantResolver = new ConstantResolver();
+ }
public List findChains(List entryPoints, List triggers) {
- Map> callGraph = buildCallGraph();
+ Map> callGraph = buildCallGraph();
List chains = new ArrayList<>();
for (EntryPoint ep : entryPoints) {
@@ -25,9 +38,10 @@ public class CallGraphBuilder {
String targetMethod = tp.getClassName() + "." + tp.getMethodName();
List path = findPath(startMethod, targetMethod, callGraph, new HashSet<>());
if (path != null) {
+ TriggerPoint resolvedTp = resolveTriggerPointParameters(tp, path, callGraph);
chains.add(CallChain.builder()
.entryPoint(ep)
- .triggerPoint(tp)
+ .triggerPoint(resolvedTp)
.methodChain(path)
.build());
}
@@ -36,12 +50,57 @@ public class CallGraphBuilder {
return chains;
}
- private Map> buildCallGraph() {
- Map> graph = new HashMap<>();
+ private TriggerPoint resolveTriggerPointParameters(TriggerPoint tp, List path, Map> callGraph) {
+ if (path.size() < 2) return tp;
+
+ String event = tp.getEvent();
+ if (event == null || event.isEmpty() || event.contains("\"")) return tp;
+
+ TypeDeclaration td = context.getTypeDeclaration(tp.getClassName());
+ if (td != null) {
+ MethodDeclaration md = context.findMethodDeclaration(td, tp.getMethodName(), true);
+ if (md != null) {
+ int paramIndex = -1;
+ for (int i = 0; i < md.parameters().size(); i++) {
+ SingleVariableDeclaration svd = (SingleVariableDeclaration) md.parameters().get(i);
+ if (svd.getName().getIdentifier().equals(event)) {
+ paramIndex = i;
+ break;
+ }
+ }
+
+ if (paramIndex >= 0) {
+ String caller = path.get(path.size() - 2);
+ String target = path.get(path.size() - 1);
+ List edges = callGraph.get(caller);
+ if (edges != null) {
+ for (CallEdge edge : edges) {
+ if (edge.getTargetMethod().equals(target) || isHeuristicMatch(edge.getTargetMethod(), target)) {
+ if (paramIndex < edge.getArguments().size()) {
+ String resolvedValue = edge.getArguments().get(paramIndex);
+ if (resolvedValue != null) {
+ return TriggerPoint.builder()
+ .event(resolvedValue)
+ .className(tp.getClassName())
+ .methodName(tp.getMethodName())
+ .sourceFile(tp.getSourceFile())
+ .lineNumber(tp.getLineNumber())
+ .build();
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return tp;
+ }
+
+ private Map> buildCallGraph() {
+ graph = new HashMap<>();
for (CompilationUnit cu : context.getCompilationUnits()) {
cu.accept(new ASTVisitor() {
- private String currentMethodFqn;
-
@Override
public boolean visit(MethodDeclaration node) {
TypeDeclaration td = findEnclosingType(node);
@@ -55,8 +114,31 @@ public class CallGraphBuilder {
public boolean visit(MethodInvocation node) {
if (currentMethodFqn != null) {
List calledMethods = resolveCalledMethodsPolymorphic(node);
+ List args = resolveArguments(node.arguments());
for (String calledMethod : calledMethods) {
- graph.computeIfAbsent(currentMethodFqn, k -> new ArrayList<>()).add(calledMethod);
+ graph.computeIfAbsent(currentMethodFqn, k -> new ArrayList<>()).add(new CallEdge(calledMethod, args));
+ }
+ }
+ return super.visit(node);
+ }
+
+ @Override
+ public boolean visit(SuperMethodInvocation node) {
+ if (currentMethodFqn != null) {
+ String methodName = node.getName().getIdentifier();
+ TypeDeclaration td = findEnclosingType(node);
+ if (td != null) {
+ String superFqn = context.getSuperclassFqn(td);
+ if (superFqn != null) {
+ TypeDeclaration superTd = context.getTypeDeclaration(superFqn);
+ if (superTd != null) {
+ String calledMethod = resolveMethodInType(superTd, methodName);
+ if (calledMethod != null) {
+ List args = resolveArguments(node.arguments());
+ graph.computeIfAbsent(currentMethodFqn, k -> new ArrayList<>()).add(new CallEdge(calledMethod, args));
+ }
+ }
+ }
}
}
return super.visit(node);
@@ -66,6 +148,19 @@ public class CallGraphBuilder {
return graph;
}
+ private List resolveArguments(List> astArguments) {
+ List args = new ArrayList<>();
+ for (Object argObj : astArguments) {
+ Expression expr = (Expression) argObj;
+ String val = constantResolver.resolve(expr, context);
+ if (val == null && expr instanceof SimpleName sn) {
+ val = sn.getIdentifier();
+ }
+ args.add(val);
+ }
+ return args;
+ }
+
private List resolveCalledMethodsPolymorphic(MethodInvocation node) {
String baseCalled = resolveCalledMethod(node);
if (baseCalled == null) return Collections.emptyList();
@@ -73,7 +168,6 @@ public class CallGraphBuilder {
List allResolved = new ArrayList<>();
allResolved.add(baseCalled);
- // Polymorphic fan-out
if (baseCalled.contains(".")) {
String className = baseCalled.substring(0, baseCalled.lastIndexOf('.'));
String methodName = baseCalled.substring(baseCalled.lastIndexOf('.') + 1);
@@ -92,39 +186,43 @@ public class CallGraphBuilder {
String methodName = node.getName().getIdentifier();
if (receiver == null) {
- // Local call or static import (simplified)
TypeDeclaration td = findEnclosingType(node);
- return td != null ? context.getFqn(td) + "." + methodName : null;
+ if (td != null) {
+ return resolveMethodInType(td, methodName);
+ }
+ return null;
}
- // Try to resolve receiver type
- // This is a simplified resolution without full JDT bindings.
- // It works for local variables and fields within the same project.
ITypeBinding binding = receiver.resolveTypeBinding();
if (binding != null) {
return binding.getQualifiedName() + "." + methodName;
}
- // Fallback: heuristic resolution for simple cases like 'orderService.process()'
if (receiver instanceof SimpleName sn) {
String receiverName = sn.getIdentifier();
- // Look for fields or variables (simplified)
- // For now, we'll return a "best guess" if we can't resolve it perfectly
- // In a real implementation, we'd use JDT bindings more heavily.
return receiverName + "." + methodName;
}
return null;
}
- private List findPath(String start, String target, Map> graph, Set visited) {
+ private String resolveMethodInType(TypeDeclaration td, String methodName) {
+ MethodDeclaration md = context.findMethodDeclaration(td, methodName, true);
+ if (md != null) {
+ TypeDeclaration declaringTd = findEnclosingType(md);
+ return context.getFqn(declaringTd) + "." + methodName;
+ }
+ return null;
+ }
+
+ private List findPath(String start, String target, Map> graph, Set visited) {
if (start.equals(target)) return new ArrayList<>(List.of(start));
if (!visited.add(start)) return null;
- List neighbors = graph.get(start);
+ List neighbors = graph.get(start);
if (neighbors != null) {
- for (String neighbor : neighbors) {
- // Heuristic: neighbor might be 'orderService.process' while target is 'click.kamil...OrderService.process'
+ for (CallEdge edge : neighbors) {
+ String neighbor = edge.getTargetMethod();
if (neighbor.equals(target) || isHeuristicMatch(neighbor, target)) {
return new ArrayList<>(List.of(start, target));
}
@@ -139,14 +237,10 @@ public class CallGraphBuilder {
}
private boolean isHeuristicMatch(String neighbor, String target) {
- // Match 'orderService.process' with 'click.kamil.OrderService.process'
if (target.endsWith("." + neighbor)) return true;
- // Match simple names if we don't have FQN
String simpleTarget = target.contains(".") ? target.substring(target.lastIndexOf('.') + 1) : target;
String simpleNeighbor = neighbor.contains(".") ? neighbor.substring(neighbor.lastIndexOf('.') + 1) : neighbor;
-
- // Very basic heuristic for now
- return neighbor.toLowerCase().contains(simpleTarget.toLowerCase()) || target.toLowerCase().contains(simpleNeighbor.toLowerCase());
+ return simpleNeighbor.equals(simpleTarget);
}
private TypeDeclaration findEnclosingType(ASTNode node) {
diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/GenericEventDetector.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/GenericEventDetector.java
index ada4a22..96d7043 100644
--- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/GenericEventDetector.java
+++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/GenericEventDetector.java
@@ -21,7 +21,11 @@ public class GenericEventDetector {
public List detect(CompilationUnit cu) {
List triggers = new ArrayList<>();
- String fileName = cu.getJavaElement() != null ? cu.getJavaElement().getElementName() : "unknown";
+ String fileName = "unknown";
+ try {
+ if (cu.getJavaElement() != null) fileName = cu.getJavaElement().getElementName();
+ } catch (Exception e) {}
+
log.debug("Scanning for triggers in {}", fileName);
cu.accept(new ASTVisitor() {
@@ -29,12 +33,10 @@ public class GenericEventDetector {
public boolean visit(MethodInvocation node) {
String methodName = node.getName().getIdentifier();
- // 1. Core sendEvent
if ("sendEvent".equals(methodName)) {
processSendEvent(node, cu, triggers);
}
- // 2. Library Hints
processHints(node, cu, triggers);
return super.visit(node);
@@ -44,10 +46,9 @@ public class GenericEventDetector {
}
private void processSendEvent(MethodInvocation node, CompilationUnit cu, List triggers) {
- log.info("Found potential trigger: {}", node);
TriggerPoint trigger = buildTriggerPoint(node, cu, null);
if (trigger != null) {
- log.info("Successfully built trigger point: {}", trigger.getEvent());
+ log.debug("Successfully built trigger point: {}", trigger.getEvent());
triggers.add(trigger);
}
}
@@ -57,15 +58,12 @@ public class GenericEventDetector {
String calledMethod = resolveCalledMethodName(node);
if (calledMethod == null) return;
-
- log.info("Checking method call '{}' against {} hints", calledMethod, hints.size());
for (LibraryHint hint : hints) {
if (calledMethod.equals(hint.getMethodFqn()) || isHintMatch(calledMethod, hint.getMethodFqn())) {
- log.info("MATCH! Found hint for '{}'", calledMethod);
TriggerPoint trigger = buildTriggerPoint(node, cu, hint.getEvent());
if (trigger != null) {
- log.info("Successfully built synthetic trigger point from hint: {}", trigger.getEvent());
+ log.debug("Successfully built synthetic trigger point from hint: {}", trigger.getEvent());
triggers.add(trigger);
}
}
@@ -104,15 +102,20 @@ public class GenericEventDetector {
}
private TriggerPoint buildTriggerPoint(MethodInvocation node, CompilationUnit cu, String forcedEvent) {
- String eventValue;
+ String eventValue = null;
if (forcedEvent != null) {
- eventValue = forcedEvent;
+ eventValue = context.resolveString(forcedEvent);
} else {
if (node.arguments().isEmpty()) return null;
Expression eventExpr = (Expression) node.arguments().get(0);
- eventValue = constantResolver.resolve(eventExpr, context);
- if (eventValue == null) {
- eventValue = eventExpr.toString();
+
+ // Try MessageBuilder extraction first
+ eventValue = extractEventFromMessageBuilder(eventExpr);
+
+ if (eventValue != null) {
+ eventValue = context.resolveString(eventValue);
+ } else {
+ eventValue = context.resolveExpression(eventExpr);
}
}
@@ -130,6 +133,35 @@ public class GenericEventDetector {
.build();
}
+ private String extractEventFromMessageBuilder(Expression expr) {
+ if (!(expr instanceof MethodInvocation mi)) return null;
+
+ // Trace back chain: MessageBuilder.withPayload(event).setHeader(...).build()
+ MethodInvocation current = mi;
+ while (current != null) {
+ String name = current.getName().getIdentifier();
+ if ("withPayload".equals(name) && !current.arguments().isEmpty()) {
+ Expression payloadExpr = (Expression) current.arguments().get(0);
+ String resolved = constantResolver.resolve(payloadExpr, context);
+ if (resolved != null) return resolved;
+
+ // If not a constant, it might be a parameter like 'event'
+ if (payloadExpr instanceof SimpleName sn) {
+ return sn.getIdentifier(); // Return the parameter name so the call graph can fill it
+ }
+ return payloadExpr.toString();
+ }
+
+ Expression receiver = current.getExpression();
+ if (receiver instanceof MethodInvocation nextMi) {
+ current = nextMi;
+ } else {
+ current = null;
+ }
+ }
+ return null;
+ }
+
private MethodDeclaration findEnclosingMethod(ASTNode node) {
ASTNode parent = node.getParent();
while (parent != null && !(parent instanceof MethodDeclaration)) {
diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/MessagingDetector.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/MessagingDetector.java
index 3c4f23c..beffa1b 100644
--- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/MessagingDetector.java
+++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/MessagingDetector.java
@@ -1,7 +1,6 @@
package click.kamil.springstatemachineexporter.analysis.service;
import click.kamil.springstatemachineexporter.analysis.model.EntryPoint;
-import click.kamil.springstatemachineexporter.analysis.resolver.ConstantResolver;
import click.kamil.springstatemachineexporter.ast.common.CodebaseContext;
import lombok.RequiredArgsConstructor;
import org.eclipse.jdt.core.dom.*;
@@ -14,7 +13,6 @@ import java.util.Map;
@RequiredArgsConstructor
public class MessagingDetector {
private final CodebaseContext context;
- private final ConstantResolver constantResolver = new ConstantResolver();
public List detect(CompilationUnit cu) {
List entryPoints = new ArrayList<>();
@@ -99,13 +97,11 @@ public class MessagingDetector {
if (value instanceof ArrayInitializer ai) {
List values = new ArrayList<>();
for (Object o : ai.expressions()) {
- String resolved = constantResolver.resolve((Expression) o, context);
- values.add(resolved != null ? resolved : o.toString());
+ values.add(context.resolveExpression((Expression) o));
}
return String.join(", ", values);
}
- String resolved = constantResolver.resolve(value, context);
- return resolved != null ? resolved : value.toString();
+ return context.resolveExpression(value);
}
return "unknown";
}
diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/SpringMvcDetector.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/SpringMvcDetector.java
index bd90415..41597ff 100644
--- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/SpringMvcDetector.java
+++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/SpringMvcDetector.java
@@ -44,13 +44,7 @@ public class SpringMvcDetector {
String verb = getHttpVerb(name);
if (verb != null && !call.arguments().isEmpty()) {
Expression pathArg = (Expression) call.arguments().get(0);
- String path = constantResolver.resolve(pathArg, context);
- if (path != null) {
- path = context.resolveString(path);
- } else {
- path = pathArg.toString().replaceAll("\"", "");
- path = context.resolveString(path);
- }
+ String path = context.resolveExpression(pathArg);
entryPoints.add(EntryPoint.builder()
.type(EntryPoint.Type.REST)
@@ -224,11 +218,7 @@ public class SpringMvcDetector {
}
if (value != null) {
- String resolved = constantResolver.resolve(value, context);
- if (resolved == null) {
- resolved = value.toString().replaceAll("^\"|\"$", "");
- }
- return context.resolveString(resolved);
+ return context.resolveExpression(value);
}
return "";
}
diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/ast/common/CodebaseContext.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/ast/common/CodebaseContext.java
index 474a96f..4f4cc7d 100644
--- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/ast/common/CodebaseContext.java
+++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/ast/common/CodebaseContext.java
@@ -114,6 +114,17 @@ public class CodebaseContext {
return PlaceholderResolver.resolve(input, merged);
}
+
+ public String resolveExpression(Expression expr) {
+ if (expr == null) return null;
+
+ String astResolved = constantResolver.resolve(expr, this);
+ if (astResolved == null) {
+ astResolved = expr.toString().replaceAll("^\"|\"$", "");
+ }
+
+ return resolveString(astResolved);
+ }
public TypeDeclaration resolveStaticImport(String memberName, CompilationUnit contextCu) {
if (contextCu == null) return null;
@@ -416,6 +427,57 @@ public class CodebaseContext {
return getTypeDeclaration(name);
}
+ public String getSuperclassFqn(TypeDeclaration td) {
+ Type superType = td.getSuperclassType();
+ if (superType == null) return null;
+
+ String superName = extractTypeName(superType);
+ CompilationUnit cu = (CompilationUnit) td.getRoot();
+ TypeDeclaration superTd = getTypeDeclaration(superName, cu);
+ return superTd != null ? getFqn(superTd) : superName;
+ }
+
+ private String extractTypeName(Type type) {
+ if (type.isParameterizedType()) {
+ return extractTypeName(((ParameterizedType) type).getType());
+ } else if (type.isSimpleType()) {
+ return ((SimpleType) type).getName().getFullyQualifiedName();
+ } else if (type.isQualifiedType()) {
+ return ((QualifiedType) type).getName().getFullyQualifiedName();
+ }
+ return type.toString();
+ }
+
+ public MethodDeclaration findMethodDeclaration(TypeDeclaration td, String methodName, boolean includeSuper) {
+ for (MethodDeclaration method : td.getMethods()) {
+ if (method.getName().getIdentifier().equals(methodName)) {
+ return method;
+ }
+ }
+
+ if (includeSuper) {
+ String superFqn = getSuperclassFqn(td);
+ if (superFqn != null) {
+ TypeDeclaration superTd = getTypeDeclaration(superFqn);
+ if (superTd != null) {
+ return findMethodDeclaration(superTd, methodName, true);
+ }
+ }
+
+ // Check interfaces
+ for (Object interfaceTypeObj : td.superInterfaceTypes()) {
+ Type interfaceType = (Type) interfaceTypeObj;
+ String interfaceName = extractTypeName(interfaceType);
+ TypeDeclaration interfaceTd = getTypeDeclaration(interfaceName, (CompilationUnit) td.getRoot());
+ if (interfaceTd != null) {
+ MethodDeclaration found = findMethodDeclaration(interfaceTd, methodName, true);
+ if (found != null) return found;
+ }
+ }
+ }
+ return null;
+ }
+
public String getFqn(TypeDeclaration td) {
StringBuilder sb = new StringBuilder(td.getName().getIdentifier());
ASTNode current = td.getParent();
diff --git a/state_machine_exporter/src/test/java/click/kamil/springstatemachineexporter/analysis/InheritedEventDetectionTest.java b/state_machine_exporter/src/test/java/click/kamil/springstatemachineexporter/analysis/InheritedEventDetectionTest.java
new file mode 100644
index 0000000..a8b1d0b
--- /dev/null
+++ b/state_machine_exporter/src/test/java/click/kamil/springstatemachineexporter/analysis/InheritedEventDetectionTest.java
@@ -0,0 +1,90 @@
+package click.kamil.springstatemachineexporter.analysis;
+
+import click.kamil.springstatemachineexporter.analysis.model.CallChain;
+import click.kamil.springstatemachineexporter.analysis.model.EntryPoint;
+import click.kamil.springstatemachineexporter.analysis.model.TriggerPoint;
+import click.kamil.springstatemachineexporter.analysis.resolver.ConstantResolver;
+import click.kamil.springstatemachineexporter.analysis.service.CallGraphBuilder;
+import click.kamil.springstatemachineexporter.analysis.service.GenericEventDetector;
+import click.kamil.springstatemachineexporter.analysis.service.SpringMvcDetector;
+import click.kamil.springstatemachineexporter.ast.common.CodebaseContext;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.TypeDeclaration;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class InheritedEventDetectionTest {
+
+ @Test
+ void testInheritedMessageBuilderEvent(@TempDir Path tempDir) throws IOException {
+ Path srcDir = tempDir.resolve("src/main/java/com/example");
+ Files.createDirectories(srcDir);
+
+ // 1. Abstract Base Controller with protected method using MessageBuilder
+ Files.writeString(srcDir.resolve("BaseController.java"),
+ "package com.example;\n" +
+ "import org.springframework.messaging.support.MessageBuilder;\n" +
+ "import org.springframework.statemachine.StateMachine;\n" +
+ "public abstract class BaseController {\n" +
+ " protected StateMachine stateMachine;\n" +
+ " \n" +
+ " protected void send(String event) {\n" +
+ " stateMachine.sendEvent(MessageBuilder.withPayload(event).build());\n" +
+ " }\n" +
+ "}");
+
+ // 2. Child Controller calling super.send()
+ Files.writeString(srcDir.resolve("ChildController.java"),
+ "package com.example;\n" +
+ "import org.springframework.web.bind.annotation.*;\n" +
+ "@RestController\n" +
+ "public class ChildController extends BaseController {\n" +
+ " \n" +
+ " @GetMapping(\"/trigger\")\n" +
+ " public void trigger() {\n" +
+ " super.send(\"MY_EVENT\");\n" +
+ " }\n" +
+ "}");
+
+ CodebaseContext context = new CodebaseContext();
+ context.scan(tempDir);
+
+ // Detect Entry Points
+ SpringMvcDetector mvcDetector = new SpringMvcDetector(context, new ConstantResolver());
+ TypeDeclaration childTd = context.getTypeDeclaration("com.example.ChildController");
+ CompilationUnit childCu = (CompilationUnit) childTd.getRoot();
+ List entryPoints = mvcDetector.detect(childCu);
+ assertThat(entryPoints).hasSize(1);
+ EntryPoint ep = entryPoints.get(0);
+
+ // Detect Trigger Points
+ GenericEventDetector eventDetector = new GenericEventDetector(context, new ConstantResolver(), List.of());
+ TypeDeclaration baseTd = context.getTypeDeclaration("com.example.BaseController");
+ CompilationUnit baseCu = (CompilationUnit) baseTd.getRoot();
+
+ List triggers = eventDetector.detect(baseCu);
+
+ assertThat(triggers).describedAs("Should detect sendEvent in BaseController").hasSize(1);
+ TriggerPoint tp = triggers.get(0);
+ assertThat(tp.getEvent()).isEqualTo("event");
+
+ // Build Call Chains
+ CallGraphBuilder callGraphBuilder = new CallGraphBuilder(context);
+ List chains = callGraphBuilder.findChains(entryPoints, triggers);
+
+ assertThat(chains).describedAs("Should link ChildController.trigger to BaseController.send").hasSize(1);
+ CallChain chain = chains.get(0);
+ assertThat(chain.getMethodChain()).containsExactly(
+ "com.example.ChildController.trigger",
+ "com.example.BaseController.send"
+ );
+ assertThat(chain.getTriggerPoint().getEvent()).isEqualTo("MY_EVENT");
+ }
+}
diff --git a/state_machine_exporter_html/out_complex/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig.html b/state_machine_exporter_html/out_complex/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig.html
deleted file mode 100644
index 6b1668d..0000000
--- a/state_machine_exporter_html/out_complex/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig.html
+++ /dev/null
@@ -1,1279 +0,0 @@
-
-
-
-
-
- State Machine Explorer - click.kamil.examples.statemachine.complex.ComplexStateMachineConfig
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/state_machine_exporter_html/out_complex/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig.json b/state_machine_exporter_html/out_complex/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig.json
deleted file mode 100644
index 6df9980..0000000
--- a/state_machine_exporter_html/out_complex/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig/click.kamil.examples.statemachine.complex.ComplexStateMachineConfig.json
+++ /dev/null
@@ -1,614 +0,0 @@
-{
- "metadata" : {
- "triggers" : [ ],
- "entryPoints" : [ ],
- "callChains" : [ ],
- "properties" : {
- "default" : {
- "spring.application.name" : "statemachinedemo"
- }
- }
- },
- "name" : "click.kamil.examples.statemachine.complex.ComplexStateMachineConfig",
- "renderChoicesAsDiamonds" : true,
- "startStates" : [ "States.STATE1" ],
- "transitions" : [ {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE1",
- "fullIdentifier" : "States.STATE1"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE2",
- "fullIdentifier" : "States.STATE2"
- } ],
- "event" : "Events.EVENT1",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE2",
- "fullIdentifier" : "States.STATE2"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE3",
- "fullIdentifier" : "States.STATE3"
- } ],
- "event" : "Events.EVENT2",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE3",
- "fullIdentifier" : "States.STATE3"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE4",
- "fullIdentifier" : "States.STATE4"
- } ],
- "event" : "Events.EVENT3",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE4",
- "fullIdentifier" : "States.STATE4"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE5",
- "fullIdentifier" : "States.STATE5"
- } ],
- "event" : "Events.EVENT4",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE5",
- "fullIdentifier" : "States.STATE5"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE6",
- "fullIdentifier" : "States.STATE6"
- } ],
- "event" : "Events.EVENT5",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE6",
- "fullIdentifier" : "States.STATE6"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE7",
- "fullIdentifier" : "States.STATE7"
- } ],
- "event" : "Events.EVENT6",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE7",
- "fullIdentifier" : "States.STATE7"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE8",
- "fullIdentifier" : "States.STATE8"
- } ],
- "event" : "Events.EVENT7",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE8",
- "fullIdentifier" : "States.STATE8"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE9",
- "fullIdentifier" : "States.STATE9"
- } ],
- "event" : "Events.EVENT8",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE9",
- "fullIdentifier" : "States.STATE9"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE10",
- "fullIdentifier" : "States.STATE10"
- } ],
- "event" : "Events.EVENT9",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE10",
- "fullIdentifier" : "States.STATE10"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE11",
- "fullIdentifier" : "States.STATE11"
- } ],
- "event" : "Events.EVENT10",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE11",
- "fullIdentifier" : "States.STATE11"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE12",
- "fullIdentifier" : "States.STATE12"
- } ],
- "event" : "Events.EVENT11",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE12",
- "fullIdentifier" : "States.STATE12"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE13",
- "fullIdentifier" : "States.STATE13"
- } ],
- "event" : "Events.EVENT12",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE13",
- "fullIdentifier" : "States.STATE13"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE14",
- "fullIdentifier" : "States.STATE14"
- } ],
- "event" : "Events.EVENT13",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE14",
- "fullIdentifier" : "States.STATE14"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE15",
- "fullIdentifier" : "States.STATE15"
- } ],
- "event" : "Events.EVENT14",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "States.STATE15",
- "fullIdentifier" : "States.STATE15"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE16",
- "fullIdentifier" : "States.STATE16"
- } ],
- "event" : "Events.EVENT15",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE16",
- "fullIdentifier" : "States.STATE16"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE17",
- "fullIdentifier" : "States.STATE17"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"value1\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 86
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE16",
- "fullIdentifier" : "States.STATE16"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE18",
- "fullIdentifier" : "States.STATE18"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"value2\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 87
- },
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE16",
- "fullIdentifier" : "States.STATE16"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE19",
- "fullIdentifier" : "States.STATE19"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 2
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE17",
- "fullIdentifier" : "States.STATE17"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE20",
- "fullIdentifier" : "States.STATE20"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 92
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE17",
- "fullIdentifier" : "States.STATE17"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE16",
- "fullIdentifier" : "States.STATE16"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE18",
- "fullIdentifier" : "States.STATE18"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE19",
- "fullIdentifier" : "States.STATE19"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"value3\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 97
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE18",
- "fullIdentifier" : "States.STATE18"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE20",
- "fullIdentifier" : "States.STATE20"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE19",
- "fullIdentifier" : "States.STATE19"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE1",
- "fullIdentifier" : "States.STATE1"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"reset\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 102
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE19",
- "fullIdentifier" : "States.STATE19"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE20",
- "fullIdentifier" : "States.STATE20"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE20",
- "fullIdentifier" : "States.STATE20"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE5",
- "fullIdentifier" : "States.STATE5"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 107
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE20",
- "fullIdentifier" : "States.STATE20"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE1",
- "fullIdentifier" : "States.STATE1"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE11",
- "fullIdentifier" : "States.STATE11"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE13",
- "fullIdentifier" : "States.STATE13"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"goTo13\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 112
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE11",
- "fullIdentifier" : "States.STATE11"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE14",
- "fullIdentifier" : "States.STATE14"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"goTo14\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 113
- },
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE11",
- "fullIdentifier" : "States.STATE11"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE15",
- "fullIdentifier" : "States.STATE15"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 2
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE12",
- "fullIdentifier" : "States.STATE12"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE10",
- "fullIdentifier" : "States.STATE10"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"goBack10\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 118
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE12",
- "fullIdentifier" : "States.STATE12"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE11",
- "fullIdentifier" : "States.STATE11"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE14",
- "fullIdentifier" : "States.STATE14"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE12",
- "fullIdentifier" : "States.STATE12"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"loop12\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 123
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE14",
- "fullIdentifier" : "States.STATE14"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE16",
- "fullIdentifier" : "States.STATE16"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE9",
- "fullIdentifier" : "States.STATE9"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE8",
- "fullIdentifier" : "States.STATE8"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"stepBack\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 128
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE9",
- "fullIdentifier" : "States.STATE9"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE7",
- "fullIdentifier" : "States.STATE7"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"stepBackMore\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 129
- },
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE9",
- "fullIdentifier" : "States.STATE9"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE6",
- "fullIdentifier" : "States.STATE6"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 2
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE8",
- "fullIdentifier" : "States.STATE8"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE9",
- "fullIdentifier" : "States.STATE9"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "guardVarEquals(\"forward9\")",
- "isLambda" : false,
- "internalLogic" : null,
- "lineNumber" : 134
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "States.STATE8",
- "fullIdentifier" : "States.STATE8"
- } ],
- "targetStates" : [ {
- "rawName" : "States.STATE10",
- "fullIdentifier" : "States.STATE10"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 1
- } ],
- "endStates" : [ ]
-}
diff --git a/state_machine_exporter_html/out_enterprise_v7/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.html b/state_machine_exporter_html/out_enterprise_v7/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.html
deleted file mode 100644
index 0c7f250..0000000
--- a/state_machine_exporter_html/out_enterprise_v7/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.html
+++ /dev/null
@@ -1,1039 +0,0 @@
-
-
-
-
-
- State Machine Explorer - click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/state_machine_exporter_html/out_enterprise_v7/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.json b/state_machine_exporter_html/out_enterprise_v7/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.json
deleted file mode 100644
index 74e2d02..0000000
--- a/state_machine_exporter_html/out_enterprise_v7/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.json
+++ /dev/null
@@ -1,390 +0,0 @@
-{
- "metadata" : {
- "triggers" : [ {
- "event" : "AUDIT_EVENT",
- "className" : "click.kamil.examples.enterprise.api.SecurityInterceptor",
- "methodName" : "preHandle",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }, {
- "event" : "PLACE_ORDER",
- "className" : "click.kamil.examples.enterprise.service.OrderServiceImpl",
- "methodName" : "place",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 16
- }, {
- "event" : "CANCEL_ORDER",
- "className" : "click.kamil.examples.enterprise.service.OrderServiceImpl",
- "methodName" : "cancel",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 21
- }, {
- "event" : "PAY_ORDER",
- "className" : "click.kamil.examples.enterprise.service.ReactivePaymentService",
- "methodName" : "processPayment",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 18
- }, {
- "event" : "SHIP_ORDER",
- "className" : "click.kamil.examples.enterprise.messaging.ShippingJmsListener",
- "methodName" : "onShippingReady",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }, {
- "event" : "RETURN_ORDER",
- "className" : "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener",
- "methodName" : "onReturn",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- } ],
- "entryPoints" : [ {
- "type" : "REST",
- "name" : "POST /api/enterprise/orders/place",
- "className" : "click.kamil.examples.enterprise.api.OrderController",
- "methodName" : "placeOrder",
- "metadata" : {
- "path" : "/api/enterprise/orders/place",
- "verb" : "POST"
- },
- "parameters" : [ ]
- }, {
- "type" : "REST",
- "name" : "POST /api/enterprise/orders/{id}/cancel",
- "className" : "click.kamil.examples.enterprise.api.OrderController",
- "methodName" : "cancelOrder",
- "metadata" : {
- "path" : "/api/enterprise/orders/{id}/cancel",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "id",
- "type" : "String",
- "annotations" : [ "PathVariable" ]
- } ]
- }, {
- "type" : "CUSTOM",
- "name" : "INTERCEPTOR: SecurityInterceptor.preHandle",
- "className" : "click.kamil.examples.enterprise.api.SecurityInterceptor",
- "methodName" : "preHandle",
- "metadata" : {
- "interceptorType" : "Spring MVC Interceptor"
- },
- "parameters" : [ ]
- }, {
- "type" : "REST",
- "name" : "POST /api/enterprise/payments",
- "className" : "click.kamil.examples.enterprise.api.ReactivePaymentController",
- "methodName" : "pay",
- "metadata" : {
- "path" : "/api/enterprise/payments",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- }, {
- "type" : "JMS",
- "name" : "JMS: shipping.queue",
- "className" : "click.kamil.examples.enterprise.messaging.ShippingJmsListener",
- "methodName" : "onShippingReady",
- "metadata" : {
- "protocol" : "JMS",
- "destination" : "shipping.queue"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- }, {
- "type" : "RABBIT",
- "name" : "RABBIT: returns.queue",
- "className" : "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener",
- "methodName" : "onReturn",
- "metadata" : {
- "protocol" : "RABBIT",
- "destination" : "returns.queue"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- } ],
- "callChains" : [ {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/enterprise/orders/place",
- "className" : "click.kamil.examples.enterprise.api.OrderController",
- "methodName" : "placeOrder",
- "metadata" : {
- "path" : "/api/enterprise/orders/place",
- "verb" : "POST"
- },
- "parameters" : [ ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.api.OrderController.placeOrder", "click.kamil.examples.enterprise.service.OrderServiceImpl.place" ],
- "triggerPoint" : {
- "event" : "PLACE_ORDER",
- "className" : "click.kamil.examples.enterprise.service.OrderServiceImpl",
- "methodName" : "place",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 16
- }
- }, {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/enterprise/orders/{id}/cancel",
- "className" : "click.kamil.examples.enterprise.api.OrderController",
- "methodName" : "cancelOrder",
- "metadata" : {
- "path" : "/api/enterprise/orders/{id}/cancel",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "id",
- "type" : "String",
- "annotations" : [ "PathVariable" ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.api.OrderController.cancelOrder", "click.kamil.examples.enterprise.service.OrderServiceImpl.cancel" ],
- "triggerPoint" : {
- "event" : "CANCEL_ORDER",
- "className" : "click.kamil.examples.enterprise.service.OrderServiceImpl",
- "methodName" : "cancel",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 21
- }
- }, {
- "entryPoint" : {
- "type" : "CUSTOM",
- "name" : "INTERCEPTOR: SecurityInterceptor.preHandle",
- "className" : "click.kamil.examples.enterprise.api.SecurityInterceptor",
- "methodName" : "preHandle",
- "metadata" : {
- "interceptorType" : "Spring MVC Interceptor"
- },
- "parameters" : [ ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.api.SecurityInterceptor.preHandle" ],
- "triggerPoint" : {
- "event" : "AUDIT_EVENT",
- "className" : "click.kamil.examples.enterprise.api.SecurityInterceptor",
- "methodName" : "preHandle",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }
- }, {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/enterprise/payments",
- "className" : "click.kamil.examples.enterprise.api.ReactivePaymentController",
- "methodName" : "pay",
- "metadata" : {
- "path" : "/api/enterprise/payments",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.api.ReactivePaymentController.pay", "click.kamil.examples.enterprise.service.ReactivePaymentService.processPayment" ],
- "triggerPoint" : {
- "event" : "PAY_ORDER",
- "className" : "click.kamil.examples.enterprise.service.ReactivePaymentService",
- "methodName" : "processPayment",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 18
- }
- }, {
- "entryPoint" : {
- "type" : "JMS",
- "name" : "JMS: shipping.queue",
- "className" : "click.kamil.examples.enterprise.messaging.ShippingJmsListener",
- "methodName" : "onShippingReady",
- "metadata" : {
- "protocol" : "JMS",
- "destination" : "shipping.queue"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.messaging.ShippingJmsListener.onShippingReady" ],
- "triggerPoint" : {
- "event" : "SHIP_ORDER",
- "className" : "click.kamil.examples.enterprise.messaging.ShippingJmsListener",
- "methodName" : "onShippingReady",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }
- }, {
- "entryPoint" : {
- "type" : "RABBIT",
- "name" : "RABBIT: returns.queue",
- "className" : "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener",
- "methodName" : "onReturn",
- "metadata" : {
- "protocol" : "RABBIT",
- "destination" : "returns.queue"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener.onReturn" ],
- "triggerPoint" : {
- "event" : "RETURN_ORDER",
- "className" : "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener",
- "methodName" : "onReturn",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }
- } ],
- "properties" : {
- "default" : { }
- }
- },
- "name" : "click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig",
- "renderChoicesAsDiamonds" : true,
- "startStates" : [ "NEW" ],
- "transitions" : [ {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"NEW\"",
- "fullIdentifier" : "NEW"
- } ],
- "targetStates" : [ {
- "rawName" : "\"CHECK_AVAILABILITY\"",
- "fullIdentifier" : "CHECK_AVAILABILITY"
- } ],
- "event" : "PLACE_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "\"CHECK_AVAILABILITY\"",
- "fullIdentifier" : "CHECK_AVAILABILITY"
- } ],
- "targetStates" : [ {
- "rawName" : "\"PENDING_PAYMENT\"",
- "fullIdentifier" : "PENDING_PAYMENT"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "(c) -> true",
- "isLambda" : true,
- "internalLogic" : "(c) -> true",
- "lineNumber" : 41
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "\"CHECK_AVAILABILITY\"",
- "fullIdentifier" : "CHECK_AVAILABILITY"
- } ],
- "targetStates" : [ {
- "rawName" : "\"CANCELLED\"",
- "fullIdentifier" : "CANCELLED"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"PENDING_PAYMENT\"",
- "fullIdentifier" : "PENDING_PAYMENT"
- } ],
- "targetStates" : [ {
- "rawName" : "\"PAID\"",
- "fullIdentifier" : "PAID"
- } ],
- "event" : "PAY_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"PAID\"",
- "fullIdentifier" : "PAID"
- } ],
- "targetStates" : [ {
- "rawName" : "\"SHIPPED\"",
- "fullIdentifier" : "SHIPPED"
- } ],
- "event" : "SHIP_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"SHIPPED\"",
- "fullIdentifier" : "SHIPPED"
- } ],
- "targetStates" : [ {
- "rawName" : "\"DELIVERED\"",
- "fullIdentifier" : "DELIVERED"
- } ],
- "event" : "FINALIZE",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"PAID\"",
- "fullIdentifier" : "PAID"
- } ],
- "targetStates" : [ {
- "rawName" : "\"CANCELLED\"",
- "fullIdentifier" : "CANCELLED"
- } ],
- "event" : "CANCEL_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"DELIVERED\"",
- "fullIdentifier" : "DELIVERED"
- } ],
- "targetStates" : [ {
- "rawName" : "\"RETURNED\"",
- "fullIdentifier" : "RETURNED"
- } ],
- "event" : "RETURN_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- } ],
- "endStates" : [ "CANCELLED", "DELIVERED", "RETURNED" ]
-}
diff --git a/state_machine_exporter_html/out_enterprise_v7_no_diamonds/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.html b/state_machine_exporter_html/out_enterprise_v7_no_diamonds/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.html
deleted file mode 100644
index f9d928d..0000000
--- a/state_machine_exporter_html/out_enterprise_v7_no_diamonds/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.html
+++ /dev/null
@@ -1,1043 +0,0 @@
-
-
-
-
-
- State Machine Explorer - click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/state_machine_exporter_html/out_enterprise_v7_no_diamonds/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.json b/state_machine_exporter_html/out_enterprise_v7_no_diamonds/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.json
deleted file mode 100644
index e66500d..0000000
--- a/state_machine_exporter_html/out_enterprise_v7_no_diamonds/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig/click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig.json
+++ /dev/null
@@ -1,390 +0,0 @@
-{
- "metadata" : {
- "triggers" : [ {
- "event" : "AUDIT_EVENT",
- "className" : "click.kamil.examples.enterprise.api.SecurityInterceptor",
- "methodName" : "preHandle",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }, {
- "event" : "PLACE_ORDER",
- "className" : "click.kamil.examples.enterprise.service.OrderServiceImpl",
- "methodName" : "place",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 16
- }, {
- "event" : "CANCEL_ORDER",
- "className" : "click.kamil.examples.enterprise.service.OrderServiceImpl",
- "methodName" : "cancel",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 21
- }, {
- "event" : "PAY_ORDER",
- "className" : "click.kamil.examples.enterprise.service.ReactivePaymentService",
- "methodName" : "processPayment",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 18
- }, {
- "event" : "SHIP_ORDER",
- "className" : "click.kamil.examples.enterprise.messaging.ShippingJmsListener",
- "methodName" : "onShippingReady",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }, {
- "event" : "RETURN_ORDER",
- "className" : "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener",
- "methodName" : "onReturn",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- } ],
- "entryPoints" : [ {
- "type" : "REST",
- "name" : "POST /api/enterprise/orders/place",
- "className" : "click.kamil.examples.enterprise.api.OrderController",
- "methodName" : "placeOrder",
- "metadata" : {
- "path" : "/api/enterprise/orders/place",
- "verb" : "POST"
- },
- "parameters" : [ ]
- }, {
- "type" : "REST",
- "name" : "POST /api/enterprise/orders/{id}/cancel",
- "className" : "click.kamil.examples.enterprise.api.OrderController",
- "methodName" : "cancelOrder",
- "metadata" : {
- "path" : "/api/enterprise/orders/{id}/cancel",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "id",
- "type" : "String",
- "annotations" : [ "PathVariable" ]
- } ]
- }, {
- "type" : "CUSTOM",
- "name" : "INTERCEPTOR: SecurityInterceptor.preHandle",
- "className" : "click.kamil.examples.enterprise.api.SecurityInterceptor",
- "methodName" : "preHandle",
- "metadata" : {
- "interceptorType" : "Spring MVC Interceptor"
- },
- "parameters" : [ ]
- }, {
- "type" : "REST",
- "name" : "POST /api/enterprise/payments",
- "className" : "click.kamil.examples.enterprise.api.ReactivePaymentController",
- "methodName" : "pay",
- "metadata" : {
- "path" : "/api/enterprise/payments",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- }, {
- "type" : "JMS",
- "name" : "JMS: shipping.queue",
- "className" : "click.kamil.examples.enterprise.messaging.ShippingJmsListener",
- "methodName" : "onShippingReady",
- "metadata" : {
- "protocol" : "JMS",
- "destination" : "shipping.queue"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- }, {
- "type" : "RABBIT",
- "name" : "RABBIT: returns.queue",
- "className" : "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener",
- "methodName" : "onReturn",
- "metadata" : {
- "protocol" : "RABBIT",
- "destination" : "returns.queue"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- } ],
- "callChains" : [ {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/enterprise/orders/place",
- "className" : "click.kamil.examples.enterprise.api.OrderController",
- "methodName" : "placeOrder",
- "metadata" : {
- "path" : "/api/enterprise/orders/place",
- "verb" : "POST"
- },
- "parameters" : [ ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.api.OrderController.placeOrder", "click.kamil.examples.enterprise.service.OrderServiceImpl.place" ],
- "triggerPoint" : {
- "event" : "PLACE_ORDER",
- "className" : "click.kamil.examples.enterprise.service.OrderServiceImpl",
- "methodName" : "place",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 16
- }
- }, {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/enterprise/orders/{id}/cancel",
- "className" : "click.kamil.examples.enterprise.api.OrderController",
- "methodName" : "cancelOrder",
- "metadata" : {
- "path" : "/api/enterprise/orders/{id}/cancel",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "id",
- "type" : "String",
- "annotations" : [ "PathVariable" ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.api.OrderController.cancelOrder", "click.kamil.examples.enterprise.service.OrderServiceImpl.cancel" ],
- "triggerPoint" : {
- "event" : "CANCEL_ORDER",
- "className" : "click.kamil.examples.enterprise.service.OrderServiceImpl",
- "methodName" : "cancel",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 21
- }
- }, {
- "entryPoint" : {
- "type" : "CUSTOM",
- "name" : "INTERCEPTOR: SecurityInterceptor.preHandle",
- "className" : "click.kamil.examples.enterprise.api.SecurityInterceptor",
- "methodName" : "preHandle",
- "metadata" : {
- "interceptorType" : "Spring MVC Interceptor"
- },
- "parameters" : [ ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.api.SecurityInterceptor.preHandle" ],
- "triggerPoint" : {
- "event" : "AUDIT_EVENT",
- "className" : "click.kamil.examples.enterprise.api.SecurityInterceptor",
- "methodName" : "preHandle",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }
- }, {
- "entryPoint" : {
- "type" : "REST",
- "name" : "POST /api/enterprise/payments",
- "className" : "click.kamil.examples.enterprise.api.ReactivePaymentController",
- "methodName" : "pay",
- "metadata" : {
- "path" : "/api/enterprise/payments",
- "verb" : "POST"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ "RequestBody" ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.api.ReactivePaymentController.pay", "click.kamil.examples.enterprise.service.ReactivePaymentService.processPayment" ],
- "triggerPoint" : {
- "event" : "PAY_ORDER",
- "className" : "click.kamil.examples.enterprise.service.ReactivePaymentService",
- "methodName" : "processPayment",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 18
- }
- }, {
- "entryPoint" : {
- "type" : "JMS",
- "name" : "JMS: shipping.queue",
- "className" : "click.kamil.examples.enterprise.messaging.ShippingJmsListener",
- "methodName" : "onShippingReady",
- "metadata" : {
- "protocol" : "JMS",
- "destination" : "shipping.queue"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.messaging.ShippingJmsListener.onShippingReady" ],
- "triggerPoint" : {
- "event" : "SHIP_ORDER",
- "className" : "click.kamil.examples.enterprise.messaging.ShippingJmsListener",
- "methodName" : "onShippingReady",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }
- }, {
- "entryPoint" : {
- "type" : "RABBIT",
- "name" : "RABBIT: returns.queue",
- "className" : "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener",
- "methodName" : "onReturn",
- "metadata" : {
- "protocol" : "RABBIT",
- "destination" : "returns.queue"
- },
- "parameters" : [ {
- "name" : "orderId",
- "type" : "String",
- "annotations" : [ ]
- } ]
- },
- "methodChain" : [ "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener.onReturn" ],
- "triggerPoint" : {
- "event" : "RETURN_ORDER",
- "className" : "click.kamil.examples.enterprise.messaging.ReturnsRabbitListener",
- "methodName" : "onReturn",
- "sourceModule" : null,
- "stateMachineId" : null,
- "lineNumber" : 17
- }
- } ],
- "properties" : {
- "default" : { }
- }
- },
- "name" : "click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig",
- "renderChoicesAsDiamonds" : false,
- "startStates" : [ "${order.initial.state:NEW}" ],
- "transitions" : [ {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"NEW\"",
- "fullIdentifier" : "NEW"
- } ],
- "targetStates" : [ {
- "rawName" : "\"CHECK_AVAILABILITY\"",
- "fullIdentifier" : "CHECK_AVAILABILITY"
- } ],
- "event" : "PLACE_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "\"CHECK_AVAILABILITY\"",
- "fullIdentifier" : "CHECK_AVAILABILITY"
- } ],
- "targetStates" : [ {
- "rawName" : "\"PENDING_PAYMENT\"",
- "fullIdentifier" : "PENDING_PAYMENT"
- } ],
- "event" : null,
- "guard" : {
- "expression" : "(c) -> true",
- "isLambda" : true,
- "internalLogic" : "(c) -> true",
- "lineNumber" : 41
- },
- "actions" : [ ],
- "order" : 0
- }, {
- "type" : "CHOICE",
- "sourceStates" : [ {
- "rawName" : "\"CHECK_AVAILABILITY\"",
- "fullIdentifier" : "CHECK_AVAILABILITY"
- } ],
- "targetStates" : [ {
- "rawName" : "\"CANCELLED\"",
- "fullIdentifier" : "CANCELLED"
- } ],
- "event" : null,
- "guard" : null,
- "actions" : [ ],
- "order" : 1
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"PENDING_PAYMENT\"",
- "fullIdentifier" : "PENDING_PAYMENT"
- } ],
- "targetStates" : [ {
- "rawName" : "\"PAID\"",
- "fullIdentifier" : "PAID"
- } ],
- "event" : "PAY_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"PAID\"",
- "fullIdentifier" : "PAID"
- } ],
- "targetStates" : [ {
- "rawName" : "\"SHIPPED\"",
- "fullIdentifier" : "SHIPPED"
- } ],
- "event" : "SHIP_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"SHIPPED\"",
- "fullIdentifier" : "SHIPPED"
- } ],
- "targetStates" : [ {
- "rawName" : "\"DELIVERED\"",
- "fullIdentifier" : "DELIVERED"
- } ],
- "event" : "FINALIZE",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"PAID\"",
- "fullIdentifier" : "PAID"
- } ],
- "targetStates" : [ {
- "rawName" : "\"CANCELLED\"",
- "fullIdentifier" : "CANCELLED"
- } ],
- "event" : "CANCEL_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- }, {
- "type" : "EXTERNAL",
- "sourceStates" : [ {
- "rawName" : "\"DELIVERED\"",
- "fullIdentifier" : "DELIVERED"
- } ],
- "targetStates" : [ {
- "rawName" : "\"RETURNED\"",
- "fullIdentifier" : "RETURNED"
- } ],
- "event" : "RETURN_ORDER",
- "guard" : null,
- "actions" : [ ],
- "order" : null
- } ],
- "endStates" : [ "CANCELLED", "DELIVERED", "RETURNED" ]
-}