Thomas Cunningham created CAMEL-23550:
-----------------------------------------

             Summary: AbstractReifier Local Bean Repository Lookup
                 Key: CAMEL-23550
                 URL: https://issues.apache.org/jira/browse/CAMEL-23550
             Project: Camel
          Issue Type: Bug
          Components: camel-core, camel-kamelet
            Reporter: Thomas Cunningham


When Kamelet templates define beans in their `beans:` section, those beans are 
registered in the RouteTemplateContext's **local bean repository** for proper 
scoping and isolation. However, when the route references these beans (e.g., 
`schemaResolver: "#bean:\{{schemaResolver}}"`), the AbstractReifier only checks 
the global registry and fails to find them.

The best reproducer is the actual integration test from camel-kamelets:

```bash
cd /Users/tcunning/src/community/camel-kamelets
mvn test -Dtest=ProtobufIT
```

This uses real Kamelets (protobuf-deserialize-action, 
protobuf-serialize-action) that define and reference beans.

## The Core Problem

### Current Lookup Order (BROKEN)
1. EndpointHelper.resolveReferenceParameter
2. Global registry
3. ❌ Missing: RouteTemplateContext local bean repository

### Fixed Lookup Order
1. EndpointHelper.resolveReferenceParameter
2. ✅ RouteTemplateContext local bean repository (NEW)
3. Global registry (fallback)
 
## Why This Matters

Many Kamelets in the catalog are affected:
- ✅ protobuf-deserialize-action (defines schemaResolver bean)
- ✅ protobuf-serialize-action (defines schemaResolver bean)
- ✅ avro-deserialize-action (defines schemaResolver bean)
- ✅ avro-serialize-action (defines schemaResolver bean)
- ✅ data-type-action (defines dataTypeProcessor bean)
- Any Kamelet using the `beans:` template section

Without this fix, these Kamelets throw `NoSuchBeanException` when trying to 
reference their own beans.
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to