Add --inline-accessors CLI flag, layered dispatcher regression goldens, and accessor index docs.
Expose accessor index toggling through ExportService and picocli, lock in layered_dispatcher_sample exports as golden fixtures, and document the static analysis pipeline in the README. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
13
README.md
13
README.md
@@ -36,3 +36,16 @@ Define sequence of events in `src/main/resources/flows.json`:
|
||||
- `metadata.callChains`: Trace from API call to machine trigger (`sendEvent`).
|
||||
- `transitions.actions[].internalLogic`: Extracted source code/lambdas.
|
||||
- `metadata.properties`: Dictionary of all detected Spring profiles.
|
||||
|
||||
## Static analysis: accessor inlining
|
||||
|
||||
During scan, the exporter builds an **accessor index** of trivial getters, setters, record components, and constant-returning methods. At analysis time, `AccessorResolver` uses this index first (O(1) lookup), then falls back to constructor/field tracing and method-body evaluation.
|
||||
|
||||
This improves resolution of DTO/event chains such as `request.getPayload().getType()` without running Maven or Gradle on the target project.
|
||||
|
||||
```bash
|
||||
# Enabled by default; disable for debugging or A/B comparison
|
||||
./gradlew :state_machine_exporter:run --args="-i ./my-project -o ./out --no-inline-accessors"
|
||||
```
|
||||
|
||||
Pipeline components live under `analysis/pipeline/` (`AccessorResolver`, `ResolutionBudget`, `MethodInvocationUnwrapper`, `FieldInitializerFinder`, `LibraryUnwrapRegistry`).
|
||||
|
||||
Reference in New Issue
Block a user