This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch pr/CAMEL-24698-source-checks
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 8924c8f0f6c937d8acbcb353afb771ea19461c01
Author: Claus Ibsen <[email protected]>
AuthorDate: Sun Sep 13 15:09:09 2026 +0200

    CAMEL-24698: camel-tooling-model - PojoBeanModel carries interfaceType so 
tools can find beans by the interface they implement
    
    Squash of the 1 commits on fix/CAMEL-24698-bean-interface-type (the 
run-by-run history is on bench/after-run).
    
    camel-tooling-model - PojoBeanModel carries the interfaceType the catalog 
JSON already has
    
    Co-Authored-By: Claude Fable 5.1 <[email protected]>
    Claude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj
---
 .../main/java/org/apache/camel/tooling/model/JsonMapper.java  |  4 ++++
 .../java/org/apache/camel/tooling/model/PojoBeanModel.java    | 11 +++++++++++
 2 files changed, 15 insertions(+)

diff --git 
a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
 
b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
index 721329bc2afc..0a2a1aa7d733 100644
--- 
a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
+++ 
b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
@@ -337,6 +337,7 @@ public final class JsonMapper {
         PojoBeanModel model = new PojoBeanModel();
         parseModel(mobj, model);
         parseArtifact(mobj, model);
+        model.setInterfaceType(mobj.getString("interfaceType"));
         JsonObject mprp = (JsonObject) mobj.get("properties");
         if (mprp != null) {
             for (Map.Entry<String, Object> entry : mprp.entrySet()) {
@@ -378,6 +379,9 @@ public final class JsonMapper {
     public static JsonObject asJsonObject(PojoBeanModel model) {
         JsonObject obj = new JsonObject();
         baseToJson(model, obj);
+        if (model.getInterfaceType() != null) {
+            obj.put("interfaceType", model.getInterfaceType());
+        }
         artifactToJson(model, obj);
         obj.entrySet().removeIf(e -> e.getValue() == null);
         JsonObject wrapper = new JsonObject();
diff --git 
a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/PojoBeanModel.java
 
b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/PojoBeanModel.java
index f5610f6d22fd..36eb4dde29fe 100644
--- 
a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/PojoBeanModel.java
+++ 
b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/PojoBeanModel.java
@@ -21,6 +21,17 @@ import java.util.List;
 
 public class PojoBeanModel extends 
ArtifactModel<PojoBeanModel.PojoBeanOptionModel> {
 
+    private String interfaceType;
+
+    /** The interface the bean implements 
(org.apache.camel.AggregationStrategy), when it is a known Camel interface. */
+    public String getInterfaceType() {
+        return interfaceType;
+    }
+
+    public void setInterfaceType(String interfaceType) {
+        this.interfaceType = interfaceType;
+    }
+
     protected final List<PojoBeanModel.PojoBeanOptionModel> options = new 
ArrayList<>();
 
     public PojoBeanModel() {

Reply via email to