From 79ddb307c1ca6b6ff905d4beb74f2002cf6575c3 Mon Sep 17 00:00:00 2001 From: Kamil Patryk Kozakowski Date: Tue, 16 Jun 2026 19:09:00 +0200 Subject: [PATCH] fix: resolve properties before direct HTML generation --- ...ded.config.ExtendedStateMachineConfig.html | 994 ++++++++++++++++++ ...ded.config.ExtendedStateMachineConfig.json | 374 +++++++ .../ast/app/AstTransitionParser.java | 81 +- .../model/Action.java | 6 +- .../model/Guard.java | 6 +- .../service/ExportService.java | 16 +- .../ast/app/AstTransitionParserTest.java | 48 + .../ComplexStateMachineConfig.json | 43 +- .../EnterpriseStateMachineConfig.json | 7 +- .../ExtendedStateMachineConfig.json | 7 +- .../ExtendedStateMachineConfig.json | 7 +- .../F1StateMachineConfiguration.json | 49 +- .../F2StateMachineConfiguration.json | 49 +- .../ForkJoinStateMachineConfig.json | 4 +- .../G1StateMachineConfiguration.json | 16 +- .../G2StateMachineConfiguration.json | 16 +- .../InheritanceStateMachineConfig.json | 4 +- .../KamilEnumStateMachineConfiguration.json | 22 +- .../OneStateMachineConfiguration.json | 46 +- .../SimpleEnumStateMachineConfiguration.json | 25 +- .../ThreeStateMachineConfiguration.json | 49 +- .../TwoStateMachineConfiguration.json | 46 +- ...ine.complex.ComplexStateMachineConfig.html | 50 +- ...ine.complex.ComplexStateMachineConfig.json | 43 +- ...e.config.EnterpriseStateMachineConfig.html | 26 +- ...e.config.EnterpriseStateMachineConfig.json | 7 +- ...e.config.EnterpriseStateMachineConfig.html | 24 +- ...e.config.EnterpriseStateMachineConfig.json | 9 +- .../src/main/resources/html/template.html | 13 +- 29 files changed, 1876 insertions(+), 211 deletions(-) create mode 100644 out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.html create mode 100644 out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.json 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 new file mode 100644 index 0000000..3855989 --- /dev/null +++ b/out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.html @@ -0,0 +1,994 @@ + + + + + + State Machine Explorer - click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig + + + + + + + + + + + + + + + + +
+ +
+ app.states.initialSTARTSTARTPROCESSINGCOMPLETEDCANCELLEDSUBMIT_EVENTFINISHCANCEL_EVENTREACTIVE_EVENTAUDIT_EVENTEXTERNAL_TRIGGER +
+
+ + + + + + 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 new file mode 100644 index 0000000..cc9e13f --- /dev/null +++ b/out_extended/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig/click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig.json @@ -0,0 +1,374 @@ +{ + "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/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/ast/app/AstTransitionParser.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/ast/app/AstTransitionParser.java index b241ee5..a3260d6 100644 --- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/ast/app/AstTransitionParser.java +++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/ast/app/AstTransitionParser.java @@ -17,7 +17,9 @@ import org.eclipse.jdt.core.dom.LambdaExpression; import org.eclipse.jdt.core.dom.MethodDeclaration; import org.eclipse.jdt.core.dom.MethodInvocation; import org.eclipse.jdt.core.dom.SimpleName; - +import org.eclipse.jdt.core.dom.ITypeBinding; +import org.eclipse.jdt.core.dom.MethodReference; +import org.eclipse.jdt.core.dom.TypeDeclaration; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -177,15 +179,15 @@ public class AstTransitionParser { Expression secondArg = resolveArg((Expression) args.get(1), argsMap); if ("last".equals(methodName)) { // For 'last', the second argument is an action, not a guard - parseAction(secondArg, t, cu); + parseAction(secondArg, t, cu, context); } else { // For 'first' and 'then', the second argument is a guard - parseGuard(secondArg, t, cu); + parseGuard(secondArg, t, cu, context); } } if (args.size() > 2) { Expression thirdArg = resolveArg((Expression) args.get(2), argsMap); - parseAction(thirdArg, t, cu); + parseAction(thirdArg, t, cu, context); } t.setOrder(orderCounter++); transitions.add(t); @@ -228,43 +230,96 @@ public class AstTransitionParser { } case "guard" -> { Expression resolved = resolveArg((Expression) args.get(0), argsMap); - parseGuard(resolved, t, cu); + parseGuard(resolved, t, cu, context); } case "action" -> { Expression resolved = resolveArg((Expression) args.get(0), argsMap); - parseAction(resolved, t, cu); + parseAction(resolved, t, cu, context); } } } return t; } - private static String extractInternalLogic(Expression expr, CompilationUnit cu) { + private static String extractInternalLogic(Expression expr, CompilationUnit cu, CodebaseContext context) { + if (expr == null) return null; + + // 1. Lambda Expressions + if (expr instanceof LambdaExpression le) { + return le.toString(); + } + + // 2. Anonymous Classes + if (expr instanceof ClassInstanceCreation cic && cic.getAnonymousClassDeclaration() != null) { + return cic.toString(); + } + + // 3. Method Invocations if (expr instanceof MethodInvocation mi) { IMethodBinding binding = mi.resolveMethodBinding(); if (binding != null) { + // Try same file ASTNode declNode = cu.findDeclaringNode(binding.getKey()); if (declNode instanceof MethodDeclaration md) { return md.toString(); } + + // Try other files via CodebaseContext + ITypeBinding declaringClass = binding.getDeclaringClass(); + if (declaringClass != null) { + String fqn = declaringClass.getQualifiedName(); + TypeDeclaration td = context.getTypeDeclaration(fqn); + if (td != null) { + for (MethodDeclaration md : td.getMethods()) { + if (md.getName().getIdentifier().equals(binding.getName()) && + md.parameters().size() == binding.getParameterTypes().length) { + return md.toString(); + } + } + } + } } } + + // 4. Method References + if (expr instanceof MethodReference mr) { + IMethodBinding binding = mr.resolveMethodBinding(); + if (binding != null) { + ITypeBinding declaringClass = binding.getDeclaringClass(); + if (declaringClass != null) { + String fqn = declaringClass.getQualifiedName(); + TypeDeclaration td = context.getTypeDeclaration(fqn); + if (td != null) { + for (MethodDeclaration md : td.getMethods()) { + if (md.getName().getIdentifier().equals(binding.getName()) && + md.parameters().size() == binding.getParameterTypes().length) { + return md.toString(); + } + } + } + } + } + return mr.toString(); + } + return null; } - private static void parseGuard(Object arg, Transition t, CompilationUnit cu) { + private static void parseGuard(Object arg, Transition t, CompilationUnit cu, CodebaseContext context) { QuotedExpression quotedExpr = QuotedExpression.of(arg); if (quotedExpr != null) { - String internalLogic = extractInternalLogic(quotedExpr.getExpression(), cu); - t.setGuard(Guard.of(quotedExpr.toStringWithoutQuotes(), isLambdaOrAnonymous(quotedExpr.getExpression()), internalLogic)); + String internalLogic = extractInternalLogic(quotedExpr.getExpression(), cu, context); + int lineNumber = cu.getLineNumber(quotedExpr.getExpression().getStartPosition()); + t.setGuard(Guard.of(quotedExpr.toStringWithoutQuotes(), isLambdaOrAnonymous(quotedExpr.getExpression()), internalLogic, lineNumber)); } } - private static void parseAction(Object arg, Transition t, CompilationUnit cu) { + private static void parseAction(Object arg, Transition t, CompilationUnit cu, CodebaseContext context) { QuotedExpression quotedExpr = QuotedExpression.of(arg); if (quotedExpr != null) { - String internalLogic = extractInternalLogic(quotedExpr.getExpression(), cu); - t.getActions().add(Action.of(quotedExpr.toStringWithoutQuotes(), isLambdaOrAnonymous(quotedExpr.getExpression()), internalLogic)); + String internalLogic = extractInternalLogic(quotedExpr.getExpression(), cu, context); + int lineNumber = cu.getLineNumber(quotedExpr.getExpression().getStartPosition()); + t.getActions().add(Action.of(quotedExpr.toStringWithoutQuotes(), isLambdaOrAnonymous(quotedExpr.getExpression()), internalLogic, lineNumber)); } } diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/model/Action.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/model/Action.java index a81692f..268dd03 100644 --- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/model/Action.java +++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/model/Action.java @@ -1,7 +1,7 @@ package click.kamil.springstatemachineexporter.model; -public record Action(String expression, boolean isLambda, String internalLogic) { - public static Action of(String expression, boolean isLambda, String internalLogic) { - return expression != null ? new Action(expression, isLambda, internalLogic) : null; +public record Action(String expression, boolean isLambda, String internalLogic, Integer lineNumber) { + public static Action of(String expression, boolean isLambda, String internalLogic, Integer lineNumber) { + return expression != null ? new Action(expression, isLambda, internalLogic, lineNumber) : null; } } diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/model/Guard.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/model/Guard.java index 5d07f2a..b320568 100644 --- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/model/Guard.java +++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/model/Guard.java @@ -1,7 +1,7 @@ package click.kamil.springstatemachineexporter.model; -public record Guard(String expression, boolean isLambda, String internalLogic) { - public static Guard of(String expression, boolean isLambda, String internalLogic) { - return expression != null ? new Guard(expression, isLambda, internalLogic) : null; +public record Guard(String expression, boolean isLambda, String internalLogic, Integer lineNumber) { + public static Guard of(String expression, boolean isLambda, String internalLogic, Integer lineNumber) { + return expression != null ? new Guard(expression, isLambda, internalLogic, lineNumber) : null; } } diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/service/ExportService.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/service/ExportService.java index c43b43f..28424ad 100644 --- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/service/ExportService.java +++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/service/ExportService.java @@ -93,7 +93,7 @@ public class ExportService { context.scan(inputDir); CodebaseIntelligenceProvider intelligence = new JdtIntelligenceProvider(context, inputDir); - exportAll(context, intelligence, outputDir, selectedFormats, renderChoicesAsDiamonds, flows, machineFilter); + exportAll(context, intelligence, outputDir, selectedFormats, renderChoicesAsDiamonds, flows, machineFilter, activeProfiles != null ? activeProfiles : Collections.emptyList()); } public void runJsonExporter(Path jsonFile, Path outputDir, List selectedFormats) throws IOException { @@ -131,7 +131,7 @@ public class ExportService { result.applyResolution(merged); } - private void exportAll(CodebaseContext context, CodebaseIntelligenceProvider intelligence, Path outputDir, List selectedFormats, boolean renderChoicesAsDiamonds, List flows, String machineFilter) throws IOException { + private void exportAll(CodebaseContext context, CodebaseIntelligenceProvider intelligence, Path outputDir, List selectedFormats, boolean renderChoicesAsDiamonds, List flows, String machineFilter, List activeProfiles) throws IOException { Set processedLocations = new HashSet<>(); // 1. Find entry point classes (annotated or extending adapter) @@ -140,7 +140,7 @@ public class ExportService { String fqn = context.getFqn(td); if (machineFilter != null && !fqn.contains(machineFilter)) continue; if (processedLocations.add(fqn)) { - processEntryPoint(td, outputDir, context, intelligence, selectedFormats, renderChoicesAsDiamonds, flows); + processEntryPoint(td, outputDir, context, intelligence, selectedFormats, renderChoicesAsDiamonds, flows, activeProfiles); } } @@ -154,12 +154,12 @@ public class ExportService { if (machineFilter != null && !uniqueId.contains(machineFilter)) continue; if (processedLocations.add(uniqueId)) { - processBeanMethod(m, outputDir, context, intelligence, selectedFormats, renderChoicesAsDiamonds, flows); + processBeanMethod(m, outputDir, context, intelligence, selectedFormats, renderChoicesAsDiamonds, flows, activeProfiles); } } } - private void processEntryPoint(TypeDeclaration td, Path outputDir, CodebaseContext context, CodebaseIntelligenceProvider intelligence, List selectedFormats, boolean renderChoicesAsDiamonds, List flows) throws IOException { + private void processEntryPoint(TypeDeclaration td, Path outputDir, CodebaseContext context, CodebaseIntelligenceProvider intelligence, List selectedFormats, boolean renderChoicesAsDiamonds, List flows, List activeProfiles) throws IOException { String className = context.getFqn(td); log.info("Processing state machine config: {}", className); @@ -189,10 +189,12 @@ public class ExportService { enrichmentService.enrich(result, context, intelligence); + resolveProperties(result, activeProfiles); + generateOutputs(outputDir, result, selectedFormats); } - private void processBeanMethod(MethodDeclaration m, Path outputDir, CodebaseContext context, CodebaseIntelligenceProvider intelligence, List selectedFormats, boolean renderChoicesAsDiamonds, List flows) throws IOException { + private void processBeanMethod(MethodDeclaration m, Path outputDir, CodebaseContext context, CodebaseIntelligenceProvider intelligence, List selectedFormats, boolean renderChoicesAsDiamonds, List flows, List activeProfiles) throws IOException { TypeDeclaration parentClass = (TypeDeclaration) m.getParent(); String parentFqn = context.getFqn(parentClass); String methodName = m.getName().getIdentifier(); @@ -218,6 +220,8 @@ public class ExportService { enrichmentService.enrich(result, context, intelligence); + resolveProperties(result, activeProfiles); + generateOutputs(outputDir, result, selectedFormats); } diff --git a/state_machine_exporter/src/test/java/click/kamil/springstatemachineexporter/ast/app/AstTransitionParserTest.java b/state_machine_exporter/src/test/java/click/kamil/springstatemachineexporter/ast/app/AstTransitionParserTest.java index 7475f87..86412e8 100644 --- a/state_machine_exporter/src/test/java/click/kamil/springstatemachineexporter/ast/app/AstTransitionParserTest.java +++ b/state_machine_exporter/src/test/java/click/kamil/springstatemachineexporter/ast/app/AstTransitionParserTest.java @@ -215,6 +215,54 @@ class AstTransitionParserTest { assertThat(transitions.get(1).getEvent()).isEqualTo("E2"); } + @Test + void shouldExtractInternalLogicForLambda() { + String source = """ + public class TestClass { + public void configure(StateMachineTransitionConfigurer transitions) throws Exception { + transitions.withExternal() + .source("S1") + .target("S2") + .guard(context -> context.getMessage() != null); + } + } + """; + MethodDeclaration method = createMethodDeclaration(source); + + List transitions = AstTransitionParser.parseTransitions(method, context); + + assertThat(transitions).hasSize(1); + assertThat(transitions.getFirst().getGuard().internalLogic()) + .contains("context.getMessage() != null"); + } + + @Test + void shouldExtractInternalLogicForAnonymousClass() { + String source = """ + public class TestClass { + public void configure(StateMachineTransitionConfigurer transitions) throws Exception { + transitions + .withExternal() + .source("S1") + .target("S2") + .action(new Action() { + @Override + public void execute(StateContext context) { + System.out.println("Hello"); + } + }); + } + } + """; + MethodDeclaration method = createMethodDeclaration(source); + + List transitions = AstTransitionParser.parseTransitions(method, context); + + assertThat(transitions).hasSize(1); + assertThat(transitions.getFirst().getActions().get(0).internalLogic()) + .contains("System.out.println(\"Hello\")"); + } + private MethodDeclaration createMethodDeclaration(String source) { ASTParser parser = ASTParser.newParser(AST.getJLSLatest()); parser.setKind(ASTParser.K_COMPILATION_UNIT); diff --git a/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.json b/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.json index c918b36..6df9980 100644 --- a/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.json +++ b/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.complex.ComplexStateMachineConfig", @@ -234,7 +236,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 86 }, "actions" : [ ], "order" : 0 @@ -252,7 +255,8 @@ "guard" : { "expression" : "guardVarEquals(\"value2\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 87 }, "actions" : [ ], "order" : 1 @@ -284,7 +288,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 92 }, "actions" : [ ], "order" : 0 @@ -316,7 +321,8 @@ "guard" : { "expression" : "guardVarEquals(\"value3\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 97 }, "actions" : [ ], "order" : 0 @@ -348,7 +354,8 @@ "guard" : { "expression" : "guardVarEquals(\"reset\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 102 }, "actions" : [ ], "order" : 0 @@ -380,7 +387,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header2\",\"bar\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 107 }, "actions" : [ ], "order" : 0 @@ -412,7 +420,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo13\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 112 }, "actions" : [ ], "order" : 0 @@ -430,7 +439,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo14\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 113 }, "actions" : [ ], "order" : 1 @@ -462,7 +472,8 @@ "guard" : { "expression" : "guardVarEquals(\"goBack10\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 118 }, "actions" : [ ], "order" : 0 @@ -494,7 +505,8 @@ "guard" : { "expression" : "guardVarEquals(\"loop12\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 123 }, "actions" : [ ], "order" : 0 @@ -526,7 +538,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 128 }, "actions" : [ ], "order" : 0 @@ -544,7 +557,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 129 }, "actions" : [ ], "order" : 1 @@ -576,7 +590,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 134 }, "actions" : [ ], "order" : 0 diff --git a/state_machine_exporter/src/test/resources/golden/EnterpriseStateMachineConfig/EnterpriseStateMachineConfig.json b/state_machine_exporter/src/test/resources/golden/EnterpriseStateMachineConfig/EnterpriseStateMachineConfig.json index 8e1da47..74e2d02 100644 --- a/state_machine_exporter/src/test/resources/golden/EnterpriseStateMachineConfig/EnterpriseStateMachineConfig.json +++ b/state_machine_exporter/src/test/resources/golden/EnterpriseStateMachineConfig/EnterpriseStateMachineConfig.json @@ -261,7 +261,9 @@ "lineNumber" : 17 } } ], - "properties" : { } + "properties" : { + "default" : { } + } }, "name" : "click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig", "renderChoicesAsDiamonds" : true, @@ -294,7 +296,8 @@ "guard" : { "expression" : "(c) -> true", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "(c) -> true", + "lineNumber" : 41 }, "actions" : [ ], "order" : 0 diff --git a/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig/ExtendedStateMachineConfig.json b/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig/ExtendedStateMachineConfig.json index 5fd3106..f8256fb 100644 --- a/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig/ExtendedStateMachineConfig.json +++ b/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig/ExtendedStateMachineConfig.json @@ -274,7 +274,12 @@ } } ], "properties" : { - "app.states.initial" : "INIT_STATE" + "default" : { + "app.states.initial" : "INIT_STATE" + }, + "prod" : { + "app.states.initial" : "PROD_INITIAL" + } } }, "name" : "click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig", diff --git a/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig_PROD/ExtendedStateMachineConfig.json b/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig_PROD/ExtendedStateMachineConfig.json index aa6e25e..8bd17fb 100644 --- a/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig_PROD/ExtendedStateMachineConfig.json +++ b/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig_PROD/ExtendedStateMachineConfig.json @@ -274,7 +274,12 @@ } } ], "properties" : { - "app.states.initial" : "PROD_INITIAL" + "default" : { + "app.states.initial" : "INIT_STATE" + }, + "prod" : { + "app.states.initial" : "PROD_INITIAL" + } } }, "name" : "click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig", diff --git a/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.json b/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.json index d8f2f25..33ee7a7 100644 --- a/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.json +++ b/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate3.F1StateMachineConfiguration", @@ -318,7 +320,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 120 }, "actions" : [ ], "order" : 0 @@ -350,7 +353,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 126 }, "actions" : [ ], "order" : 0 @@ -368,7 +372,8 @@ "guard" : { "expression" : "guardVarEquals(\"value2\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 127 }, "actions" : [ ], "order" : 1 @@ -400,7 +405,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 132 }, "actions" : [ ], "order" : 0 @@ -432,7 +438,8 @@ "guard" : { "expression" : "guardVarEquals(\"value3\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 137 }, "actions" : [ ], "order" : 0 @@ -464,7 +471,8 @@ "guard" : { "expression" : "guardVarEquals(\"reset\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 142 }, "actions" : [ ], "order" : 0 @@ -496,7 +504,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header2\",\"bar\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 147 }, "actions" : [ ], "order" : 0 @@ -528,7 +537,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo13\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 152 }, "actions" : [ ], "order" : 0 @@ -546,7 +556,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo14\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 153 }, "actions" : [ ], "order" : 1 @@ -578,7 +589,8 @@ "guard" : { "expression" : "guardVarEquals(\"goBack10\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 158 }, "actions" : [ ], "order" : 0 @@ -610,7 +622,8 @@ "guard" : { "expression" : "guardVarEquals(\"loop12\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 163 }, "actions" : [ ], "order" : 0 @@ -642,7 +655,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 168 }, "actions" : [ ], "order" : 0 @@ -660,7 +674,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 169 }, "actions" : [ ], "order" : 1 @@ -692,7 +707,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 174 }, "actions" : [ ], "order" : 0 @@ -738,7 +754,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 31 }, "actions" : [ ], "order" : 0 diff --git a/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.json b/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.json index 81d3e36..f775981 100644 --- a/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.json +++ b/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate3.F2StateMachineConfiguration", @@ -318,7 +320,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 120 }, "actions" : [ ], "order" : 0 @@ -350,7 +353,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 126 }, "actions" : [ ], "order" : 0 @@ -368,7 +372,8 @@ "guard" : { "expression" : "guardVarEquals(\"value2\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 127 }, "actions" : [ ], "order" : 1 @@ -400,7 +405,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 132 }, "actions" : [ ], "order" : 0 @@ -432,7 +438,8 @@ "guard" : { "expression" : "guardVarEquals(\"value3\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 137 }, "actions" : [ ], "order" : 0 @@ -464,7 +471,8 @@ "guard" : { "expression" : "guardVarEquals(\"reset\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 142 }, "actions" : [ ], "order" : 0 @@ -496,7 +504,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header2\",\"bar\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 147 }, "actions" : [ ], "order" : 0 @@ -528,7 +537,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo13\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 152 }, "actions" : [ ], "order" : 0 @@ -546,7 +556,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo14\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 153 }, "actions" : [ ], "order" : 1 @@ -578,7 +589,8 @@ "guard" : { "expression" : "guardVarEquals(\"goBack10\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 158 }, "actions" : [ ], "order" : 0 @@ -610,7 +622,8 @@ "guard" : { "expression" : "guardVarEquals(\"loop12\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 163 }, "actions" : [ ], "order" : 0 @@ -642,7 +655,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 168 }, "actions" : [ ], "order" : 0 @@ -660,7 +674,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 169 }, "actions" : [ ], "order" : 1 @@ -692,7 +707,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 174 }, "actions" : [ ], "order" : 0 @@ -738,7 +754,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 33 }, "actions" : [ ], "order" : 0 diff --git a/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.json b/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.json index 9c3107c..7da7af6 100644 --- a/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.json +++ b/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.forkjoin.ForkJoinStateMachineConfig", diff --git a/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.json b/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.json index c9f4e88..b0908f1 100644 --- a/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.json +++ b/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate3.G1StateMachineConfiguration", @@ -234,7 +236,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 98 }, "actions" : [ ], "order" : 0 @@ -266,7 +269,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 104 }, "actions" : [ ], "order" : 0 @@ -284,7 +288,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 105 }, "actions" : [ ], "order" : 1 @@ -316,7 +321,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 110 }, "actions" : [ ], "order" : 0 diff --git a/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.json b/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.json index 07985e4..19f11ae 100644 --- a/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.json +++ b/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate3.G2StateMachineConfiguration", @@ -234,7 +236,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 98 }, "actions" : [ ], "order" : 0 @@ -266,7 +269,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 104 }, "actions" : [ ], "order" : 0 @@ -284,7 +288,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 105 }, "actions" : [ ], "order" : 1 @@ -316,7 +321,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 110 }, "actions" : [ ], "order" : 0 diff --git a/state_machine_exporter/src/test/resources/golden/InheritanceStateMachineConfig/InheritanceStateMachineConfig.json b/state_machine_exporter/src/test/resources/golden/InheritanceStateMachineConfig/InheritanceStateMachineConfig.json index 2974e86..d9a7446 100644 --- a/state_machine_exporter/src/test/resources/golden/InheritanceStateMachineConfig/InheritanceStateMachineConfig.json +++ b/state_machine_exporter/src/test/resources/golden/InheritanceStateMachineConfig/InheritanceStateMachineConfig.json @@ -41,7 +41,9 @@ "lineNumber" : 15 } } ], - "properties" : { } + "properties" : { + "default" : { } + } }, "name" : "click.kamil.examples.statemachine.inheritance.config.InheritanceStateMachineConfig", "renderChoicesAsDiamonds" : true, diff --git a/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.json b/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.json index 17d7730..028df4c 100644 --- a/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.json +++ b/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.enumstate.KamilEnumStateMachineConfiguration", @@ -52,7 +54,8 @@ "guard" : { "expression" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", + "lineNumber" : 29 }, "actions" : [ ], "order" : null @@ -109,7 +112,8 @@ "guard" : { "expression" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return true;\n }\n}\n", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return true;\n }\n}\n", + "lineNumber" : 46 }, "actions" : [ ], "order" : 0 @@ -127,7 +131,8 @@ "guard" : { "expression" : "guard1", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 52 }, "actions" : [ ], "order" : 1 @@ -145,7 +150,8 @@ "guard" : { "expression" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", + "lineNumber" : 53 }, "actions" : [ ], "order" : 2 @@ -203,11 +209,13 @@ "actions" : [ { "expression" : "new Action(){\n @Override public void execute( StateContext context){\n }\n}\n", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "new Action(){\n @Override public void execute( StateContext context){\n }\n}\n", + "lineNumber" : 63 }, { "expression" : "action2", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 67 } ], "order" : null } ], diff --git a/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.json b/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.json index 73be5c4..f90416f 100644 --- a/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.json +++ b/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.inheritancestate.OneStateMachineConfiguration", @@ -248,7 +250,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 91 }, "actions" : [ ], "order" : 0 @@ -280,7 +283,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 97 }, "actions" : [ ], "order" : 0 @@ -298,7 +302,8 @@ "guard" : { "expression" : "guardVarEquals(\"value2\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 98 }, "actions" : [ ], "order" : 1 @@ -330,7 +335,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 103 }, "actions" : [ ], "order" : 0 @@ -362,7 +368,8 @@ "guard" : { "expression" : "guardVarEquals(\"value3\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 108 }, "actions" : [ ], "order" : 0 @@ -394,7 +401,8 @@ "guard" : { "expression" : "guardVarEquals(\"reset\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 113 }, "actions" : [ ], "order" : 0 @@ -426,7 +434,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header2\",\"bar\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 118 }, "actions" : [ ], "order" : 0 @@ -458,7 +467,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo13\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 123 }, "actions" : [ ], "order" : 0 @@ -476,7 +486,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo14\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 124 }, "actions" : [ ], "order" : 1 @@ -508,7 +519,8 @@ "guard" : { "expression" : "guardVarEquals(\"goBack10\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 129 }, "actions" : [ ], "order" : 0 @@ -540,7 +552,8 @@ "guard" : { "expression" : "guardVarEquals(\"loop12\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 134 }, "actions" : [ ], "order" : 0 @@ -572,7 +585,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 139 }, "actions" : [ ], "order" : 0 @@ -590,7 +604,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 140 }, "actions" : [ ], "order" : 1 @@ -622,7 +637,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 145 }, "actions" : [ ], "order" : 0 diff --git a/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.json b/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.json index cae2059..f219ea5 100644 --- a/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.json +++ b/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration", @@ -52,7 +54,8 @@ "guard" : { "expression" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", + "lineNumber" : 29 }, "actions" : [ ], "order" : null @@ -95,7 +98,8 @@ "guard" : { "expression" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", + "lineNumber" : 46 }, "actions" : [ ], "order" : 0 @@ -127,7 +131,8 @@ "guard" : { "expression" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return true;\n }\n}\n", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return true;\n }\n}\n", + "lineNumber" : 55 }, "actions" : [ ], "order" : 0 @@ -145,7 +150,8 @@ "guard" : { "expression" : "guard1", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 61 }, "actions" : [ ], "order" : 1 @@ -163,7 +169,8 @@ "guard" : { "expression" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "new Guard(){\n @Override public boolean evaluate( StateContext context){\n return false;\n }\n}\n", + "lineNumber" : 62 }, "actions" : [ ], "order" : 2 @@ -221,11 +228,13 @@ "actions" : [ { "expression" : "new Action(){\n @Override public void execute( StateContext context){\n ;\n }\n}\n", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "new Action(){\n @Override public void execute( StateContext context){\n ;\n }\n}\n", + "lineNumber" : 72 }, { "expression" : "action2", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 77 } ], "order" : null } ], diff --git a/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.json b/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.json index ad47790..8f57552 100644 --- a/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.json +++ b/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate2.ThreeStateMachineConfiguration", @@ -318,7 +320,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 120 }, "actions" : [ ], "order" : 0 @@ -350,7 +353,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 126 }, "actions" : [ ], "order" : 0 @@ -368,7 +372,8 @@ "guard" : { "expression" : "guardVarEquals(\"value2\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 127 }, "actions" : [ ], "order" : 1 @@ -400,7 +405,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 132 }, "actions" : [ ], "order" : 0 @@ -432,7 +438,8 @@ "guard" : { "expression" : "guardVarEquals(\"value3\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 137 }, "actions" : [ ], "order" : 0 @@ -464,7 +471,8 @@ "guard" : { "expression" : "guardVarEquals(\"reset\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 142 }, "actions" : [ ], "order" : 0 @@ -496,7 +504,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header2\",\"bar\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 147 }, "actions" : [ ], "order" : 0 @@ -528,7 +537,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo13\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 152 }, "actions" : [ ], "order" : 0 @@ -546,7 +556,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo14\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 153 }, "actions" : [ ], "order" : 1 @@ -578,7 +589,8 @@ "guard" : { "expression" : "guardVarEquals(\"goBack10\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 158 }, "actions" : [ ], "order" : 0 @@ -610,7 +622,8 @@ "guard" : { "expression" : "guardVarEquals(\"loop12\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 163 }, "actions" : [ ], "order" : 0 @@ -642,7 +655,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 168 }, "actions" : [ ], "order" : 0 @@ -660,7 +674,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 169 }, "actions" : [ ], "order" : 1 @@ -692,7 +707,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 174 }, "actions" : [ ], "order" : 0 @@ -738,7 +754,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 31 }, "actions" : [ ], "order" : 0 diff --git a/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.json b/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.json index 362a8d6..71a6830 100644 --- a/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.json +++ b/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.json @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate.TwoStateMachineConfiguration", @@ -318,7 +320,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 120 }, "actions" : [ ], "order" : 0 @@ -350,7 +353,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 126 }, "actions" : [ ], "order" : 0 @@ -368,7 +372,8 @@ "guard" : { "expression" : "guardVarEquals(\"value2\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 127 }, "actions" : [ ], "order" : 1 @@ -400,7 +405,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 132 }, "actions" : [ ], "order" : 0 @@ -432,7 +438,8 @@ "guard" : { "expression" : "guardVarEquals(\"value3\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 137 }, "actions" : [ ], "order" : 0 @@ -464,7 +471,8 @@ "guard" : { "expression" : "guardVarEquals(\"reset\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 142 }, "actions" : [ ], "order" : 0 @@ -496,7 +504,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header2\",\"bar\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 147 }, "actions" : [ ], "order" : 0 @@ -528,7 +537,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo13\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 152 }, "actions" : [ ], "order" : 0 @@ -546,7 +556,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo14\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 153 }, "actions" : [ ], "order" : 1 @@ -578,7 +589,8 @@ "guard" : { "expression" : "guardVarEquals(\"goBack10\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 158 }, "actions" : [ ], "order" : 0 @@ -610,7 +622,8 @@ "guard" : { "expression" : "guardVarEquals(\"loop12\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 163 }, "actions" : [ ], "order" : 0 @@ -642,7 +655,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 168 }, "actions" : [ ], "order" : 0 @@ -660,7 +674,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 169 }, "actions" : [ ], "order" : 1 @@ -692,7 +707,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 174 }, "actions" : [ ], "order" : 0 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 index 368efed..6b1668d 100644 --- 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 @@ -580,7 +580,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 86 }, "actions" : [ ], "order" : 0 @@ -598,7 +599,8 @@ "guard" : { "expression" : "guardVarEquals(\"value2\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 87 }, "actions" : [ ], "order" : 1 @@ -630,7 +632,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 92 }, "actions" : [ ], "order" : 0 @@ -662,7 +665,8 @@ "guard" : { "expression" : "guardVarEquals(\"value3\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 97 }, "actions" : [ ], "order" : 0 @@ -694,7 +698,8 @@ "guard" : { "expression" : "guardVarEquals(\"reset\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 102 }, "actions" : [ ], "order" : 0 @@ -726,7 +731,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header2\",\"bar\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 107 }, "actions" : [ ], "order" : 0 @@ -758,7 +764,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo13\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 112 }, "actions" : [ ], "order" : 0 @@ -776,7 +783,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo14\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 113 }, "actions" : [ ], "order" : 1 @@ -808,7 +816,8 @@ "guard" : { "expression" : "guardVarEquals(\"goBack10\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 118 }, "actions" : [ ], "order" : 0 @@ -840,7 +849,8 @@ "guard" : { "expression" : "guardVarEquals(\"loop12\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 123 }, "actions" : [ ], "order" : 0 @@ -872,7 +882,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 128 }, "actions" : [ ], "order" : 0 @@ -890,7 +901,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 129 }, "actions" : [ ], "order" : 1 @@ -922,7 +934,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 134 }, "actions" : [ ], "order" : 0 @@ -950,7 +963,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } } } @@ -1205,7 +1220,8 @@ `; if (trans && trans.guard) { - html += `
Guard
+ const lineInfo = trans.guard.lineNumber ? ` (Line: ${trans.guard.lineNumber})` : ''; + html += `
Guard${lineInfo}
${trans.guard.expression}
`; if (trans.guard.internalLogic) { html += `
Internal Logic
@@ -1216,7 +1232,9 @@ if (trans && trans.actions && trans.actions.length > 0) { html += `
Actions
`; trans.actions.forEach(action => { - html += `
${action.expression}
`; + const lineInfo = action.lineNumber ? ` (Line: ${action.lineNumber})` : ''; + html += `
Action${lineInfo}
+
${action.expression}
`; if (action.internalLogic) { html += `
Internal Logic
${action.internalLogic.replace(//g, '>')}
`; 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 index c918b36..6df9980 100644 --- 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 @@ -4,7 +4,9 @@ "entryPoints" : [ ], "callChains" : [ ], "properties" : { - "spring.application.name" : "statemachinedemo" + "default" : { + "spring.application.name" : "statemachinedemo" + } } }, "name" : "click.kamil.examples.statemachine.complex.ComplexStateMachineConfig", @@ -234,7 +236,8 @@ "guard" : { "expression" : "guardVarEquals(\"value1\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 86 }, "actions" : [ ], "order" : 0 @@ -252,7 +255,8 @@ "guard" : { "expression" : "guardVarEquals(\"value2\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 87 }, "actions" : [ ], "order" : 1 @@ -284,7 +288,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header1\",\"foo\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 92 }, "actions" : [ ], "order" : 0 @@ -316,7 +321,8 @@ "guard" : { "expression" : "guardVarEquals(\"value3\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 97 }, "actions" : [ ], "order" : 0 @@ -348,7 +354,8 @@ "guard" : { "expression" : "guardVarEquals(\"reset\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 102 }, "actions" : [ ], "order" : 0 @@ -380,7 +387,8 @@ "guard" : { "expression" : "guardEventHeaderEquals(\"header2\",\"bar\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 107 }, "actions" : [ ], "order" : 0 @@ -412,7 +420,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo13\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 112 }, "actions" : [ ], "order" : 0 @@ -430,7 +439,8 @@ "guard" : { "expression" : "guardVarEquals(\"goTo14\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 113 }, "actions" : [ ], "order" : 1 @@ -462,7 +472,8 @@ "guard" : { "expression" : "guardVarEquals(\"goBack10\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 118 }, "actions" : [ ], "order" : 0 @@ -494,7 +505,8 @@ "guard" : { "expression" : "guardVarEquals(\"loop12\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 123 }, "actions" : [ ], "order" : 0 @@ -526,7 +538,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBack\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 128 }, "actions" : [ ], "order" : 0 @@ -544,7 +557,8 @@ "guard" : { "expression" : "guardVarEquals(\"stepBackMore\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 129 }, "actions" : [ ], "order" : 1 @@ -576,7 +590,8 @@ "guard" : { "expression" : "guardVarEquals(\"forward9\")", "isLambda" : false, - "internalLogic" : null + "internalLogic" : null, + "lineNumber" : 134 }, "actions" : [ ], "order" : 0 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 index f88f1a0..0c7f250 100644 --- 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 @@ -304,9 +304,6 @@ }, { "rawName" : "\"CHECK_AVAILABILITY\"", "fullIdentifier" : "CHECK_AVAILABILITY" - }, { - "rawName" : "NEW", - "fullIdentifier" : "NEW" }, { "rawName" : "RETURNED", "fullIdentifier" : "RETURNED" @@ -316,6 +313,9 @@ }, { "rawName" : "CANCELLED", "fullIdentifier" : "CANCELLED" + }, { + "rawName" : "${order.initial.state:NEW}", + "fullIdentifier" : "NEW" }, { "rawName" : "\"PENDING_PAYMENT\"", "fullIdentifier" : "PENDING_PAYMENT" @@ -360,7 +360,8 @@ "guard" : { "expression" : "(c) -> true", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "(c) -> true", + "lineNumber" : 41 }, "actions" : [ ], "order" : 0 @@ -727,7 +728,9 @@ "lineNumber" : 17 } } ], - "properties" : { } + "properties" : { + "default" : { } + } } } @@ -931,13 +934,9 @@ let metaTrans = null; if (isAnon) { - const parts = linkId.split('_'); // link_anon_SRC_TGT - const src = parts[2]; - const tgt = parts[3]; metaTrans = transitions.find(t => !t.event && - normalize(t.sourceStates[0].fullIdentifier) === src && - normalize(t.targetStates[0].fullIdentifier) === tgt + "anon_" + normalize(t.sourceStates[0].fullIdentifier) + "_" + normalize(t.targetStates[0].fullIdentifier) === linkId ); } else { metaTrans = transitions.find(t => normalize(t.event) === linkId); @@ -981,7 +980,8 @@ `; if (trans && trans.guard) { - html += `
Guard
+ const lineInfo = trans.guard.lineNumber ? ` (Line: ${trans.guard.lineNumber})` : ''; + html += `
Guard${lineInfo}
${trans.guard.expression}
`; if (trans.guard.internalLogic) { html += `
Internal Logic
@@ -992,7 +992,9 @@ if (trans && trans.actions && trans.actions.length > 0) { html += `
Actions
`; trans.actions.forEach(action => { - html += `
${action.expression}
`; + const lineInfo = action.lineNumber ? ` (Line: ${action.lineNumber})` : ''; + html += `
Action${lineInfo}
+
${action.expression}
`; if (action.internalLogic) { html += `
Internal Logic
${action.internalLogic.replace(//g, '>')}
`; 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 index 8e1da47..74e2d02 100644 --- 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 @@ -261,7 +261,9 @@ "lineNumber" : 17 } } ], - "properties" : { } + "properties" : { + "default" : { } + } }, "name" : "click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig", "renderChoicesAsDiamonds" : true, @@ -294,7 +296,8 @@ "guard" : { "expression" : "(c) -> true", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "(c) -> true", + "lineNumber" : 41 }, "actions" : [ ], "order" : 0 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 index 397bb09..f9d928d 100644 --- 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 @@ -288,7 +288,7 @@
- NEWCHECK_AVAILABILITYPENDING_PAYMENTCANCELLEDPAIDSHIPPEDDELIVEREDRETURNEDPLACE_ORDERλ (order=0)(order=1)PAY_ORDERSHIP_ORDERFINALIZECANCEL_ORDERRETURN_ORDER + order.initial.stateNEWNEWCHECK_AVAILABILITYPENDING_PAYMENTCANCELLEDPAIDSHIPPEDDELIVEREDRETURNEDPLACE_ORDERλ (order=0)(order=1)PAY_ORDERSHIP_ORDERFINALIZECANCEL_ORDERRETURN_ORDER
@@ -304,9 +304,6 @@ }, { "rawName" : "\"CHECK_AVAILABILITY\"", "fullIdentifier" : "CHECK_AVAILABILITY" - }, { - "rawName" : "NEW", - "fullIdentifier" : "NEW" }, { "rawName" : "RETURNED", "fullIdentifier" : "RETURNED" @@ -316,6 +313,9 @@ }, { "rawName" : "CANCELLED", "fullIdentifier" : "CANCELLED" + }, { + "rawName" : "${order.initial.state:NEW}", + "fullIdentifier" : "${order.initial.state:NEW}" }, { "rawName" : "\"PENDING_PAYMENT\"", "fullIdentifier" : "PENDING_PAYMENT" @@ -360,7 +360,8 @@ "guard" : { "expression" : "(c) -> true", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "(c) -> true", + "lineNumber" : 41 }, "actions" : [ ], "order" : 0 @@ -449,7 +450,7 @@ "actions" : [ ], "order" : null } ], - "startStates" : [ "NEW" ], + "startStates" : [ "${order.initial.state:NEW}" ], "endStates" : [ "CANCELLED", "DELIVERED", "RETURNED" ], "renderChoicesAsDiamonds" : false, "flows" : [ { @@ -727,7 +728,9 @@ "lineNumber" : 17 } } ], - "properties" : { } + "properties" : { + "default" : { } + } } } @@ -981,7 +984,8 @@ `; if (trans && trans.guard) { - html += `
Guard
+ const lineInfo = trans.guard.lineNumber ? ` (Line: ${trans.guard.lineNumber})` : ''; + html += `
Guard${lineInfo}
${trans.guard.expression}
`; if (trans.guard.internalLogic) { html += `
Internal Logic
@@ -992,7 +996,9 @@ if (trans && trans.actions && trans.actions.length > 0) { html += `
Actions
`; trans.actions.forEach(action => { - html += `
${action.expression}
`; + const lineInfo = action.lineNumber ? ` (Line: ${action.lineNumber})` : ''; + html += `
Action${lineInfo}
+
${action.expression}
`; if (action.internalLogic) { html += `
Internal Logic
${action.internalLogic.replace(//g, '>')}
`; 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 index 324caa4..e66500d 100644 --- 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 @@ -261,11 +261,13 @@ "lineNumber" : 17 } } ], - "properties" : { } + "properties" : { + "default" : { } + } }, "name" : "click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig", "renderChoicesAsDiamonds" : false, - "startStates" : [ "NEW" ], + "startStates" : [ "${order.initial.state:NEW}" ], "transitions" : [ { "type" : "EXTERNAL", "sourceStates" : [ { @@ -294,7 +296,8 @@ "guard" : { "expression" : "(c) -> true", "isLambda" : true, - "internalLogic" : null + "internalLogic" : "(c) -> true", + "lineNumber" : 41 }, "actions" : [ ], "order" : 0 diff --git a/state_machine_exporter_html/src/main/resources/html/template.html b/state_machine_exporter_html/src/main/resources/html/template.html index c7f8890..1770b43 100644 --- a/state_machine_exporter_html/src/main/resources/html/template.html +++ b/state_machine_exporter_html/src/main/resources/html/template.html @@ -495,13 +495,9 @@ let metaTrans = null; if (isAnon) { - const parts = linkId.split('_'); // link_anon_SRC_TGT - const src = parts[2]; - const tgt = parts[3]; metaTrans = transitions.find(t => !t.event && - normalize(t.sourceStates[0].fullIdentifier) === src && - normalize(t.targetStates[0].fullIdentifier) === tgt + "anon_" + normalize(t.sourceStates[0].fullIdentifier) + "_" + normalize(t.targetStates[0].fullIdentifier) === linkId ); } else { metaTrans = transitions.find(t => normalize(t.event) === linkId); @@ -545,7 +541,8 @@ `; if (trans && trans.guard) { - html += `
Guard
+ const lineInfo = trans.guard.lineNumber ? ` (Line: ${trans.guard.lineNumber})` : ''; + html += `
Guard${lineInfo}
${trans.guard.expression}
`; if (trans.guard.internalLogic) { html += `
Internal Logic
@@ -556,7 +553,9 @@ if (trans && trans.actions && trans.actions.length > 0) { html += `
Actions
`; trans.actions.forEach(action => { - html += `
${action.expression}
`; + const lineInfo = action.lineNumber ? ` (Line: ${action.lineNumber})` : ''; + html += `
Action${lineInfo}
+
${action.expression}
`; if (action.internalLogic) { html += `
Internal Logic
${action.internalLogic.replace(//g, '>')}
`;