From c59947a0ac3a0709d199c2c5f10a725659fcb583 Mon Sep 17 00:00:00 2001 From: Kamil Patryk Kozakowski Date: Sat, 5 Jul 2025 21:32:36 +0200 Subject: [PATCH] done --- build.gradle | 5 + .../com/example/statemachinedemo/AFinder.java | 394 ++++++++++++++++++ .../example/statemachinedemo/ExportUtils.java | 262 ++++++++++++ .../example/statemachinedemo/StateUtils.java | 52 +++ .../StatemachinedemoApplication.java | 263 ------------ .../statemachinedemo/TransitionParser.java | 179 ++++++++ .../notgoodspringbased/SpringExporter.java | 222 ++++++++++ .../statemachine/OrderEvents.java | 7 + .../statemachine/OrderStates.java | 6 + .../SimpleEnumStateMachineConfiguration.java | 96 +++++ stateMachine.scxml | 1 - statemachine.1.dot | 38 ++ statemachine.2.dot | 33 ++ statemachine.2.png | Bin 0 -> 59787 bytes statemachine.dot | 14 - statemachine.png | Bin 35991 -> 110200 bytes statemachine.uml.dot | 11 - statemachine.uml.png | Bin 20544 -> 0 bytes 18 files changed, 1294 insertions(+), 289 deletions(-) create mode 100644 src/main/java/com/example/statemachinedemo/AFinder.java create mode 100644 src/main/java/com/example/statemachinedemo/ExportUtils.java create mode 100644 src/main/java/com/example/statemachinedemo/StateUtils.java create mode 100644 src/main/java/com/example/statemachinedemo/TransitionParser.java create mode 100644 src/main/java/com/example/statemachinedemo/notgoodspringbased/SpringExporter.java create mode 100644 src/main/java/com/example/statemachinedemo/statemachine/OrderEvents.java create mode 100644 src/main/java/com/example/statemachinedemo/statemachine/OrderStates.java create mode 100644 src/main/java/com/example/statemachinedemo/statemachine/SimpleEnumStateMachineConfiguration.java delete mode 100644 stateMachine.scxml create mode 100644 statemachine.1.dot create mode 100644 statemachine.2.dot create mode 100644 statemachine.2.png delete mode 100644 statemachine.dot delete mode 100644 statemachine.uml.dot delete mode 100644 statemachine.uml.png diff --git a/build.gradle b/build.gradle index c3207f2..5a0ab8a 100644 --- a/build.gradle +++ b/build.gradle @@ -33,6 +33,11 @@ dependencies { // deps for SCXMLWriter // implementation "org.apache.commons:scxml4j:1.0.0" + implementation 'org.eclipse.jdt:org.eclipse.jdt.core:3.36.0' + + // deps for parsing java AST + implementation 'com.github.javaparser:javaparser-core:3.27.0' + compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' diff --git a/src/main/java/com/example/statemachinedemo/AFinder.java b/src/main/java/com/example/statemachinedemo/AFinder.java new file mode 100644 index 0000000..418bed2 --- /dev/null +++ b/src/main/java/com/example/statemachinedemo/AFinder.java @@ -0,0 +1,394 @@ +package com.example.statemachinedemo; +import org.eclipse.jdt.core.dom.*; +import java.io.*; +import java.nio.file.*; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static com.example.statemachinedemo.ExportUtils.*; + +public class AFinder { + + private static final String START_DIR = "."; + private static final String EXTENSION = ".java"; + private static final String TARGET_ANNOTATION = "EnableStateMachineFactory"; + private static final String TARGET_SUPERCLASS = "StateMachineConfigurerAdapter"; + private static final String TARGET_METHOD_NAME = "configure"; + private static final String TARGET_METHOD_PARAM = "StateMachineTransitionConfigurer"; + private static final String TARGET_THROWS_EXCEPTION = "Exception"; + + public static void main(String[] args) throws IOException { + List javaFiles = findJavaFiles(Paths.get(START_DIR)); + + for (Path javaFile : javaFiles) { + String content = Files.readString(javaFile); + boolean findAnnotations = false; + if (findAnnotations) { + if (hasClassWithAnnotation(content, TARGET_ANNOTATION)) { + System.out.println("Found annotation in: " + javaFile.toAbsolutePath()); + } + } + boolean printBody = false; + if (printBody) { + if (hasClassWithSuperAndConfigureMethodExactSignature( + content, + TARGET_SUPERCLASS, + TARGET_METHOD_NAME, + TARGET_METHOD_PARAM, + TARGET_THROWS_EXCEPTION)) { + System.out.println("Found class with exact configure signature in: " + javaFile.toAbsolutePath()); + } + String methodBody = getConfigureMethodBodyExactSignature( + content, + TARGET_SUPERCLASS, + TARGET_METHOD_NAME, + TARGET_METHOD_PARAM, + TARGET_THROWS_EXCEPTION); + + if (methodBody != null) { + System.out.println("Method body:\n" + methodBody); + } + } + + + String source = Files.readString(javaFile.toAbsolutePath()); + MethodDeclaration configureMethod = ConfigureMethodFinder.findConfigureMethod(source); + if (configureMethod != null) { + System.out.println("Found configure method!"); + // Now pass configureMethod to your TransitionParser.parseTransitions(configureMethod) + List transitions = TransitionParser.parseTransitions(configureMethod); + for (Transition t : transitions) { + System.out.println(t); + } + // Find start and end states + Set startStates = StateUtils.findStartStates(transitions); + Set endStates = StateUtils.findEndStates(transitions); + System.out.println("Start States: " + startStates); + System.out.println("End States: " + endStates); + + + String s = generatePlantUML(transitions, startStates, endStates, true); + try (PrintWriter out = new PrintWriter("statemachine.2.dot")) { + out.println(s); + } + String s1 = generateDot(transitions, startStates, endStates, true); + try (PrintWriter out = new PrintWriter("statemachine.1.dot")) { + out.println(s1); + } + String s2 = exportToSCXML(transitions, startStates, endStates, true); + try (PrintWriter out = new PrintWriter("statemachine.3.xml")) { + out.println(s2); + } + } +// else { +// System.out.println("No configure method matching criteria found."); +// } + + + } + } + + private static List findJavaFiles(Path startDir) throws IOException { + try (Stream paths = Files.walk(startDir)) { + return paths + .filter(p -> Files.isRegularFile(p) && p.toString().endsWith(EXTENSION)) + .collect(Collectors.toList()); + } + } + + private static boolean hasClassWithAnnotation(String source, String annotationName) { + ASTParser parser = ASTParser.newParser(AST.JLS17); + parser.setSource(source.toCharArray()); + parser.setKind(ASTParser.K_COMPILATION_UNIT); + parser.setResolveBindings(false); + + CompilationUnit cu = (CompilationUnit) parser.createAST(null); + + final boolean[] found = {false}; + + cu.accept(new ASTVisitor() { + @Override + public boolean visit(TypeDeclaration node) { + if (node.isInterface()) return true; + + for (Object modifier : node.modifiers()) { + if (modifier instanceof Annotation) { + Annotation annotation = (Annotation) modifier; + String name = annotation.getTypeName().getFullyQualifiedName(); + if (name.equals(annotationName)) { + found[0] = true; + return false; + } + } + } + return true; + } + }); + + return found[0]; + } + + + private static String getConfigureMethodBodyExactSignature( + String source, + String targetSuperclassName, + String methodName, + String methodParamType, + String throwsExceptionType) { + + ASTParser parser = ASTParser.newParser(AST.JLS17); + parser.setSource(source.toCharArray()); + parser.setKind(ASTParser.K_COMPILATION_UNIT); + parser.setResolveBindings(false); + + CompilationUnit cu = (CompilationUnit) parser.createAST(null); + + final String[] bodyString = {null}; + + cu.accept(new ASTVisitor() { + @Override + public boolean visit(TypeDeclaration node) { + if (node.isInterface()) return true; + + Type superType = node.getSuperclassType(); + if (superType != null) { + String superName = superType.toString(); + if (superName.startsWith(targetSuperclassName)) { + MethodDeclaration[] methods = node.getMethods(); + for (MethodDeclaration method : methods) { + if (!method.getName().getIdentifier().equals(methodName)) { + continue; + } + Type returnType = method.getReturnType2(); + if (returnType == null || !returnType.isPrimitiveType() || + ((PrimitiveType) returnType).getPrimitiveTypeCode() != PrimitiveType.VOID) { + continue; + } + + boolean hasOverride = false; + for (Object mod : method.modifiers()) { + if (mod instanceof Annotation) { + Annotation annotation = (Annotation) mod; + if (annotation.getTypeName().getFullyQualifiedName().equals("Override")) { + hasOverride = true; + break; + } + } + } + if (!hasOverride) continue; + + List parameters = method.parameters(); + if (parameters.size() != 1) continue; + SingleVariableDeclaration param = (SingleVariableDeclaration) parameters.get(0); + String paramTypeName = param.getType().toString(); + if (!paramTypeName.startsWith(methodParamType)) continue; + + @SuppressWarnings("unchecked") + List thrownExceptions = method.thrownExceptionTypes(); + boolean throwsExceptionFound = false; + for (Type excType : thrownExceptions) { + if (excType.toString().equals(throwsExceptionType)) { + throwsExceptionFound = true; + break; + } + } + if (!throwsExceptionFound) continue; + + Block body = method.getBody(); + if (body != null) { + bodyString[0] = body.toString(); + } + return false; + } + } + } + return true; + } + }); + + return bodyString[0]; + } + + private static boolean hasClassWithSuperAndConfigureMethodExactSignature( + String source, + String targetSuperclassName, + String methodName, + String methodParamType, + String throwsExceptionType) { + + ASTParser parser = ASTParser.newParser(AST.JLS17); + parser.setSource(source.toCharArray()); + parser.setKind(ASTParser.K_COMPILATION_UNIT); + parser.setResolveBindings(false); + + CompilationUnit cu = (CompilationUnit) parser.createAST(null); + + final boolean[] found = {false}; + + cu.accept(new ASTVisitor() { + @Override + public boolean visit(TypeDeclaration node) { + if (node.isInterface()) return true; + + Type superType = node.getSuperclassType(); + if (superType != null) { + String superName = superType.toString(); + if (superName.startsWith(targetSuperclassName)) { + MethodDeclaration[] methods = node.getMethods(); + for (MethodDeclaration method : methods) { + // 1) Check method name + if (!method.getName().getIdentifier().equals(methodName)) { + continue; + } + // 2) Check return type is void + Type returnType = method.getReturnType2(); + if (returnType == null || !returnType.isPrimitiveType() || + ((PrimitiveType) returnType).getPrimitiveTypeCode() != PrimitiveType.VOID) { + continue; + } + + // 3) Check @Override annotation present + boolean hasOverride = false; + for (Object mod : method.modifiers()) { + if (mod instanceof Annotation) { + Annotation annotation = (Annotation) mod; + if (annotation.getTypeName().getFullyQualifiedName().equals("Override")) { + hasOverride = true; + break; + } + } + } + if (!hasOverride) continue; + + // 4) Check parameters - exactly 1 parameter of the right type + List parameters = method.parameters(); + if (parameters.size() != 1) continue; + SingleVariableDeclaration param = (SingleVariableDeclaration) parameters.get(0); + String paramTypeName = param.getType().toString(); + if (!paramTypeName.startsWith(methodParamType)) continue; + + // 5) Check throws clause includes Exception + @SuppressWarnings("unchecked") + List thrownExceptions = method.thrownExceptionTypes(); + + boolean throwsExceptionFound = false; + for (Type excType : thrownExceptions) { + String excName = excType.toString(); + if (excName.equals(throwsExceptionType)) { + throwsExceptionFound = true; + break; + } + } + if (!throwsExceptionFound) continue; + + // All conditions met! + found[0] = true; + return false; + } + } + } + return true; + } + }); + + return found[0]; + } +} + +class ConfigureMethodFinder { + + /** + * Parses source code and returns the MethodDeclaration for + * `public void configure(StateMachineTransitionConfigurer transitions) throws Exception` + * in a class extending StateMachineConfigurerAdapter. + * + * @param source Java source code string + * @return MethodDeclaration of configure or null if not found + */ + public static MethodDeclaration findConfigureMethod(String source) { + ASTParser parser = ASTParser.newParser(AST.JLS17); + parser.setSource(source.toCharArray()); + parser.setKind(ASTParser.K_COMPILATION_UNIT); + parser.setResolveBindings(false); + + CompilationUnit cu = (CompilationUnit) parser.createAST(null); + + ConfigureMethodVisitor visitor = new ConfigureMethodVisitor(); + cu.accept(visitor); + + return visitor.getConfigureMethod(); + } + + private static class ConfigureMethodVisitor extends ASTVisitor { + private MethodDeclaration configureMethod = null; + + @Override + public boolean visit(TypeDeclaration node) { + // Check if class extends StateMachineConfigurerAdapter + if (!node.isInterface() && extendsStateMachineConfigurerAdapter(node)) { + // Look for configure method inside this class + for (MethodDeclaration method : node.getMethods()) { + if (isConfigureMethod(method)) { + configureMethod = method; + return false; // Found, stop visiting further + } + } + } + return true; + } + + private boolean extendsStateMachineConfigurerAdapter(TypeDeclaration node) { + Type superclass = node.getSuperclassType(); + if (superclass == null) return false; + + // Superclass can be parameterized type + if (superclass.isParameterizedType()) { + ParameterizedType pt = (ParameterizedType) superclass; + String superName = pt.getType().toString(); + return superName.equals("StateMachineConfigurerAdapter"); + } else { + return superclass.toString().equals("StateMachineConfigurerAdapter"); + } + } + + private boolean isConfigureMethod(MethodDeclaration method) { + if (!method.getName().getIdentifier().equals("configure")) return false; + + // Must be public void + if (!Modifier.isPublic(method.getModifiers())) return false; + if (!(method.getReturnType2() != null && method.getReturnType2().isPrimitiveType())) return false; + if (!"void".equals(method.getReturnType2().toString())) return false; + + // Exactly one parameter of type StateMachineTransitionConfigurer + List params = method.parameters(); + if (params.size() != 1) return false; + + SingleVariableDeclaration param = (SingleVariableDeclaration) params.get(0); + Type paramType = param.getType(); + + String paramTypeStr = paramType.toString(); + + // Since generic params, just check starts with StateMachineTransitionConfigurer + if (!paramTypeStr.startsWith("StateMachineTransitionConfigurer")) return false; + + // Check throws Exception using thrownExceptionTypes() + @SuppressWarnings("unchecked") + List thrownExceptions = method.thrownExceptionTypes(); + boolean throwsExceptionFound = false; + for (Type excType : thrownExceptions) { + if (excType.toString().equals("Exception")) { + throwsExceptionFound = true; + break; + } + } + if (!throwsExceptionFound) return false; + + return true; + } + + public MethodDeclaration getConfigureMethod() { + return configureMethod; + } + } +} \ No newline at end of file diff --git a/src/main/java/com/example/statemachinedemo/ExportUtils.java b/src/main/java/com/example/statemachinedemo/ExportUtils.java new file mode 100644 index 0000000..974c89f --- /dev/null +++ b/src/main/java/com/example/statemachinedemo/ExportUtils.java @@ -0,0 +1,262 @@ +package com.example.statemachinedemo; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class ExportUtils { + + public static String generatePlantUML(List transitions, + Set startStates, + Set endStates, + boolean useLambdaGuards) { + StringBuilder sb = new StringBuilder(); + sb.append("@startuml\n"); + sb.append("skinparam state {\n"); + sb.append(" BackgroundColor<> LightYellow\n"); + sb.append("}\n\n"); + + // 1. Print start states + for (String start : startStates) { + sb.append("[*] --> ").append(simplify(start)).append("\n"); + } + sb.append("\n"); + + // 2. Find all states that have choice transitions originating from them + // We'll reroute those transitions through a separate choice pseudostate. + Set statesWithChoice = new HashSet<>(); + for (Transition t : transitions) { + if ("withChoice".equals(t.type)) { + statesWithChoice.add(simplify(t.sourceState)); + } + } + + // 3. Declare choice pseudostates & connect from original state + for (String state : statesWithChoice) { + String choiceState = state + "_choice"; + sb.append("state ").append(choiceState).append(" <>\n"); + sb.append(state).append(" --> ").append(choiceState).append("\n"); + } + sb.append("\n"); + + Set transitionLines = new HashSet<>(); + + // 4. Output transitions: + for (Transition t : transitions) { + if (t.sourceState == null || t.targetState == null) continue; + + String source = simplify(t.sourceState); + String target = simplify(t.targetState); + + String transitionSource = source; + + // Reroute choice transitions through pseudostate + if ("withChoice".equals(t.type) && statesWithChoice.contains(source)) { + transitionSource = source + "_choice"; + } + + // Prepare guard text + String guardText = ""; + if (t.guard != null && !t.guard.isBlank()) { + guardText = useLambdaGuards ? "lambda" + : t.guard.replaceAll("[\\n\\r]+", " ").replaceAll("\\s{2,}", " ").trim(); + } + + // Build label with event and guard + StringBuilder label = new StringBuilder(); + if (t.event != null && !t.event.isBlank()) { + label.append(simplify(t.event)); + } + if (!guardText.isBlank()) { + label.append(" [").append(guardText).append("]"); + } + + String line = transitionSource + " --> " + target + (label.isEmpty() ? "" : (" : " + label)); + + // Skip duplicates + if (transitionLines.add(line)) { + sb.append(line).append("\n"); + } + } + + sb.append("\n"); + + // 5. Mark end states with transition to [*] + for (String end : endStates) { + sb.append(simplify(end)).append(" --> [*]\n"); + } + + sb.append("@enduml\n"); + return sb.toString(); + } + public static String generateDot(List transitions, + Set startStates, + Set endStates, + boolean useLambdaGuards) { + StringBuilder sb = new StringBuilder(); + sb.append("digraph stateMachine {\n"); + sb.append(" rankdir=LR;\n"); + sb.append(" node [shape=circle, style=filled, fillcolor=lightgray];\n\n"); + + // 1. Fake start node + sb.append(" start [shape=point, label=\"\"];\n"); + + // 2. Find states with choice transitions + Set statesWithChoice = new HashSet<>(); + for (Transition t : transitions) { + if ("withChoice".equals(t.type)) { + statesWithChoice.add(simplify(t.sourceState)); + } + } + + // 3. Declare normal states and choice pseudostates + Set allStates = new HashSet<>(); + for (Transition t : transitions) { + allStates.add(simplify(t.sourceState)); + allStates.add(simplify(t.targetState)); + } + + // Print all normal states (except choice pseudostates for now) + for (String state : allStates) { + if (!statesWithChoice.contains(state + "_choice")) { + String shape = endStates.contains(state) ? "doublecircle" : "circle"; + sb.append(" ").append(state) + .append(" [shape=").append(shape).append(", fillcolor=lightgray];\n"); + } + } + sb.append("\n"); + + // Declare choice pseudostates as diamonds + for (String state : statesWithChoice) { + String choiceNode = state + "_choice"; + sb.append(" ").append(choiceNode) + .append(" [shape=diamond, label=\"\", fillcolor=lightyellow];\n"); + } + sb.append("\n"); + + // 4. Connect start node(s) to start states + for (String start : startStates) { + sb.append(" start -> ").append(simplify(start)).append(";\n"); + } + sb.append("\n"); + + // 5. Connect normal states to their choice pseudostates + for (String state : statesWithChoice) { + String choiceNode = state + "_choice"; + sb.append(" ").append(state).append(" -> ").append(choiceNode).append(";\n"); + } + sb.append("\n"); + + // 6. Transitions: reroute withChoice transitions via choice pseudostate + for (Transition t : transitions) { + if (t.sourceState == null || t.targetState == null) continue; + + String source = simplify(t.sourceState); + String target = simplify(t.targetState); + String edgeSource = source; + + if ("withChoice".equals(t.type) && statesWithChoice.contains(source)) { + edgeSource = source + "_choice"; + } + + String guardText = ""; + if (t.guard != null && !t.guard.isBlank()) { + guardText = useLambdaGuards ? "lambda" + : t.guard.replaceAll("[\\n\\r]+", " ").replaceAll("\\s{2,}", " ").trim(); + } + + StringBuilder label = new StringBuilder(); + if (t.event != null && !t.event.isBlank()) { + label.append(simplify(t.event)); + } + if (!guardText.isBlank()) { + label.append(" [").append(guardText).append("]"); + } + + String edgeLabel = label.length() > 0 ? " [label=\"" + label.toString() + "\"]" : ""; + + sb.append(" ").append(edgeSource).append(" -> ").append(target).append(edgeLabel).append(";\n"); + } + + sb.append("}\n"); + return sb.toString(); + } + + public static String exportToSCXML(List transitions, + Set startStates, + Set endStates, + boolean useLambdaGuards) { + StringBuilder sb = new StringBuilder(); + sb.append("\n"); + sb.append("\n\n"); + + // 1. Collect all states + Set allStates = new HashSet<>(); + for (Transition t : transitions) { + if (t.sourceState != null) allStates.add(t.sourceState); + if (t.targetState != null) allStates.add(t.targetState); + } + + // 2. Output elements with transitions + for (String state : allStates) { + String simpleState = simplify(state); + sb.append(" \n"); + + // If this state is a start state, add and transition to it + if (startStates.contains(state)) { + sb.append(" \n"); + sb.append(" \n"); + sb.append(" \n"); + } + + // Add transitions from this state + for (Transition t : transitions) { + if (state.equals(t.sourceState)) { + String target = simplify(t.targetState); + if (target == null || target.isEmpty()) continue; + + String event = t.event != null ? simplify(t.event) : null; + String guard = t.guard != null && !t.guard.isBlank() + ? (useLambdaGuards ? "lambda" : t.guard.replaceAll("[\\n\\r]+", " ").trim()) + : null; + + sb.append(" \n"); + } + } + sb.append(" \n\n"); + } + + // 3. Add final states (if not already defined as states) + for (String end : endStates) { + String simpleEnd = simplify(end); + if (!allStates.contains(end)) { + sb.append(" \n\n"); + } + } + + sb.append("\n"); + return sb.toString(); + } + + private static String escapeXml(String s) { + if (s == null) return ""; + return s.replace("&", "&") + .replace("<", "<") + .replace(">", ">") + .replace("\"", """) + .replace("'", "'"); + } + + + // Helper: extract last enum part + private static String simplify(String full) { + if (full == null) return ""; + int dot = full.lastIndexOf('.'); + return dot >= 0 ? full.substring(dot + 1) : full; + } + +} diff --git a/src/main/java/com/example/statemachinedemo/StateUtils.java b/src/main/java/com/example/statemachinedemo/StateUtils.java new file mode 100644 index 0000000..9d458b4 --- /dev/null +++ b/src/main/java/com/example/statemachinedemo/StateUtils.java @@ -0,0 +1,52 @@ +package com.example.statemachinedemo; + +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; +public class StateUtils { + + public static Set findStartStates(List transitions) { + Set sources = new HashSet<>(); + Set targets = new HashSet<>(); + + for (Transition t : transitions) { + String source = stripQuotes(t.sourceState); + String target = stripQuotes(t.targetState); + + if (source != null) sources.add(source); + if (target != null && !target.equals(source)) { + targets.add(target); + } + } + + // Start states = sources that are not a target (except self-targets allowed) + sources.removeAll(targets); + return sources; + } + + public static Set findEndStates(List transitions) { + Set targets = new HashSet<>(); + Set sources = new HashSet<>(); + + for (Transition t : transitions) { + String source = stripQuotes(t.sourceState); + String target = stripQuotes(t.targetState); + + if (target != null) targets.add(target); + if (source != null && !source.equals(target)) { + sources.add(source); + } + } + + // End states = targets that are not a source (except self-source allowed) + targets.removeAll(sources); + return targets; + } + + private static String stripQuotes(String s) { + if (s == null) return null; + return s.replaceAll("^\"|\"$", ""); + } +} diff --git a/src/main/java/com/example/statemachinedemo/StatemachinedemoApplication.java b/src/main/java/com/example/statemachinedemo/StatemachinedemoApplication.java index 8ba4326..1690bd1 100644 --- a/src/main/java/com/example/statemachinedemo/StatemachinedemoApplication.java +++ b/src/main/java/com/example/statemachinedemo/StatemachinedemoApplication.java @@ -1,274 +1,11 @@ package com.example.statemachinedemo; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.ApplicationArguments; -import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Configuration; -import org.springframework.statemachine.StateContext; -import org.springframework.statemachine.StateMachine; -import org.springframework.statemachine.config.EnableStateMachineFactory; -import org.springframework.statemachine.config.StateMachineConfigurerAdapter; -import org.springframework.statemachine.config.StateMachineFactory; -import org.springframework.statemachine.config.builders.StateMachineConfigurationConfigurer; -import org.springframework.statemachine.config.builders.StateMachineStateConfigurer; -import org.springframework.statemachine.config.builders.StateMachineTransitionConfigurer; -import org.springframework.statemachine.guard.Guard; -import org.springframework.statemachine.listener.StateMachineListenerAdapter; -import org.springframework.statemachine.state.PseudoStateKind; -import org.springframework.statemachine.state.State; -import org.springframework.statemachine.transition.Transition; -import org.springframework.stereotype.Component; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.PrintWriter; -import java.util.Collection; @SpringBootApplication public class StatemachinedemoApplication { public static void main(String[] args) { SpringApplication.run(StatemachinedemoApplication.class, args); } -} - -enum OrderEvents { - FULFILL, PAY, CANCEL -} - -enum OrderStates { - SUBMITTED, PAID, FULFILLED, CANCELED -// ,PAID2, PAID3 -} - -@Component -@Slf4j -@RequiredArgsConstructor -class Runner implements ApplicationRunner { - private final StateMachineFactory factory; -// -// @Override -// public void run(ApplicationArguments args) throws Exception { -// StateMachine stateMachine = factory.getStateMachine("order"); -// stateMachine.start(); -// log.info("Current state is {}", stateMachine.getState().getId()); -// -// } - private final Config1 c; - private final Config2 c2; - private final Config3 c3; - - @Override - public void run(ApplicationArguments args) throws Exception { - c.a(); - c2.a(); -// c3.exportToSCXML(); - } -} - -class StateMachineDotExporter { - public static void export(StateMachine stateMachine, PrintWriter writer) { - writer.println("digraph stateMachine {"); - - for (State state : stateMachine.getStates()) { - writer.printf(" %s;%n", state.getId()); - } - - for (Transition transition : stateMachine.getTransitions()) { - if (transition.getSource() != null && transition.getTarget() != null) { - writer.printf(" %s -> %s [label=\"%s\"];%n", - transition.getSource().getId(), - transition.getTarget().getId(), - transition.getTrigger() != null ? transition.getTrigger().getEvent() : ""); - } - } - - writer.println("}"); - } -} - -class StateMachinePlantUMLExporter { - - public static void export(StateMachine stateMachine, PrintWriter writer) { - writer.println("@startuml"); - writer.println("[*] --> " + stateMachine.getInitialState().getId()); - - for (Transition transition : stateMachine.getTransitions()) { - if (transition.getSource() != null && transition.getTarget() != null) { - String source = transition.getSource().getId().toString(); - String target = transition.getTarget().getId().toString(); - String event = transition.getTrigger() != null && transition.getTrigger().getEvent() != null - ? transition.getTrigger().getEvent().toString() - : ""; - writer.printf("%s --> %s : %s%n", source, target, event); - } - } - - for (State state : stateMachine.getStates()) { - if (state.getPseudoState() != null && - state.getPseudoState().getKind() == PseudoStateKind.END) { - writer.printf("%s --> [*]%n", state.getId()); - } - } - writer.println("@enduml"); - } -} - -@Component -@RequiredArgsConstructor -class Config1 { - private final StateMachineFactory factory; - public void a() throws FileNotFoundException { - StateMachine stateMachine = factory.getStateMachine("order"); - - StateMachineDotExporter exporter = new StateMachineDotExporter(); - try (PrintWriter out = new PrintWriter("statemachine.dot")) { - StateMachineDotExporter.export(stateMachine, out); - } - } -} - -@Component -@RequiredArgsConstructor -class Config2 { - private final StateMachineFactory factory; - public void a() throws FileNotFoundException { - StateMachine stateMachine = factory.getStateMachine("order"); - - try (PrintWriter out = new PrintWriter("statemachine.uml.dot")) { - StateMachinePlantUMLExporter.export(stateMachine, out); - } - } -} - -@Component -class SCXMLExporter { - - // This method assumes you already have a state machine - public void exportToSCXML(StateMachine stateMachine) throws Exception { - // Create a document to represent the SCXML structure - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - Document doc = builder.newDocument(); - - // Root SCXML element - Element scxmlElement = doc.createElement("scxml"); - scxmlElement.setAttribute("version", "1.0"); - doc.appendChild(scxmlElement); - - // Define the states - Element statesElement = doc.createElement("states"); - scxmlElement.appendChild(statesElement); - - // Iterate over the states of the state machine - Collection> states = stateMachine.getStates(); - for (State state : states) { - Element stateElement = doc.createElement("state"); - stateElement.setAttribute("id", state.getId().toString()); - statesElement.appendChild(stateElement); - } - - // Define the transitions - Element transitionsElement = doc.createElement("transitions"); - scxmlElement.appendChild(transitionsElement); - - Collection> transitions = stateMachine.getTransitions(); - for (Transition transition : transitions) { - Element transitionElement = doc.createElement("transition"); - transitionElement.setAttribute("from", transition.getSource().getId().toString()); - transitionElement.setAttribute("to", transition.getTarget().getId().toString()); - transitionElement.setAttribute("event", String.valueOf(transition.getTrigger())); - transitionsElement.appendChild(transitionElement); - } - - // Write to file - File file = new File("stateMachine.scxml"); - saveDocumentToFile(doc, file); - } - - private void saveDocumentToFile(Document doc, File file) throws Exception { - // Serialize the document to a file (you can use your preferred XML writer) - javax.xml.transform.Transformer transformer = javax.xml.transform.TransformerFactory.newInstance().newTransformer(); - javax.xml.transform.stream.StreamResult result = new javax.xml.transform.stream.StreamResult(file); - javax.xml.transform.dom.DOMSource source = new javax.xml.transform.dom.DOMSource(doc); - transformer.transform(source, result); - } -} -@Component -@RequiredArgsConstructor -class Config3 { - private final StateMachineFactory factory; - public void exportToSCXML() throws Exception { - StateMachine stateMachine = factory.getStateMachine("order"); - - SCXMLExporter exporter = new SCXMLExporter(); - File file = new File("statemachine.scxml"); - exporter.exportToSCXML(stateMachine); - } -} - -@Configuration -@EnableStateMachineFactory -@Slf4j -class SimpleEnumStateMachineConfiguration extends StateMachineConfigurerAdapter { - @Override - public void configure(StateMachineTransitionConfigurer transitions) throws Exception { - transitions - .withExternal().source(OrderStates.SUBMITTED).target(OrderStates.PAID).event(OrderEvents.PAY) - .and() - .withExternal().source(OrderStates.PAID).target(OrderStates.FULFILLED).event(OrderEvents.FULFILL) - .and() - .withExternal().source(OrderStates.SUBMITTED).target(OrderStates.CANCELED).event(OrderEvents.CANCEL).guard(new Guard() { - @Override - public boolean evaluate(StateContext context) { - return false; - } - }) - .and() - .withExternal().source(OrderStates.PAID).target(OrderStates.CANCELED).event(OrderEvents.CANCEL); - -// -// .and() -// .withChoice() -// .source(OrderStates.SUBMITTED) -// .first(OrderStates.PAID2, new Guard() { -// @Override -// public boolean evaluate(StateContext context) { -// return false; -// } -// }) -// .last(OrderStates.PAID3) -// .and().withExternal().source(OrderStates.PAID2).target(OrderStates.CANCELED) -// .and().withExternal().source(OrderStates.PAID3).target(OrderStates.CANCELED); - } - - @Override - public void configure(StateMachineStateConfigurer states) throws Exception { - states.withStates() - .initial(OrderStates.SUBMITTED) - .state(OrderStates.PAID) -// .state(OrderStates.PAID2) -// .state(OrderStates.PAID3) - .end(OrderStates.FULFILLED) - .end(OrderStates.CANCELED); - - } - @Override - public void configure(StateMachineConfigurationConfigurer config) throws Exception { - StateMachineListenerAdapter listenerAdapter = new StateMachineListenerAdapter<>() { - @Override - public void stateChanged(State from, State to) { - log.info("state changed from {} to {}", from, to); - } - }; - config.withConfiguration() - .autoStartup(false) - .listener(listenerAdapter); - } } \ No newline at end of file diff --git a/src/main/java/com/example/statemachinedemo/TransitionParser.java b/src/main/java/com/example/statemachinedemo/TransitionParser.java new file mode 100644 index 0000000..2e7b413 --- /dev/null +++ b/src/main/java/com/example/statemachinedemo/TransitionParser.java @@ -0,0 +1,179 @@ +package com.example.statemachinedemo; + +import lombok.ToString; +import org.eclipse.jdt.core.dom.*; + +import java.util.*; + +/** + * Parses Spring State Machine transitions from configure method AST. + */ +class Transition { + public String type; // withExternal, withChoice, withInternal, etc. + public String sourceState; + public String targetState; + public String event; + public String guard; // simplified string form, could be anonymous class, etc. + + @Override + public String toString() { + return "Transition{" + + "type='" + type + '\'' + + ", sourceState='" + sourceState + '\'' + + ", targetState='" + targetState + '\'' + + ", event='" + event + '\'' + + ", guard='" + guard + '\'' + + '}'; + } +} + +public class TransitionParser { + + + public static List parseTransitions(MethodDeclaration method) { + List transitions = new ArrayList<>(); + + Block body = method.getBody(); + if (body == null) return transitions; + + for (Object stmtObj : body.statements()) { + if (!(stmtObj instanceof ExpressionStatement)) continue; + + ExpressionStatement stmt = (ExpressionStatement) stmtObj; + Expression expr = stmt.getExpression(); + if (!(expr instanceof MethodInvocation)) continue; + + transitions.addAll(parseTransitionsFromExpression((MethodInvocation) expr)); + } + + return transitions; + } + + private static List parseTransitionsFromExpression(MethodInvocation rootCall) { + List transitions = new ArrayList<>(); + + // Step 1: Unroll method chain into ordered list + List calls = new ArrayList<>(); + Expression current = rootCall; + while (current instanceof MethodInvocation) { + MethodInvocation mi = (MethodInvocation) current; + calls.add(0, mi); + current = mi.getExpression(); + } + + // Step 2: Split into segments by .and() + List> segments = new ArrayList<>(); + List currentSegment = new ArrayList<>(); + for (MethodInvocation call : calls) { + if ("and".equals(call.getName().getIdentifier())) { + if (!currentSegment.isEmpty()) { + segments.add(currentSegment); + currentSegment = new ArrayList<>(); + } + } else { + currentSegment.add(call); + } + } + if (!currentSegment.isEmpty()) { + segments.add(currentSegment); + } + + // Step 3: Parse each segment + for (List segment : segments) { + boolean isChoice = segment.stream() + .anyMatch(mi -> "withChoice".equals(mi.getName().getIdentifier())); + + if (isChoice) { + transitions.addAll(parseChoiceTransitions(segment)); + } else { + transitions.add(parseStandardTransition(segment)); + } + } + + return transitions; + } + + private static List parseChoiceTransitions(List segment) { + List choiceTransitions = new ArrayList<>(); + String sourceState = null; + + for (MethodInvocation call : segment) { + String name = call.getName().getIdentifier(); + + if ("source".equals(name) && !call.arguments().isEmpty()) { + sourceState = call.arguments().get(0).toString(); + } + } + + for (MethodInvocation call : segment) { + String name = call.getName().getIdentifier(); + List args = call.arguments(); + + if (name.equals("first") || name.equals("then") || name.equals("last")) { + if (args.isEmpty()) continue; + + Transition t = new Transition(); + t.type = "withChoice"; + t.sourceState = sourceState; + t.targetState = args.get(0).toString(); + t.event = null; + + if (args.size() > 1) { + Expression guardExpr = (Expression) args.get(1); + t.guard = guardExpr.toString(); + } + + choiceTransitions.add(t); + } + } + + return choiceTransitions; + } + private static final Set SUPPORTED_TRANSITION_TYPES = Set.of( + "withExternal", + "withInternal", + "withLocal", + "withFork", + "withJoin", + "withChoice" + ); + + private static Transition parseStandardTransition(List segment) { + Transition t = new Transition(); + + for (MethodInvocation call : segment) { + String name = call.getName().getIdentifier(); + List args = call.arguments(); + + if (SUPPORTED_TRANSITION_TYPES.contains(name)) { + t.type = name; + continue; // Skip the rest of the switch for this iteration + } + + switch (name) { + case "source": + if (!args.isEmpty()) t.sourceState = args.get(0).toString(); + break; + case "target": + if (!args.isEmpty()) t.targetState = args.get(0).toString(); + break; + case "event": + if (!args.isEmpty()) t.event = args.get(0).toString(); + break; + case "guard": + if (!args.isEmpty()) { + Expression guardExpr = (Expression) args.get(0); + t.guard = guardExpr.toString(); + } + break; + } + } + + // Handle self-transition + if (t.sourceState != null && t.targetState == null) { + t.targetState = t.sourceState; + } + + return t; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/statemachinedemo/notgoodspringbased/SpringExporter.java b/src/main/java/com/example/statemachinedemo/notgoodspringbased/SpringExporter.java new file mode 100644 index 0000000..373fccb --- /dev/null +++ b/src/main/java/com/example/statemachinedemo/notgoodspringbased/SpringExporter.java @@ -0,0 +1,222 @@ +package com.example.statemachinedemo.notgoodspringbased; + +import com.example.statemachinedemo.statemachine.OrderEvents; +import com.example.statemachinedemo.statemachine.OrderStates; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.statemachine.StateMachine; +import org.springframework.statemachine.config.StateMachineFactory; +import org.springframework.statemachine.state.PseudoStateKind; +import org.springframework.statemachine.state.State; +import org.springframework.statemachine.transition.Transition; +import org.springframework.stereotype.Component; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintWriter; +import java.util.Collection; + +public class SpringExporter { +} + + +@Component +@Slf4j +@RequiredArgsConstructor +class Runner implements ApplicationRunner { + private final StateMachineFactory factory; + // +// @Override +// public void run(ApplicationArguments args) throws Exception { +// StateMachine stateMachine = factory.getStateMachine("order"); +// stateMachine.start(); +// log.info("Current state is {}", stateMachine.getState().getId()); +// +// } + private final Config1 c; + private final Config2 c2; + private final Config3 c3; + + @Override + public void run(ApplicationArguments args) throws Exception { + c.a(); + c2.a(); +// c3.exportToSCXML(); + } +} + + +class StateMachineDotExporter { + public static void export(StateMachine stateMachine, PrintWriter writer) { + writer.println("digraph stateMachine {"); + + for (State state : stateMachine.getStates()) { + writer.printf(" %s;%n", state.getId()); + } + + for (Transition transition : stateMachine.getTransitions()) { + if (transition.getSource() != null && transition.getTarget() != null) { + writer.printf(" %s -> %s [label=\"%s\"];%n", + transition.getSource().getId(), + transition.getTarget().getId(), + transition.getTrigger() != null ? transition.getTrigger().getEvent() : ""); + } + } + + writer.println("}"); + } +} + + +class StateMachinePlantUMLExporter { + + public static void export(StateMachine stateMachine, PrintWriter writer) { + writer.println("@startuml"); + + // Initial state + writer.println("[*] --> " + stateMachine.getInitialState().getId()); + + for (Transition transition : stateMachine.getTransitions()) { + if (transition.getSource() != null && transition.getTarget() != null) { + String source = transition.getSource().getId().toString(); + String target = transition.getTarget().getId().toString(); + + String label = ""; + + if (transition.getTrigger() != null && transition.getTrigger().getEvent() != null) { + label += transition.getTrigger().getEvent().toString(); + } + + if (transition.getGuard() != null) { + // If event is empty but there’s a guard, still label it meaningfully + if (!label.isEmpty()) { + label += " "; + } + label += "[guard]"; + } + + // If there's no label at all, don't include ":" + if (!label.isEmpty()) { + writer.printf("%s --> %s : %s%n", source, target, label); + } else { + writer.printf("%s --> %s%n", source, target); + } + } + } + + // End states + for (State state : stateMachine.getStates()) { + if (state.getPseudoState() != null && + state.getPseudoState().getKind() == PseudoStateKind.END) { + writer.printf("%s --> [*]%n", state.getId()); + } + } + + writer.println("@enduml"); + } +} + + +@Component +@RequiredArgsConstructor +class Config1 { + private final StateMachineFactory factory; + public void a() throws FileNotFoundException { + StateMachine stateMachine = factory.getStateMachine("order"); + + StateMachineDotExporter exporter = new StateMachineDotExporter(); + try (PrintWriter out = new PrintWriter("statemachine.dot")) { + StateMachineDotExporter.export(stateMachine, out); + } + } +} + +@Component +@RequiredArgsConstructor +class Config2 { + private final StateMachineFactory factory; + public void a() throws FileNotFoundException { + StateMachine stateMachine = factory.getStateMachine("order"); + + try (PrintWriter out = new PrintWriter("statemachine.uml.dot")) { + StateMachinePlantUMLExporter.export(stateMachine, out); + } + } +} +@Component +@RequiredArgsConstructor +class Config3 { + private final StateMachineFactory factory; + public void exportToSCXML() throws Exception { + StateMachine stateMachine = factory.getStateMachine("order"); + + SCXMLExporter exporter = new SCXMLExporter(); + File file = new File("statemachine.scxml"); + exporter.exportToSCXML(stateMachine); + } +} + + +@Component +class SCXMLExporter { + + // This method assumes you already have a state machine + public void exportToSCXML(StateMachine stateMachine) throws Exception { + // Create a document to represent the SCXML structure + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document doc = builder.newDocument(); + + // Root SCXML element + Element scxmlElement = doc.createElement("scxml"); + scxmlElement.setAttribute("version", "1.0"); + doc.appendChild(scxmlElement); + + // Define the states + Element statesElement = doc.createElement("states"); + scxmlElement.appendChild(statesElement); + + // Iterate over the states of the state machine + Collection> states = stateMachine.getStates(); + for (State state : states) { + Element stateElement = doc.createElement("state"); + stateElement.setAttribute("id", state.getId().toString()); + statesElement.appendChild(stateElement); + } + + // Define the transitions + Element transitionsElement = doc.createElement("transitions"); + scxmlElement.appendChild(transitionsElement); + + Collection> transitions = stateMachine.getTransitions(); + for (Transition transition : transitions) { + Element transitionElement = doc.createElement("transition"); + transitionElement.setAttribute("from", transition.getSource().getId().toString()); + transitionElement.setAttribute("to", transition.getTarget().getId().toString()); + transitionElement.setAttribute("event", String.valueOf(transition.getTrigger())); + transitionsElement.appendChild(transitionElement); + } + + // Write to file + File file = new File("stateMachine.scxml"); + saveDocumentToFile(doc, file); + } + + private void saveDocumentToFile(Document doc, File file) throws Exception { + // Serialize the document to a file (you can use your preferred XML writer) + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + StreamResult result = new StreamResult(file); + DOMSource source = new DOMSource(doc); + transformer.transform(source, result); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/statemachinedemo/statemachine/OrderEvents.java b/src/main/java/com/example/statemachinedemo/statemachine/OrderEvents.java new file mode 100644 index 0000000..9cf826b --- /dev/null +++ b/src/main/java/com/example/statemachinedemo/statemachine/OrderEvents.java @@ -0,0 +1,7 @@ +package com.example.statemachinedemo.statemachine; + +public enum OrderEvents { + FULFILL, PAY, CANCEL, + + ABCD, NOPE, IGNORE +} diff --git a/src/main/java/com/example/statemachinedemo/statemachine/OrderStates.java b/src/main/java/com/example/statemachinedemo/statemachine/OrderStates.java new file mode 100644 index 0000000..5d30ed3 --- /dev/null +++ b/src/main/java/com/example/statemachinedemo/statemachine/OrderStates.java @@ -0,0 +1,6 @@ +package com.example.statemachinedemo.statemachine; + +public enum OrderStates { + SUBMITTED, PAID, FULFILLED, CANCELED + ,PAID1,PAID2, PAID3, INVALID, HAPPEN, SKIPPED, NEVER +} \ No newline at end of file diff --git a/src/main/java/com/example/statemachinedemo/statemachine/SimpleEnumStateMachineConfiguration.java b/src/main/java/com/example/statemachinedemo/statemachine/SimpleEnumStateMachineConfiguration.java new file mode 100644 index 0000000..7cc6141 --- /dev/null +++ b/src/main/java/com/example/statemachinedemo/statemachine/SimpleEnumStateMachineConfiguration.java @@ -0,0 +1,96 @@ +package com.example.statemachinedemo.statemachine; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Configuration; +import org.springframework.statemachine.StateContext; +import org.springframework.statemachine.config.EnableStateMachineFactory; +import org.springframework.statemachine.config.StateMachineConfigurerAdapter; +import org.springframework.statemachine.config.builders.StateMachineConfigurationConfigurer; +import org.springframework.statemachine.config.builders.StateMachineStateConfigurer; +import org.springframework.statemachine.config.builders.StateMachineTransitionConfigurer; +import org.springframework.statemachine.guard.Guard; +import org.springframework.statemachine.listener.StateMachineListenerAdapter; +import org.springframework.statemachine.state.State; + +@Configuration +@EnableStateMachineFactory +@Slf4j +class SimpleEnumStateMachineConfiguration extends StateMachineConfigurerAdapter { + @Override + public void configure(StateMachineTransitionConfigurer transitions) throws Exception { + Guard guard1 = null; + transitions + .withExternal().source(OrderStates.SUBMITTED).target(OrderStates.PAID).event(OrderEvents.PAY) + .and() + .withExternal().source(OrderStates.PAID).target(OrderStates.FULFILLED).event(OrderEvents.FULFILL) + .and() + .withExternal().source(OrderStates.SUBMITTED).target(OrderStates.CANCELED).event(OrderEvents.CANCEL).guard(new Guard() { + @Override + public boolean evaluate(StateContext context) { + return false; + } + }) + .and() + .withExternal().source(OrderStates.PAID).target(OrderStates.CANCELED).event(OrderEvents.CANCEL) + + + .and() + .withExternal().source(OrderStates.SUBMITTED).event(OrderEvents.ABCD) + // it needs to have target specified to get added to .transitions collections +// .withExternal().source(OrderStates.SUBMITTED).target(OrderStates.SUBMITTED).event(OrderEvents.ABCD) +// + .and() + .withChoice() + .source(OrderStates.SUBMITTED) + .first(OrderStates.PAID2, new Guard() { + @Override + public boolean evaluate(StateContext context) { + return false; + } + }) + .last(OrderStates.PAID3) + .and() + .withChoice().source(OrderStates.PAID) + .first(OrderStates.PAID1, new Guard() { + @Override + public boolean evaluate(StateContext context) { + return true; + } + }) + .then(OrderStates.PAID2, guard1) + .then(OrderStates.HAPPEN, new Guard() { + @Override + public boolean evaluate(StateContext context) { + return false; + } + }) + .last(OrderStates.PAID3) + .and().withExternal().source(OrderStates.PAID2).target(OrderStates.CANCELED) + .and().withExternal().source(OrderStates.PAID3).target(OrderStates.CANCELED) +// .and().withLocal().source(OrderStates.SUBMITTED).target(OrderStates.CANCELED) + .and().withExternal().source(OrderStates.PAID1).event(OrderEvents.ABCD); + } + + @Override + public void configure(StateMachineStateConfigurer states) throws Exception { + states.withStates() + .initial(OrderStates.SUBMITTED) + .state(OrderStates.PAID) + .state(OrderStates.PAID2) + .state(OrderStates.PAID3) + .end(OrderStates.FULFILLED) + .end(OrderStates.CANCELED); + } + @Override + public void configure(StateMachineConfigurationConfigurer config) throws Exception { + StateMachineListenerAdapter listenerAdapter = new StateMachineListenerAdapter<>() { + @Override + public void stateChanged(State from, State to) { + log.info("state changed from {} to {}", from, to); + } + }; + config.withConfiguration() + .autoStartup(false) + .listener(listenerAdapter); + } +} \ No newline at end of file diff --git a/stateMachine.scxml b/stateMachine.scxml deleted file mode 100644 index b8022bd..0000000 --- a/stateMachine.scxml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/statemachine.1.dot b/statemachine.1.dot new file mode 100644 index 0000000..3a96d98 --- /dev/null +++ b/statemachine.1.dot @@ -0,0 +1,38 @@ +digraph stateMachine { + rankdir=LR; + node [shape=circle, style=filled, fillcolor=lightgray]; + + start [shape=point, label=""]; + FULFILLED [shape=circle, fillcolor=lightgray]; + PAID1 [shape=circle, fillcolor=lightgray]; + PAID3 [shape=circle, fillcolor=lightgray]; + PAID2 [shape=circle, fillcolor=lightgray]; + HAPPEN [shape=circle, fillcolor=lightgray]; + CANCELED [shape=circle, fillcolor=lightgray]; + PAID [shape=circle, fillcolor=lightgray]; + SUBMITTED [shape=circle, fillcolor=lightgray]; + + PAID_choice [shape=diamond, label="", fillcolor=lightyellow]; + SUBMITTED_choice [shape=diamond, label="", fillcolor=lightyellow]; + + start -> SUBMITTED; + + PAID -> PAID_choice; + SUBMITTED -> SUBMITTED_choice; + + SUBMITTED -> PAID [label="PAY"]; + PAID -> FULFILLED [label="FULFILL"]; + SUBMITTED -> CANCELED [label="CANCEL [lambda]"]; + PAID -> CANCELED [label="CANCEL"]; + SUBMITTED -> SUBMITTED [label="ABCD"]; + SUBMITTED_choice -> PAID2 [label=" [lambda]"]; + SUBMITTED_choice -> PAID3; + PAID_choice -> PAID1 [label=" [lambda]"]; + PAID_choice -> PAID2 [label=" [lambda]"]; + PAID_choice -> HAPPEN [label=" [lambda]"]; + PAID_choice -> PAID3; + PAID2 -> CANCELED; + PAID3 -> CANCELED; + PAID1 -> PAID1 [label="ABCD"]; +} + diff --git a/statemachine.2.dot b/statemachine.2.dot new file mode 100644 index 0000000..c0518c9 --- /dev/null +++ b/statemachine.2.dot @@ -0,0 +1,33 @@ +@startuml +skinparam state { + BackgroundColor<> LightYellow +} + +[*] --> SUBMITTED + +state PAID_choice <> +PAID --> PAID_choice +state SUBMITTED_choice <> +SUBMITTED --> SUBMITTED_choice + +SUBMITTED --> PAID : PAY +PAID --> FULFILLED : FULFILL +SUBMITTED --> CANCELED : CANCEL [lambda] +PAID --> CANCELED : CANCEL +SUBMITTED --> SUBMITTED : ABCD +SUBMITTED_choice --> PAID2 : [lambda] +SUBMITTED_choice --> PAID3 +PAID_choice --> PAID1 : [lambda] +PAID_choice --> PAID2 : [lambda] +PAID_choice --> HAPPEN : [lambda] +PAID_choice --> PAID3 +PAID2 --> CANCELED +PAID3 --> CANCELED +PAID1 --> PAID1 : ABCD + +PAID1 --> [*] +CANCELED --> [*] +FULFILLED --> [*] +HAPPEN --> [*] +@enduml + diff --git a/statemachine.2.png b/statemachine.2.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9c97ab16f3e15fcaca09a6e29dfdfa14b02687 GIT binary patch literal 59787 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

p;%yKW^#k6R3A!MPeUy6o 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 literal 0 HcmV?d00001 diff --git a/statemachine.dot b/statemachine.dot deleted file mode 100644 index ccfa158..0000000 --- a/statemachine.dot +++ /dev/null @@ -1,14 +0,0 @@ -digraph stateMachine { - PAID2; - SUBMITTED; - PAID; - PAID3; - CANCELED; - FULFILLED; - SUBMITTED -> PAID [label="PAY"]; - PAID -> FULFILLED [label="FULFILL"]; - SUBMITTED -> CANCELED [label="CANCEL"]; - PAID -> CANCELED [label="CANCEL"]; - PAID2 -> CANCELED [label=""]; - PAID3 -> CANCELED [label=""]; -} diff --git a/statemachine.png b/statemachine.png index dc48df7a911c866df4bf3f26f540c781b138ccd8..910b84e2f8d98a4337f8441f4b95d7bc735cdd98 100644 GIT binary patch literal 110200 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�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 diff --git a/statemachine.uml.dot b/statemachine.uml.dot deleted file mode 100644 index ecd41d4..0000000 --- a/statemachine.uml.dot +++ /dev/null @@ -1,11 +0,0 @@ -@startuml -[*] --> SUBMITTED -SUBMITTED --> PAID : PAY -PAID --> FULFILLED : FULFILL -SUBMITTED --> CANCELED : CANCEL -PAID --> CANCELED : CANCEL -PAID2 --> CANCELED -PAID3 --> CANCELED -CANCELED --> [*] -FULFILLED --> [*] -@enduml diff --git a/statemachine.uml.png b/statemachine.uml.png deleted file mode 100644 index 574191c806c906f68f994ceafac3f26588a3a56e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20544 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 N$*J9YFZ(dy{{k@YEOr0@