feat(02-01): extend ingestion to populate Phase 2 columns with integration tests

- Refactored flattenProcessors to flattenWithMetadata (FlatProcessor record with depth/parentIndex)
- INSERT now populates 12 new columns: exchange_bodies, exchange_headers, processor_depths,
  processor_parent_indexes, processor_error_messages, processor_error_stacktraces,
  processor_input_bodies, processor_output_bodies, processor_input_headers,
  processor_output_headers, processor_diagram_node_ids, diagram_content_hash
- Exchange bodies/headers concatenated from all processor snapshots + route-level snapshots
- Null ExchangeSnapshot handled gracefully (empty string defaults)
- Headers serialized to JSON via Jackson ObjectMapper
- IngestionSchemaIT verifies 3-level tree metadata, body concatenation, null snapshot handling
- DiagramRenderer/DiagramLayout stubs created to fix pre-existing compilation error (Rule 3)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-03-11 16:15:41 +01:00
parent c0922430c4
commit f6ff279a60
3 changed files with 192 additions and 92 deletions

View File

@@ -0,0 +1,11 @@
# Deferred Items - Phase 02
## Pre-existing Issues
### ElkDiagramRendererTest breaks Spring context when run in full suite
- **Found during:** 02-01, Task 2
- **Issue:** When `ElkDiagramRendererTest` runs before Spring Boot integration tests in the same Surefire JVM, ELK's static initialization fails with `NoClassDefFoundError: org/eclipse/xtext/xbase/lib/CollectionLiterals`, which then prevents the Spring context from creating the `diagramRenderer` bean for all subsequent integration tests.
- **Impact:** Full `mvn test` for the app module shows 30 errors (all integration tests fail after ElkDiagramRendererTest runs)
- **Tests pass individually and in any grouping that excludes ElkDiagramRendererTest**
- **Root cause:** ELK 0.11.0's service loader initializes `LayeredMetaDataProvider` which uses xtext's `CollectionLiterals` in a static initializer. The class is present on the classpath (dependency resolves correctly) but fails in the Surefire fork's classloading order when combined with Spring Boot's fat classloader.
- **Suggested fix:** Configure Surefire to fork per test class, or defer ElkDiagramRendererTest to its own module/phase.