You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/08/22 05:15:17 UTC

[camel] branch main updated: CAMEL-19771: camel-core-model - TemplatedRoutesDefinition should be resource

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

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 6931bdc845c CAMEL-19771: camel-core-model - TemplatedRoutesDefinition should be resource
6931bdc845c is described below

commit 6931bdc845c6d3e936ac9dd626fc15255a415b86
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Aug 22 07:14:27 2023 +0200

    CAMEL-19771: camel-core-model - TemplatedRoutesDefinition should be resource
---
 .../camel/model/TemplatedRouteDefinition.java      | 16 +++++++++-
 .../camel/model/TemplatedRoutesDefinition.java     | 37 +++++++++++++++++++---
 .../model/cloud/ServiceCallConfiguration.java      |  1 +
 .../camel/dsl/xml/io/XmlRoutesBuilderLoader.java   | 10 ++++++
 4 files changed, 59 insertions(+), 5 deletions(-)

diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteDefinition.java
index a2ffa03b035..6d1b728e9cd 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRouteDefinition.java
@@ -33,6 +33,8 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.RouteTemplateContext;
 import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.Resource;
+import org.apache.camel.spi.ResourceAware;
 
 /**
  * Defines a templated route (a route built from a route template)
@@ -41,10 +43,12 @@ import org.apache.camel.spi.Metadata;
 @XmlRootElement(name = "templatedRoute")
 @XmlType(propOrder = { "parameters", "beans" })
 @XmlAccessorType(XmlAccessType.FIELD)
-public class TemplatedRouteDefinition implements CamelContextAware {
+public class TemplatedRouteDefinition implements CamelContextAware, ResourceAware {
 
     @XmlTransient
     private CamelContext camelContext;
+    @XmlTransient
+    private Resource resource;
 
     @XmlAttribute(required = true)
     private String routeTemplateRef;
@@ -109,6 +113,16 @@ public class TemplatedRouteDefinition implements CamelContextAware {
         this.camelContext = camelContext;
     }
 
+    @Override
+    public Resource getResource() {
+        return resource;
+    }
+
+    @Override
+    public void setResource(Resource resource) {
+        this.resource = resource;
+    }
+
     // Fluent API
     // -------------------------------------------------------------------------
 
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRoutesDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRoutesDefinition.java
index fb46f697fbd..4e266e2d4cd 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRoutesDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/TemplatedRoutesDefinition.java
@@ -28,6 +28,8 @@ import jakarta.xml.bind.annotation.XmlTransient;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.Resource;
+import org.apache.camel.spi.ResourceAware;
 
 /**
  * A series of templated routes
@@ -36,10 +38,12 @@ import org.apache.camel.spi.Metadata;
 @XmlRootElement(name = "templatedRoutes")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class TemplatedRoutesDefinition extends OptionalIdentifiedDefinition<TemplatedRoutesDefinition>
-        implements TemplatedRouteContainer, CamelContextAware {
+        implements TemplatedRouteContainer, CamelContextAware, ResourceAware {
 
     @XmlTransient
     private CamelContext camelContext;
+    @XmlTransient
+    private Resource resource;
 
     @XmlElementRef
     private List<TemplatedRouteDefinition> templatedRoutes = new ArrayList<>();
@@ -47,6 +51,16 @@ public class TemplatedRoutesDefinition extends OptionalIdentifiedDefinition<Temp
     public TemplatedRoutesDefinition() {
     }
 
+    @Override
+    public Resource getResource() {
+        return resource;
+    }
+
+    @Override
+    public void setResource(Resource resource) {
+        this.resource = resource;
+    }
+
     @Override
     public String toString() {
         return "TemplatedRoutes: " + templatedRoutes;
@@ -97,9 +111,9 @@ public class TemplatedRoutesDefinition extends OptionalIdentifiedDefinition<Temp
      * @param routeTemplateId the id of the route template
      */
     public TemplatedRouteDefinition templatedRoute(String routeTemplateId) {
-        TemplatedRouteDefinition templatedRoute = new TemplatedRouteDefinition();
-        templatedRoute.routeTemplateRef(routeTemplateId);
-        return templatedRoute(templatedRoute);
+        TemplatedRouteDefinition template = createTemplatedRouteDefinition(routeTemplateId);
+        getTemplatedRoutes().add(template);
+        return template;
     }
 
     /**
@@ -110,4 +124,19 @@ public class TemplatedRoutesDefinition extends OptionalIdentifiedDefinition<Temp
         return template;
     }
 
+    // Implementation methods
+    // -------------------------------------------------------------------------
+
+    protected TemplatedRouteDefinition createTemplatedRouteDefinition(String id) {
+        TemplatedRouteDefinition templatedRoute = new TemplatedRouteDefinition();
+        if (id != null) {
+            templatedRoute.setRouteTemplateRef(id);
+        }
+        if (resource != null) {
+            templatedRoute.setResource(resource);
+        }
+        CamelContextAware.trySetCamelContext(templatedRoute, camelContext);
+        return templatedRoute;
+    }
+
 }
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
index fa44e2aa88e..c2c18c5b622 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
@@ -41,6 +41,7 @@ import org.apache.camel.support.PluginHelper;
 @XmlType(name = "serviceCallConfiguration")
 @XmlAccessorType(XmlAccessType.FIELD)
 @Configurer
+@Deprecated
 public abstract class ServiceCallConfiguration extends IdentifiedType {
     @XmlElement(name = "properties")
     @Metadata(label = "advanced")
diff --git a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
index 8350f5de846..956d98512a0 100644
--- a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
+++ b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
@@ -181,41 +181,51 @@ public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport {
                 // decides to do so)
 
                 app.getRests().forEach(r -> {
+                    r.setResource(getResource());
                     List<RestDefinition> list = new ArrayList<>();
                     list.add(r);
                     RestsDefinition def = new RestsDefinition();
+                    def.setResource(getResource());
                     def.setRests(list);
                     setRestCollection(def);
                 });
 
                 app.getRouteConfigurations().forEach(rc -> {
+                    rc.setResource(getResource());
                     List<RouteConfigurationDefinition> list = new ArrayList<>();
                     list.add(rc);
                     RouteConfigurationsDefinition def = new RouteConfigurationsDefinition();
+                    def.setResource(getResource());
                     def.setRouteConfigurations(list);
                     addConfigurations(def);
                 });
 
                 app.getRouteTemplates().forEach(rt -> {
+                    rt.setResource(getResource());
                     List<RouteTemplateDefinition> list = new ArrayList<>();
                     list.add(rt);
                     RouteTemplatesDefinition def = new RouteTemplatesDefinition();
+                    def.setResource(getResource());
                     def.setRouteTemplates(list);
                     setRouteTemplateCollection(def);
                 });
 
                 app.getTemplatedRoutes().forEach(tr -> {
+                    tr.setResource(getResource());
                     List<TemplatedRouteDefinition> list = new ArrayList<>();
                     list.add(tr);
                     TemplatedRoutesDefinition def = new TemplatedRoutesDefinition();
+                    def.setResource(getResource());
                     def.setTemplatedRoutes(list);
                     setTemplatedRouteCollection(def);
                 });
 
                 app.getRoutes().forEach(r -> {
+                    r.setResource(getResource());
                     List<RouteDefinition> list = new ArrayList<>();
                     list.add(r);
                     RoutesDefinition def = new RoutesDefinition();
+                    def.setResource(getResource());
                     def.setRoutes(list);
                     addRoutes(def);
                 });