luigidemasi opened a new issue, #22: URL: https://github.com/apache/camel-kit/issues/22
> Imported from [luigidemasi/camel-kit#38](https://github.com/luigidemasi/camel-kit/issues/38), opened by [luigidemasi](https://github.com/luigidemasi) on 2026-05-04. > Closed by [luigidemasi/camel-kit#39](https://github.com/luigidemasi/camel-kit/pull/39), merged on 2026-05-04. --- ## Description Enhance the property graph to capture the full behavioral wiring of a project for migration analysis. Three blind spots in the current graph degrade migration quality: 1. **Service wiring is invisible** — `JavaGraphParser` creates `IMPLEMENTS`/`EXTENDS` edges but no `USES_TYPE` edges for field types or constructor parameters. DI annotations (`@Inject`, `@Autowired`, `@Value`, `@ConfigProperty`) are not detected. Running `graph impact` on an interface finds nothing because no edges point from consumers to interfaces. 2. **Properties are flat strings** — `ConfigParser` stores property values as string metadata but doesn't parse `PropertyBindingSupport` syntax (`#class:`, `#bean:`, `#autowired`) that instantiates and wires beans. 3. **No composite migration context** — No single command packages a route's structural context (components, services, properties, artifacts) as structured JSON for the skill to pass to the knowledge layer. ## Proposed Changes - **Enhanced `JavaGraphParser`** — `USES_TYPE` edges for DI-annotated fields/constructor params, bean annotation detection (`@Component`, `@Service`, `@Named`), scope guard allowlist driven by POM artifacts - **New `PropertyBindingParser`** — Parses `CONFIG_PROPERTY` values for `#class:`, `#bean:`, `#autowired`, `#type:`, `#property:` prefixes. Convention-based detection for Spring Boot/Quarkus. Property placeholder resolution. - **Enhanced `CrossLinker`** — Interface-consumer expansion pass creating `DEPENDS_ON_VIA_INTERFACE` edges - **New `GraphQuery.expandWithInterfaces()`** — BFS traversal that crosses interface boundaries - **New `graph migration-context <routeId>` CLI command** — Composite command producing structured JSON - **`InitCommand.detectRuntime()`** — Formal runtime detection (Spring Boot / Quarkus / Camel Main / Karaf) - **Expanded `ConfigParser`** — Capture all `application.properties` keys, not just `camel.*` - **6 new edge types** — `USES_TYPE`, `INJECTS_INTO`, `INSTANTIATES`, `REFERENCES_BEAN`, `REFERENCES_PROPERTY`, `DEPENDS_ON_VIA_INTERFACE` ## Research Inspired by Chinthareddy, [Reliable Graph-RAG for Codebases: AST-Derived Graphs vs LLM-Extracted Knowledge Graphs](https://arxiv.org/pdf/2601.08773) It demonstrates that deterministic AST-derived graphs with bidirectional interface-consumer expansion achieve 43/45 correctness at 2x baseline cost, dramatically outperforming both vector-only RAG (31/45) and LLM-extracted knowledge graphs (38/45 at 46x cost). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
