enrichment schema
This commit is contained in:
35
plan-extended-anaylis-v1/PLAN.md
Normal file
35
plan-extended-anaylis-v1/PLAN.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Execution Plan for Extended Analysis
|
||||
|
||||
## Phase 1: Foundation (Current Topic)
|
||||
- [ ] Define the `TriggerPoint` and `TriggerContext` models.
|
||||
- [ ] Implement `TriggerDetector` interface.
|
||||
- [ ] Create `TriggerAggregator` to coordinate multiple detectors.
|
||||
|
||||
## Phase 2: Direct Trigger Detection
|
||||
- [ ] Implement `GenericEventDetector` using `ASTVisitor` to find `sendEvent` calls.
|
||||
- [ ] Enhance `CodebaseContext` to provide mapping from `MethodDeclaration` to its callers (within the same codebase).
|
||||
|
||||
## Phase 3: Entry Point Mapping
|
||||
- [ ] Implement `SpringMvcDetector` for REST endpoints.
|
||||
- [ ] Implement `MessageListenerDetector` for Kafka/JMS.
|
||||
- [ ] Implement `ConfigurableTriggerDetector` for user-defined patterns.
|
||||
|
||||
## Phase 4: Call Graph Integration
|
||||
- [ ] Develop a simple call graph builder to link `Entry Points` to `Trigger Points` via intermediate service calls.
|
||||
- [ ] Support inheritance in call graph resolution (e.g., calling a method defined in an interface/base class).
|
||||
|
||||
## Phase 5: Correlation and Visualization
|
||||
- [ ] Update `ExportService` to include trigger information.
|
||||
- [ ] Update DOT exporter to show "external" entry points as boxes pointing to transitions.
|
||||
- [ ] Update SCXML exporter to include trigger metadata in `<transition>` tags.
|
||||
|
||||
## Phase 6: Validation
|
||||
- [ ] Create a "Complex Sample Project" with REST controllers, services, and multiple state machines.
|
||||
- [ ] Add unit tests for each detector and the aggregator.
|
||||
- [ ] Verify that inheritance in both state machine config and controllers is correctly handled.
|
||||
|
||||
## Phase 7: Advanced Value Resolution
|
||||
- [ ] Implement `PropertyResolver` to scan `application.properties/yml`.
|
||||
- [ ] Add support for `@Value` tracking in fields and constructors.
|
||||
- [ ] Implement constant resolution for cross-class references in annotations.
|
||||
- [ ] Integrate value propagation into the call graph analysis (linking injected values to `sendEvent` arguments).
|
||||
Reference in New Issue
Block a user