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

fmariani 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 9bb62435857e CAMEL-23284: Fix Pipe Kamelet properties with 
{{placeholder}} being URL-encoded
9bb62435857e is described below

commit 9bb62435857e71d606b83e211885058f3a07f2c1
Author: Croway <[email protected]>
AuthorDate: Thu Apr 2 14:08:25 2026 +0200

    CAMEL-23284: Fix Pipe Kamelet properties with {{placeholder}} being 
URL-encoded
---
 .../camel/dsl/yaml/YamlRoutesBuilderLoader.java    |  2 ++
 .../apache/camel/dsl/yaml/PipeLoaderTest.groovy    | 36 ++++++++++++++++++++++
 2 files changed, 38 insertions(+)

diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
index 0bf4bb4fa375..898af8440dee 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
@@ -603,6 +603,8 @@ public class YamlRoutesBuilderLoader extends 
YamlRoutesBuilderLoaderSupport {
 
         if (params != null && !params.isEmpty()) {
             String query = URISupport.createQueryString(params);
+            // CAMEL-23284: restore property placeholders that were URL-encoded
+            query = query.replace("%7B%7B", "{{").replace("%7D%7D", "}}");
             uri = uri + "?" + query;
         }
 
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
index 97675a21e285..64c7f6705dc5 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
@@ -787,4 +787,40 @@ class PipeLoaderTest extends YamlTestSupport {
         }
     }
 
+    def "Pipe kamelet property with placeholder should not be URL-encoded"() {
+        setup:
+        context.propertiesComponent.setInitialProperties(['my.message': 'Hello 
Camel'] as Properties)
+
+        when:
+        loadBindings('''
+                apiVersion: camel.apache.org/v1
+                kind: Pipe
+                metadata:
+                  name: placeholder-pipe
+                spec:
+                  source:
+                    ref:
+                      kind: Kamelet
+                      apiVersion: camel.apache.org/v1
+                      name: timer-source
+                    properties:
+                      message: "{{my.message}}"
+                  sink:
+                    ref:
+                      kind: Kamelet
+                      apiVersion: camel.apache.org/v1
+                      name: log-sink
+        ''')
+        then:
+        context.routeDefinitions.size() == 3
+
+        with (context.routeDefinitions[0]) {
+            routeId == 'placeholder-pipe'
+            // CAMEL-23284: verify placeholder is preserved and NOT 
URL-encoded to %7B%7B...%7D%7D
+            input.endpointUri == 'kamelet:timer-source?message={{my.message}}'
+            !input.endpointUri.contains('%7B')
+            !input.endpointUri.contains('%7D')
+        }
+    }
+
 }

Reply via email to