beans fix more
This commit is contained in:
@@ -683,16 +683,46 @@ public class JdtCallGraphEngine implements CallGraphEngine {
|
|||||||
nameBinding = fa.resolveFieldBinding();
|
nameBinding = fa.resolveFieldBinding();
|
||||||
}
|
}
|
||||||
if (nameBinding instanceof IVariableBinding varBinding) {
|
if (nameBinding instanceof IVariableBinding varBinding) {
|
||||||
|
System.out.println("CALLGRAPH RESOLVING BEAN FOR BINDING: " + varBinding.getName() + " calling " + methodName);
|
||||||
String concreteFqn = injectionAnalyzer.resolveInjectedBeanFqn(varBinding);
|
String concreteFqn = injectionAnalyzer.resolveInjectedBeanFqn(varBinding);
|
||||||
if (concreteFqn != null) {
|
if (concreteFqn != null) {
|
||||||
|
System.out.println(" -> RESOLVED CONCRETE FQN: " + concreteFqn);
|
||||||
return concreteFqn + "." + methodName;
|
return concreteFqn + "." + methodName;
|
||||||
|
} else {
|
||||||
|
System.out.println(" -> RESOLVE FAILED, RETURNED NULL");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
System.out.println("CALLGRAPH NAME BINDING IS NOT VARIABLE: " + nameBinding + " calling " + methodName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ITypeBinding binding = receiver.resolveTypeBinding();
|
ITypeBinding binding = receiver.resolveTypeBinding();
|
||||||
if (binding != null) {
|
if (binding != null) {
|
||||||
return binding.getErasure().getQualifiedName() + "." + methodName;
|
String typeName = null;
|
||||||
|
try {
|
||||||
|
if (binding.getErasure() != null) {
|
||||||
|
typeName = binding.getErasure().getQualifiedName();
|
||||||
|
if (typeName == null || typeName.isEmpty()) {
|
||||||
|
typeName = binding.getErasure().getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// Ignore JDT internal exceptions
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeName == null || typeName.isEmpty()) {
|
||||||
|
typeName = binding.getQualifiedName();
|
||||||
|
if (typeName == null || typeName.isEmpty()) {
|
||||||
|
typeName = binding.getName();
|
||||||
|
}
|
||||||
|
if (typeName != null && typeName.contains("<")) {
|
||||||
|
typeName = typeName.replaceAll("<.*>", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeName != null && !typeName.isEmpty()) {
|
||||||
|
return typeName + "." + methodName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (receiver instanceof ThisExpression) {
|
if (receiver instanceof ThisExpression) {
|
||||||
@@ -832,7 +862,15 @@ public class JdtCallGraphEngine implements CallGraphEngine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isHeuristicMatch(String neighbor, String target) {
|
private boolean isHeuristicMatch(String neighbor, String target) {
|
||||||
|
if (neighbor.equals(target)) return true;
|
||||||
if (target.endsWith("." + neighbor)) return true;
|
if (target.endsWith("." + neighbor)) return true;
|
||||||
|
if (neighbor.endsWith("." + target)) return true;
|
||||||
|
|
||||||
|
// If both are fully qualified (contain a dot) and didn't match above, they are definitely different methods
|
||||||
|
if (neighbor.contains(".") && target.contains(".")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
String simpleTarget = target.contains(".") ? target.substring(target.lastIndexOf('.') + 1) : target;
|
String simpleTarget = target.contains(".") ? target.substring(target.lastIndexOf('.') + 1) : target;
|
||||||
String simpleNeighbor = neighbor.contains(".") ? neighbor.substring(neighbor.lastIndexOf('.') + 1) : neighbor;
|
String simpleNeighbor = neighbor.contains(".") ? neighbor.substring(neighbor.lastIndexOf('.') + 1) : neighbor;
|
||||||
return simpleNeighbor.equals(simpleTarget);
|
return simpleNeighbor.equals(simpleTarget);
|
||||||
|
|||||||
@@ -48,13 +48,23 @@ public class InjectionPointAnalyzer {
|
|||||||
org.eclipse.jdt.core.dom.ITypeBinding declaringClass = binding.getDeclaringClass();
|
org.eclipse.jdt.core.dom.ITypeBinding declaringClass = binding.getDeclaringClass();
|
||||||
if (declaringClass != null) {
|
if (declaringClass != null) {
|
||||||
for (org.eclipse.jdt.core.dom.IMethodBinding method : declaringClass.getDeclaredMethods()) {
|
for (org.eclipse.jdt.core.dom.IMethodBinding method : declaringClass.getDeclaredMethods()) {
|
||||||
if (method.isConstructor()) {
|
boolean isAutowiredMethod = false;
|
||||||
|
for (IAnnotationBinding ann : method.getAnnotations()) {
|
||||||
|
if (ann.getAnnotationType() != null && "org.springframework.beans.factory.annotation.Autowired".equals(ann.getAnnotationType().getQualifiedName())) {
|
||||||
|
isAutowiredMethod = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (method.isConstructor() || isAutowiredMethod) {
|
||||||
for (int i = 0; i < method.getParameterTypes().length; i++) {
|
for (int i = 0; i < method.getParameterTypes().length; i++) {
|
||||||
org.eclipse.jdt.core.dom.ITypeBinding paramType = method.getParameterTypes()[i];
|
org.eclipse.jdt.core.dom.ITypeBinding paramType = method.getParameterTypes()[i];
|
||||||
try {
|
try {
|
||||||
IAnnotationBinding[] paramAnns = method.getParameterAnnotations(i);
|
IAnnotationBinding[] paramAnns = method.getParameterAnnotations(i);
|
||||||
String paramQual = getQualifierValue(paramAnns);
|
String paramQual = getQualifierValue(paramAnns);
|
||||||
if (paramQual != null && paramType.getErasure().isEqualTo(binding.getType().getErasure())) {
|
if (paramQual != null && paramType.getErasure().isEqualTo(binding.getType().getErasure())) {
|
||||||
|
// For setters, verify it roughly matches the field name or just rely on type.
|
||||||
|
// We will rely on type equality for now as a heuristic.
|
||||||
return paramQual;
|
return paramQual;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -23,12 +23,15 @@ public class SpringDependencyResolver {
|
|||||||
if (requiredTypeFqn == null) return new ArrayList<>();
|
if (requiredTypeFqn == null) return new ArrayList<>();
|
||||||
|
|
||||||
// 1. Filter by Type (Exact FQN or Assignable Type)
|
// 1. Filter by Type (Exact FQN or Assignable Type)
|
||||||
|
System.out.println("RESOLVING " + requiredTypeFqn + " qual=" + qualifier + " injectionName=" + injectionName);
|
||||||
List<SpringBean> candidates = registry.getBeans().stream()
|
List<SpringBean> candidates = registry.getBeans().stream()
|
||||||
.filter(bean -> requiredTypeFqn.equals(bean.getTypeFqn()) || bean.getAssignableTypes().contains(requiredTypeFqn))
|
.filter(bean -> requiredTypeFqn.equals(bean.getTypeFqn()) || bean.getAssignableTypes().contains(requiredTypeFqn))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
System.out.println("CANDIDATES AFTER TYPE: " + candidates.stream().map(c -> c.getTypeFqn() + " (primary=" + c.isPrimary() + " names=" + c.getBeanNames() + " qual=" + c.getQualifiers() + ")").collect(Collectors.toList()));
|
||||||
if (candidates.isEmpty() || candidates.size() == 1) {
|
if (candidates.isEmpty() || candidates.size() == 1) {
|
||||||
return candidates;
|
System.out.println("RETURNING: " + candidates.size());
|
||||||
|
return candidates;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Filter by Qualifier (if provided)
|
// 2. Filter by Qualifier (if provided)
|
||||||
@@ -72,12 +75,13 @@ public class SpringDependencyResolver {
|
|||||||
List<SpringBean> orderedCandidates = candidates.stream()
|
List<SpringBean> orderedCandidates = candidates.stream()
|
||||||
.filter(bean -> bean.getOrder() != null && bean.getOrder().equals(minOrder))
|
.filter(bean -> bean.getOrder() != null && bean.getOrder().equals(minOrder))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (orderedCandidates.size() == 1) {
|
if (!orderedCandidates.isEmpty()) {
|
||||||
return orderedCandidates;
|
candidates = orderedCandidates;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return whatever candidates remain (could be ambiguous)
|
// Return whatever candidates remain (could be ambiguous)
|
||||||
|
System.out.println("RETURNING: " + candidates.size());
|
||||||
return candidates;
|
return candidates;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -292,6 +292,15 @@ public class AstTransitionParser {
|
|||||||
// Try same file
|
// Try same file
|
||||||
ASTNode declNode = cu.findDeclaringNode(binding.getKey());
|
ASTNode declNode = cu.findDeclaringNode(binding.getKey());
|
||||||
if (declNode instanceof MethodDeclaration md) {
|
if (declNode instanceof MethodDeclaration md) {
|
||||||
|
if (md.getBody() != null && md.getBody().statements().size() == 1) {
|
||||||
|
Object stmt = md.getBody().statements().get(0);
|
||||||
|
if (stmt instanceof org.eclipse.jdt.core.dom.ReturnStatement rs) {
|
||||||
|
Expression retExpr = rs.getExpression();
|
||||||
|
if (isLambdaOrAnonymous(retExpr)) {
|
||||||
|
return retExpr.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return md.toString();
|
return md.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -238,6 +238,7 @@ public class CodebaseContext {
|
|||||||
public List<String> getImplementations(String interfaceName) {
|
public List<String> getImplementations(String interfaceName) {
|
||||||
Set<String> allImpls = new HashSet<>();
|
Set<String> allImpls = new HashSet<>();
|
||||||
collectImplementations(interfaceName, allImpls, new HashSet<>());
|
collectImplementations(interfaceName, allImpls, new HashSet<>());
|
||||||
|
System.out.println("GET IMPLEMENTATIONS FOR: " + interfaceName + " -> " + allImpls);
|
||||||
return new ArrayList<>(allImpls);
|
return new ArrayList<>(allImpls);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ public class RegressionTest {
|
|||||||
if (scenario.inputPath() == null) System.out.println("inputPath is NULL");
|
if (scenario.inputPath() == null) System.out.println("inputPath is NULL");
|
||||||
if (tempDir == null) System.out.println("tempDir is NULL");
|
if (tempDir == null) System.out.println("tempDir is NULL");
|
||||||
|
|
||||||
exportService.runExporter(scenario.inputPath(), tempDir, List.of("puml", "dot", "scxml", "json"), true, scenario.activeProfiles());
|
exportService.runExporter(scenario.inputPath(), tempDir, List.of("puml", "dot", "scxml", "json"), true, scenario.activeProfiles(), null, null, click.kamil.springstatemachineexporter.exporter.EnumFormat.fn, click.kamil.springstatemachineexporter.exporter.EnumFormat.fn, true);
|
||||||
|
|
||||||
// Find the generated directory (it might be named with FQN)
|
// Find the generated directory (it might be named with FQN)
|
||||||
List<Path> generatedDirs;
|
List<Path> generatedDirs;
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain())
|
assertThat(chains.get(0).getMethodChain())
|
||||||
.containsExactly(
|
.containsExactly(
|
||||||
"click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary",
|
"click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary",
|
||||||
@@ -88,7 +88,7 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain())
|
assertThat(chains.get(0).getMethodChain())
|
||||||
.containsExactly(
|
.containsExactly(
|
||||||
"click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier",
|
"click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier",
|
||||||
@@ -108,7 +108,7 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain())
|
assertThat(chains.get(0).getMethodChain())
|
||||||
.containsExactly(
|
.containsExactly(
|
||||||
"click.kamil.examples.statemachine.extended.web.QuirkController.testNamed",
|
"click.kamil.examples.statemachine.extended.web.QuirkController.testNamed",
|
||||||
@@ -123,16 +123,16 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.methodName("testFallback")
|
.methodName("testFallback")
|
||||||
.build();
|
.build();
|
||||||
TriggerPoint tp = TriggerPoint.builder()
|
TriggerPoint tp = TriggerPoint.builder()
|
||||||
.className("click.kamil.examples.statemachine.extended.service.FallbackQuirkService")
|
.className("click.kamil.examples.statemachine.extended.service.PrimaryQuirkService")
|
||||||
.methodName("doQuirk")
|
.methodName("doQuirk")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain())
|
assertThat(chains.get(0).getMethodChain())
|
||||||
.containsExactly(
|
.containsExactly(
|
||||||
"click.kamil.examples.statemachine.extended.web.QuirkController.testFallback",
|
"click.kamil.examples.statemachine.extended.web.QuirkController.testFallback",
|
||||||
"click.kamil.examples.statemachine.extended.service.FallbackQuirkService.doQuirk"
|
"click.kamil.examples.statemachine.extended.service.PrimaryQuirkService.doQuirk"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain())
|
assertThat(chains.get(0).getMethodChain())
|
||||||
.containsExactly(
|
.containsExactly(
|
||||||
"click.kamil.examples.statemachine.extended.config.BeanParameterTestConfig.myBeanParamTester",
|
"click.kamil.examples.statemachine.extended.config.BeanParameterTestConfig.myBeanParamTester",
|
||||||
@@ -168,7 +168,7 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain())
|
assertThat(chains.get(0).getMethodChain())
|
||||||
.containsExactly(
|
.containsExactly(
|
||||||
"click.kamil.examples.statemachine.extended.web.OrderedTestController.testOrder",
|
"click.kamil.examples.statemachine.extended.web.OrderedTestController.testOrder",
|
||||||
@@ -188,7 +188,7 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain()).contains(
|
assertThat(chains.get(0).getMethodChain()).contains(
|
||||||
"click.kamil.examples.statemachine.extended.web.FieldInjectionController.testField",
|
"click.kamil.examples.statemachine.extended.web.FieldInjectionController.testField",
|
||||||
"click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk"
|
"click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk"
|
||||||
@@ -207,7 +207,7 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain()).contains(
|
assertThat(chains.get(0).getMethodChain()).contains(
|
||||||
"click.kamil.examples.statemachine.extended.web.SetterInjectionController.testSetter",
|
"click.kamil.examples.statemachine.extended.web.SetterInjectionController.testSetter",
|
||||||
"click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk"
|
"click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk"
|
||||||
@@ -226,7 +226,7 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain()).contains(
|
assertThat(chains.get(0).getMethodChain()).contains(
|
||||||
"click.kamil.examples.statemachine.extended.config.AbstractBaseConfig.inheritedBeanTester",
|
"click.kamil.examples.statemachine.extended.config.AbstractBaseConfig.inheritedBeanTester",
|
||||||
"click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk"
|
"click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk"
|
||||||
@@ -276,7 +276,7 @@ class JdtCallGraphEngineIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
List<CallChain> chains = engine.findChains(List.of(ep), List.of(tp));
|
||||||
assertThat(chains).isNotEmpty();
|
System.out.println("CHAINS FOUND: " + chains.size()); assertThat(chains).hasSize(1);
|
||||||
assertThat(chains.get(0).getMethodChain()).contains(
|
assertThat(chains.get(0).getMethodChain()).contains(
|
||||||
"click.kamil.examples.statemachine.extended.web.ConcreteReturnTypeController.testConcrete",
|
"click.kamil.examples.statemachine.extended.web.ConcreteReturnTypeController.testConcrete",
|
||||||
"click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk"
|
"click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk"
|
||||||
|
|||||||
@@ -92,4 +92,129 @@ class SpringDependencyResolverTest {
|
|||||||
assertThat(resolved).hasSize(1);
|
assertThat(resolved).hasSize(1);
|
||||||
assertThat(resolved.get(0).getTypeFqn()).isEqualTo("com.example.ServiceB");
|
assertThat(resolved.get(0).getTypeFqn()).isEqualTo("com.example.ServiceB");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldResolveByOrderWhenOtherFiltersTie() {
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.LowestOrderService")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.order(Integer.MAX_VALUE) // Lowest precedence
|
||||||
|
.build());
|
||||||
|
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.HighestOrderService")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.order(Integer.MIN_VALUE) // Highest precedence
|
||||||
|
.build());
|
||||||
|
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.MiddleOrderService")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.order(0)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
List<SpringBean> resolved = resolver.resolve("com.example.PaymentService", null, "someUnknownName");
|
||||||
|
|
||||||
|
assertThat(resolved).hasSize(1);
|
||||||
|
assertThat(resolved.get(0).getTypeFqn()).isEqualTo("com.example.HighestOrderService");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldResolveByOrderWithCustomValues() {
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.ServiceA")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.order(400)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.ServiceB")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.order(100)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.ServiceC")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.order(2147483647 + 400) // This wraps around in Java due to overflow, but let's test a very large valid value
|
||||||
|
.build());
|
||||||
|
|
||||||
|
List<SpringBean> resolved = resolver.resolve("com.example.PaymentService", null, "someUnknownName");
|
||||||
|
|
||||||
|
assertThat(resolved).hasSize(1);
|
||||||
|
assertThat(resolved.get(0).getTypeFqn()).isEqualTo("com.example.ServiceC");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void primaryShouldOverrideOrder() {
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.PrimaryButLowestOrder")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.isPrimary(true)
|
||||||
|
.order(Integer.MAX_VALUE)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.NotPrimaryButHighestOrder")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.isPrimary(false)
|
||||||
|
.order(Integer.MIN_VALUE)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
List<SpringBean> resolved = resolver.resolve("com.example.PaymentService", null, "someUnknownName");
|
||||||
|
|
||||||
|
assertThat(resolved).hasSize(1);
|
||||||
|
assertThat(resolved.get(0).getTypeFqn()).isEqualTo("com.example.PrimaryButLowestOrder");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void qualifierShouldOverridePrimaryAndOrder() {
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.PrimaryService")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.isPrimary(true)
|
||||||
|
.order(Integer.MIN_VALUE)
|
||||||
|
.qualifiers(Set.of("primary"))
|
||||||
|
.build());
|
||||||
|
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.QualifiedService")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.isPrimary(false)
|
||||||
|
.order(Integer.MAX_VALUE)
|
||||||
|
.qualifiers(Set.of("targetQualifier"))
|
||||||
|
.build());
|
||||||
|
|
||||||
|
List<SpringBean> resolved = resolver.resolve("com.example.PaymentService", "targetQualifier", "someUnknownName");
|
||||||
|
|
||||||
|
assertThat(resolved).hasSize(1);
|
||||||
|
assertThat(resolved.get(0).getTypeFqn()).isEqualTo("com.example.QualifiedService");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldReturnMultipleWhenOrderIsTied() {
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.ServiceA")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.order(10)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.ServiceB")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.order(10)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
registry.addBean(SpringBean.builder()
|
||||||
|
.typeFqn("com.example.ServiceC")
|
||||||
|
.assignableTypes(Set.of("com.example.PaymentService"))
|
||||||
|
.order(20)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
List<SpringBean> resolved = resolver.resolve("com.example.PaymentService", null, "someUnknownName");
|
||||||
|
|
||||||
|
assertThat(resolved).hasSize(2);
|
||||||
|
assertThat(resolved.stream().map(SpringBean::getTypeFqn))
|
||||||
|
.containsExactlyInAnyOrder("com.example.ServiceA", "com.example.ServiceB");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -261,6 +261,56 @@ class AstTransitionParserTest {
|
|||||||
.contains("System.out.println(\"Hello\")");
|
.contains("System.out.println(\"Hello\")");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldExtractInternalLogicForSameFileMethodReturningLambda() {
|
||||||
|
String source = """
|
||||||
|
import org.springframework.statemachine.config.builders.StateMachineTransitionConfigurer;
|
||||||
|
import org.springframework.statemachine.guard.Guard;
|
||||||
|
public class TestClass {
|
||||||
|
public void configure(StateMachineTransitionConfigurer<String, String> transitions) throws Exception {
|
||||||
|
transitions
|
||||||
|
.withExternal()
|
||||||
|
.source("S1")
|
||||||
|
.target("S2")
|
||||||
|
.guard(guardVarEquals("test"));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Guard<String, String> guardVarEquals(String expected) {
|
||||||
|
return context -> {
|
||||||
|
return expected.equals(context.getMessage());
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
MethodDeclaration method = createMethodDeclarationWithBindings(source);
|
||||||
|
|
||||||
|
List<Transition> transitions = AstTransitionParser.parseTransitions(method, context);
|
||||||
|
|
||||||
|
assertThat(transitions).hasSize(1);
|
||||||
|
assertThat(transitions.getFirst().getGuard().internalLogic())
|
||||||
|
.contains("return expected.equals(context.getMessage());")
|
||||||
|
.doesNotContain("protected Guard<String, String> guardVarEquals");
|
||||||
|
}
|
||||||
|
|
||||||
|
private MethodDeclaration createMethodDeclarationWithBindings(String source) {
|
||||||
|
ASTParser parser = ASTParser.newParser(AST.getJLSLatest());
|
||||||
|
parser.setKind(ASTParser.K_COMPILATION_UNIT);
|
||||||
|
parser.setResolveBindings(true);
|
||||||
|
parser.setBindingsRecovery(true);
|
||||||
|
parser.setEnvironment(new String[0], new String[0], null, true);
|
||||||
|
parser.setUnitName("TestClass.java");
|
||||||
|
parser.setSource(source.toCharArray());
|
||||||
|
CompilationUnit cu = (CompilationUnit) parser.createAST(null);
|
||||||
|
if (cu.types().isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
TypeDeclaration typeDecl = (TypeDeclaration) cu.types().getFirst();
|
||||||
|
MethodDeclaration[] methods = typeDecl.getMethods();
|
||||||
|
if (methods.length > 0) {
|
||||||
|
return methods[0];
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
private MethodDeclaration createMethodDeclaration(String source) {
|
private MethodDeclaration createMethodDeclaration(String source) {
|
||||||
ASTParser parser = ASTParser.newParser(AST.getJLSLatest());
|
ASTParser parser = ASTParser.newParser(AST.getJLSLatest());
|
||||||
parser.setKind(ASTParser.K_COMPILATION_UNIT);
|
parser.setKind(ASTParser.K_COMPILATION_UNIT);
|
||||||
|
|||||||
@@ -224,6 +224,17 @@
|
|||||||
"interceptorType" : "Spring MVC Interceptor"
|
"interceptorType" : "Spring MVC Interceptor"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-setter",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.SetterInjectionController",
|
||||||
|
"methodName" : "testSetter",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/SetterInjectionController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-setter",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
}, {
|
}, {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "POST /api/quirk/primary",
|
"name" : "POST /api/quirk/primary",
|
||||||
@@ -268,6 +279,50 @@
|
|||||||
"verb" : "POST"
|
"verb" : "POST"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-order",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.OrderedTestController",
|
||||||
|
"methodName" : "testOrder",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/OrderedTestController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-order",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-concrete",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.ConcreteReturnTypeController",
|
||||||
|
"methodName" : "testConcrete",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/ConcreteReturnTypeController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-concrete",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-field",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.FieldInjectionController",
|
||||||
|
"methodName" : "testField",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/FieldInjectionController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-field",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-list",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.ListInjectionController",
|
||||||
|
"methodName" : "testList",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/ListInjectionController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-list",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
}, {
|
}, {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "GET /api/base/{id}",
|
"name" : "GET /api/base/{id}",
|
||||||
@@ -522,22 +577,22 @@
|
|||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "POST /api/quirk/primary",
|
"name" : "GET /test-setter",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
"className" : "click.kamil.examples.statemachine.extended.web.SetterInjectionController",
|
||||||
"methodName" : "testPrimary",
|
"methodName" : "testSetter",
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/SetterInjectionController.java",
|
||||||
"metadata" : {
|
"metadata" : {
|
||||||
"path" : "/api/quirk/primary",
|
"path" : "/test-setter",
|
||||||
"verb" : "POST"
|
"verb" : "GET"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
},
|
},
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary", "click.kamil.examples.statemachine.extended.service.FallbackQuirkService.doQuirk" ],
|
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.SetterInjectionController.testSetter", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
||||||
"triggerPoint" : {
|
"triggerPoint" : {
|
||||||
"event" : "FALLBACK_EVENT",
|
"event" : "NAMED_EVENT",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.FallbackQuirkService",
|
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
||||||
"methodName" : "doQuirk",
|
"methodName" : "doQuirk",
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/FallbackQuirkService.java",
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/NamedQuirkService.java",
|
||||||
"sourceModule" : null,
|
"sourceModule" : null,
|
||||||
"stateMachineId" : null,
|
"stateMachineId" : null,
|
||||||
"sourceState" : null,
|
"sourceState" : null,
|
||||||
@@ -546,33 +601,6 @@
|
|||||||
},
|
},
|
||||||
"contextMachineId" : null,
|
"contextMachineId" : null,
|
||||||
"matchedTransitions" : null
|
"matchedTransitions" : null
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/primary",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testPrimary",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/primary",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary", "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PROFILED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/ProfiledQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
@@ -600,168 +628,6 @@
|
|||||||
},
|
},
|
||||||
"contextMachineId" : null,
|
"contextMachineId" : null,
|
||||||
"matchedTransitions" : null
|
"matchedTransitions" : null
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/primary",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testPrimary",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/primary",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary", "click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "QUALIFIER_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.QualifierQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/QualifierQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/primary",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testPrimary",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/primary",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "NAMED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/NamedQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/named",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testNamed",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/named",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testNamed", "click.kamil.examples.statemachine.extended.service.FallbackQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "FALLBACK_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.FallbackQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/FallbackQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/named",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testNamed",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/named",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testNamed", "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PROFILED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/ProfiledQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/named",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testNamed",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/named",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testNamed", "click.kamil.examples.statemachine.extended.service.PrimaryQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PRIMARY_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.PrimaryQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/PrimaryQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/named",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testNamed",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/named",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testNamed", "click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "QUALIFIER_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.QualifierQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/QualifierQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
@@ -789,87 +655,6 @@
|
|||||||
},
|
},
|
||||||
"contextMachineId" : null,
|
"contextMachineId" : null,
|
||||||
"matchedTransitions" : null
|
"matchedTransitions" : null
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/qualifier",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testQualifier",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/qualifier",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier", "click.kamil.examples.statemachine.extended.service.FallbackQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "FALLBACK_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.FallbackQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/FallbackQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/qualifier",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testQualifier",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/qualifier",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier", "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PROFILED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/ProfiledQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/qualifier",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testQualifier",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/qualifier",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier", "click.kamil.examples.statemachine.extended.service.PrimaryQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PRIMARY_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.PrimaryQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/PrimaryQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
@@ -897,87 +682,6 @@
|
|||||||
},
|
},
|
||||||
"contextMachineId" : null,
|
"contextMachineId" : null,
|
||||||
"matchedTransitions" : null
|
"matchedTransitions" : null
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/qualifier",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testQualifier",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/qualifier",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "NAMED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/NamedQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/fallback",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testFallback",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/fallback",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testFallback", "click.kamil.examples.statemachine.extended.service.FallbackQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "FALLBACK_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.FallbackQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/FallbackQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/fallback",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testFallback",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/fallback",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testFallback", "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PROFILED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/ProfiledQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
@@ -1008,17 +712,17 @@
|
|||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "POST /api/quirk/fallback",
|
"name" : "GET /test-concrete",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
"className" : "click.kamil.examples.statemachine.extended.web.ConcreteReturnTypeController",
|
||||||
"methodName" : "testFallback",
|
"methodName" : "testConcrete",
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/ConcreteReturnTypeController.java",
|
||||||
"metadata" : {
|
"metadata" : {
|
||||||
"path" : "/api/quirk/fallback",
|
"path" : "/test-concrete",
|
||||||
"verb" : "POST"
|
"verb" : "GET"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
},
|
},
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testFallback", "click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk" ],
|
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.ConcreteReturnTypeController.testConcrete", "click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk" ],
|
||||||
"triggerPoint" : {
|
"triggerPoint" : {
|
||||||
"event" : "QUALIFIER_EVENT",
|
"event" : "QUALIFIER_EVENT",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.QualifierQuirkService",
|
"className" : "click.kamil.examples.statemachine.extended.service.QualifierQuirkService",
|
||||||
@@ -1035,17 +739,17 @@
|
|||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "POST /api/quirk/fallback",
|
"name" : "GET /test-field",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
"className" : "click.kamil.examples.statemachine.extended.web.FieldInjectionController",
|
||||||
"methodName" : "testFallback",
|
"methodName" : "testField",
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/FieldInjectionController.java",
|
||||||
"metadata" : {
|
"metadata" : {
|
||||||
"path" : "/api/quirk/fallback",
|
"path" : "/test-field",
|
||||||
"verb" : "POST"
|
"verb" : "GET"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
},
|
},
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testFallback", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.FieldInjectionController.testField", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
||||||
"triggerPoint" : {
|
"triggerPoint" : {
|
||||||
"event" : "NAMED_EVENT",
|
"event" : "NAMED_EVENT",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
||||||
|
|||||||
@@ -224,6 +224,17 @@
|
|||||||
"interceptorType" : "Spring MVC Interceptor"
|
"interceptorType" : "Spring MVC Interceptor"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-setter",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.SetterInjectionController",
|
||||||
|
"methodName" : "testSetter",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/SetterInjectionController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-setter",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
}, {
|
}, {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "POST /api/quirk/primary",
|
"name" : "POST /api/quirk/primary",
|
||||||
@@ -268,6 +279,50 @@
|
|||||||
"verb" : "POST"
|
"verb" : "POST"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-order",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.OrderedTestController",
|
||||||
|
"methodName" : "testOrder",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/OrderedTestController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-order",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-concrete",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.ConcreteReturnTypeController",
|
||||||
|
"methodName" : "testConcrete",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/ConcreteReturnTypeController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-concrete",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-field",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.FieldInjectionController",
|
||||||
|
"methodName" : "testField",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/FieldInjectionController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-field",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
|
}, {
|
||||||
|
"type" : "REST",
|
||||||
|
"name" : "GET /test-list",
|
||||||
|
"className" : "click.kamil.examples.statemachine.extended.web.ListInjectionController",
|
||||||
|
"methodName" : "testList",
|
||||||
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/ListInjectionController.java",
|
||||||
|
"metadata" : {
|
||||||
|
"path" : "/test-list",
|
||||||
|
"verb" : "GET"
|
||||||
|
},
|
||||||
|
"parameters" : [ ]
|
||||||
}, {
|
}, {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "GET /api/base/{id}",
|
"name" : "GET /api/base/{id}",
|
||||||
@@ -522,22 +577,22 @@
|
|||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "POST /api/quirk/primary",
|
"name" : "GET /test-setter",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
"className" : "click.kamil.examples.statemachine.extended.web.SetterInjectionController",
|
||||||
"methodName" : "testPrimary",
|
"methodName" : "testSetter",
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/SetterInjectionController.java",
|
||||||
"metadata" : {
|
"metadata" : {
|
||||||
"path" : "/api/quirk/primary",
|
"path" : "/test-setter",
|
||||||
"verb" : "POST"
|
"verb" : "GET"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
},
|
},
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary", "click.kamil.examples.statemachine.extended.service.FallbackQuirkService.doQuirk" ],
|
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.SetterInjectionController.testSetter", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
||||||
"triggerPoint" : {
|
"triggerPoint" : {
|
||||||
"event" : "FALLBACK_EVENT",
|
"event" : "NAMED_EVENT",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.FallbackQuirkService",
|
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
||||||
"methodName" : "doQuirk",
|
"methodName" : "doQuirk",
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/FallbackQuirkService.java",
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/NamedQuirkService.java",
|
||||||
"sourceModule" : null,
|
"sourceModule" : null,
|
||||||
"stateMachineId" : null,
|
"stateMachineId" : null,
|
||||||
"sourceState" : null,
|
"sourceState" : null,
|
||||||
@@ -546,33 +601,6 @@
|
|||||||
},
|
},
|
||||||
"contextMachineId" : null,
|
"contextMachineId" : null,
|
||||||
"matchedTransitions" : null
|
"matchedTransitions" : null
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/primary",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testPrimary",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/primary",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary", "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PROFILED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/ProfiledQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
@@ -600,168 +628,6 @@
|
|||||||
},
|
},
|
||||||
"contextMachineId" : null,
|
"contextMachineId" : null,
|
||||||
"matchedTransitions" : null
|
"matchedTransitions" : null
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/primary",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testPrimary",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/primary",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary", "click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "QUALIFIER_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.QualifierQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/QualifierQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/primary",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testPrimary",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/primary",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testPrimary", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "NAMED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/NamedQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/named",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testNamed",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/named",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testNamed", "click.kamil.examples.statemachine.extended.service.FallbackQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "FALLBACK_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.FallbackQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/FallbackQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/named",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testNamed",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/named",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testNamed", "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PROFILED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/ProfiledQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/named",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testNamed",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/named",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testNamed", "click.kamil.examples.statemachine.extended.service.PrimaryQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PRIMARY_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.PrimaryQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/PrimaryQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/named",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testNamed",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/named",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testNamed", "click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "QUALIFIER_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.QualifierQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/QualifierQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
@@ -789,87 +655,6 @@
|
|||||||
},
|
},
|
||||||
"contextMachineId" : null,
|
"contextMachineId" : null,
|
||||||
"matchedTransitions" : null
|
"matchedTransitions" : null
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/qualifier",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testQualifier",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/qualifier",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier", "click.kamil.examples.statemachine.extended.service.FallbackQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "FALLBACK_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.FallbackQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/FallbackQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/qualifier",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testQualifier",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/qualifier",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier", "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PROFILED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/ProfiledQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/qualifier",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testQualifier",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/qualifier",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier", "click.kamil.examples.statemachine.extended.service.PrimaryQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PRIMARY_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.PrimaryQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/PrimaryQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
@@ -897,87 +682,6 @@
|
|||||||
},
|
},
|
||||||
"contextMachineId" : null,
|
"contextMachineId" : null,
|
||||||
"matchedTransitions" : null
|
"matchedTransitions" : null
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/qualifier",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testQualifier",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/qualifier",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testQualifier", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "NAMED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/NamedQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/fallback",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testFallback",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/fallback",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testFallback", "click.kamil.examples.statemachine.extended.service.FallbackQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "FALLBACK_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.FallbackQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/FallbackQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 17,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
|
||||||
"entryPoint" : {
|
|
||||||
"type" : "REST",
|
|
||||||
"name" : "POST /api/quirk/fallback",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
|
||||||
"methodName" : "testFallback",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
|
||||||
"metadata" : {
|
|
||||||
"path" : "/api/quirk/fallback",
|
|
||||||
"verb" : "POST"
|
|
||||||
},
|
|
||||||
"parameters" : [ ]
|
|
||||||
},
|
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testFallback", "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService.doQuirk" ],
|
|
||||||
"triggerPoint" : {
|
|
||||||
"event" : "PROFILED_EVENT",
|
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.ProfiledQuirkService",
|
|
||||||
"methodName" : "doQuirk",
|
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/service/ProfiledQuirkService.java",
|
|
||||||
"sourceModule" : null,
|
|
||||||
"stateMachineId" : null,
|
|
||||||
"sourceState" : null,
|
|
||||||
"lineNumber" : 19,
|
|
||||||
"polymorphicEvents" : null
|
|
||||||
},
|
|
||||||
"contextMachineId" : null,
|
|
||||||
"matchedTransitions" : null
|
|
||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
@@ -1008,17 +712,17 @@
|
|||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "POST /api/quirk/fallback",
|
"name" : "GET /test-concrete",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
"className" : "click.kamil.examples.statemachine.extended.web.ConcreteReturnTypeController",
|
||||||
"methodName" : "testFallback",
|
"methodName" : "testConcrete",
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/ConcreteReturnTypeController.java",
|
||||||
"metadata" : {
|
"metadata" : {
|
||||||
"path" : "/api/quirk/fallback",
|
"path" : "/test-concrete",
|
||||||
"verb" : "POST"
|
"verb" : "GET"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
},
|
},
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testFallback", "click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk" ],
|
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.ConcreteReturnTypeController.testConcrete", "click.kamil.examples.statemachine.extended.service.QualifierQuirkService.doQuirk" ],
|
||||||
"triggerPoint" : {
|
"triggerPoint" : {
|
||||||
"event" : "QUALIFIER_EVENT",
|
"event" : "QUALIFIER_EVENT",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.QualifierQuirkService",
|
"className" : "click.kamil.examples.statemachine.extended.service.QualifierQuirkService",
|
||||||
@@ -1035,17 +739,17 @@
|
|||||||
}, {
|
}, {
|
||||||
"entryPoint" : {
|
"entryPoint" : {
|
||||||
"type" : "REST",
|
"type" : "REST",
|
||||||
"name" : "POST /api/quirk/fallback",
|
"name" : "GET /test-field",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.web.QuirkController",
|
"className" : "click.kamil.examples.statemachine.extended.web.FieldInjectionController",
|
||||||
"methodName" : "testFallback",
|
"methodName" : "testField",
|
||||||
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/QuirkController.java",
|
"sourceFile" : "src/main/java/click/kamil/examples/statemachine/extended/web/FieldInjectionController.java",
|
||||||
"metadata" : {
|
"metadata" : {
|
||||||
"path" : "/api/quirk/fallback",
|
"path" : "/test-field",
|
||||||
"verb" : "POST"
|
"verb" : "GET"
|
||||||
},
|
},
|
||||||
"parameters" : [ ]
|
"parameters" : [ ]
|
||||||
},
|
},
|
||||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.QuirkController.testFallback", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.FieldInjectionController.testField", "click.kamil.examples.statemachine.extended.service.NamedQuirkService.doQuirk" ],
|
||||||
"triggerPoint" : {
|
"triggerPoint" : {
|
||||||
"event" : "NAMED_EVENT",
|
"event" : "NAMED_EVENT",
|
||||||
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
"className" : "click.kamil.examples.statemachine.extended.service.NamedQuirkService",
|
||||||
|
|||||||
Reference in New Issue
Block a user