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 2022/08/07 08:42:19 UTC
[camel] 02/02: CAMEL-18328: Polished
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
commit ffc8c01f07efd4e19ec3f7a50b16c3d31143d420
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Aug 7 10:35:00 2022 +0200
CAMEL-18328: Polished
---
.../org/apache/camel/model/RoutesDefinition.java | 24 +++++++++++++---------
.../model/RouteConfigurationOnExceptionTest.java | 3 ---
2 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
index c39cc78e045..1a5b26e0498 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RoutesDefinition.java
@@ -255,25 +255,29 @@ public class RoutesDefinition extends OptionalIdentifiedDefinition<RoutesDefinit
List<RouteConfigurationDefinition> globalConfigurations
= getCamelContext().adapt(ModelCamelContext.class).getRouteConfigurationDefinitions();
if (globalConfigurations != null) {
-
- // if there are multiple ids configured then we should apply in that same order
String[] ids;
if (route.getRouteConfigurationId() != null) {
- // if the RouteConfigurationId was configured with property placeholder it should be resolved
+ // if the RouteConfigurationId was configured with property placeholder it should be resolved first
+ // and include properties sources from the template parameters
if (route.getTemplateParameters() != null && route.getRouteConfigurationId().startsWith("{{")) {
- OrderedLocationProperties locationProperties = new OrderedLocationProperties();
- locationProperties.putAll("TemplateProperties", new HashMap<>(route.getTemplateParameters()));
- camelContext.getPropertiesComponent().setLocalProperties(locationProperties);
- ids = camelContext.adapt(ExtendedCamelContext.class)
- .resolvePropertyPlaceholders(route.getRouteConfigurationId(), true)
- .split(",");
+ OrderedLocationProperties props = new OrderedLocationProperties();
+ props.putAll("TemplateProperties", new HashMap<>(route.getTemplateParameters()));
+ camelContext.getPropertiesComponent().setLocalProperties(props);
+ try {
+ ids = camelContext.adapt(ExtendedCamelContext.class)
+ .resolvePropertyPlaceholders(route.getRouteConfigurationId(), true)
+ .split(",");
+ } finally {
+ camelContext.getPropertiesComponent().setLocalProperties(null);
+ }
} else {
ids = route.getRouteConfigurationId().split(",");
}
} else {
- ids = new String[] { "*" };
+ ids = new String[]{"*"};
}
+ // if there are multiple ids configured then we should apply in that same order
for (String id : ids) {
// sort according to ordered
globalConfigurations.stream().sorted(OrderedComparator.get())
diff --git a/core/camel-core/src/test/java/org/apache/camel/model/RouteConfigurationOnExceptionTest.java b/core/camel-core/src/test/java/org/apache/camel/model/RouteConfigurationOnExceptionTest.java
index 0bcbb0e7bab..03b29874031 100644
--- a/core/camel-core/src/test/java/org/apache/camel/model/RouteConfigurationOnExceptionTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/model/RouteConfigurationOnExceptionTest.java
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.model;
import org.apache.camel.ContextTestSupport;
@@ -88,7 +87,6 @@ public class RouteConfigurationOnExceptionTest extends ContextTestSupport {
@Test
void testRouteTemplateCanSupportRouteConfiguration() throws Exception {
-
getMockEndpoint("mock:result").expectedMessageCount(1);
getMockEndpoint("mock:result").expectedBodiesReceived("Error Received");
template.sendBody("direct:start-template", "foo");
@@ -97,7 +95,6 @@ public class RouteConfigurationOnExceptionTest extends ContextTestSupport {
@Test
void testRouteTemplateCanSupportRouteConfigurationWithParameter() throws Exception {
-
getMockEndpoint("mock:result").expectedMessageCount(1);
getMockEndpoint("mock:result").expectedBodiesReceived("Error Received");
template.sendBody("direct:start-template-parameter", "foo");