You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cd...@apache.org on 2024/07/17 12:32:27 UTC
(camel) 01/03: chore(camel-yaml-dsl): Support new trait configurations
This is an automated email from the ASF dual-hosted git repository.
cdeppisch pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit f321e768a994573db3ee3fac5b99b387c67afdae
Author: Christoph Deppisch <cd...@redhat.com>
AuthorDate: Wed Jul 17 10:36:39 2024 +0200
chore(camel-yaml-dsl): Support new trait configurations
- Generic configuration node is deprecated in traits (e.g. traits/environment/configuration, traits/camel/configuration)
- Also support new trait configuration layout (e.g. traits/environment/vars, traits/camel/properties)
---
.../camel/dsl/yaml/YamlRoutesBuilderLoader.java | 26 +++++++++++++++++-----
.../camel/dsl/yaml/IntegrationLoaderTest.groovy | 19 +++++++---------
.../KameletBindingLoaderIntegrationSpecTest.groovy | 6 ++---
.../dsl/yaml/PipeLoaderIntegrationSpecTest.groovy | 6 ++---
4 files changed, 32 insertions(+), 25 deletions(-)
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 e31b5f35a10..9bae448eada 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
@@ -422,7 +422,7 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
// if there are trait configuration then include them early
configuration = nodeAt(root, "/traits/camel");
if (configuration != null) {
- var list = preConfigureTraitConfiguration(ctx.getResource(), configuration);
+ var list = preConfigureTraitCamel(ctx.getResource(), configuration);
answer.addAll(list);
}
// if there are trait environment then include them early
@@ -513,10 +513,17 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
return answer;
}
- private List<CamelContextCustomizer> preConfigureTraitConfiguration(Resource resource, Node node) {
+ private List<CamelContextCustomizer> preConfigureTraitCamel(Resource resource, Node node) {
List<CamelContextCustomizer> answer = new ArrayList<>();
- Node target = nodeAt(node, "configuration/properties/");
+ Node target;
+ if (nodeAt(node, "/configuration") != null) {
+ // legacy trait configuration parameters
+ target = nodeAt(node, "/configuration/properties");
+ } else {
+ target = nodeAt(node, "/properties");
+ }
+
final List<String> lines = asStringList(target);
if (lines == null || lines.isEmpty()) {
return answer;
@@ -538,7 +545,7 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
}
lines.forEach(ps::parseConfigurationValue);
} catch (Exception e) {
- throw new RuntimeCamelException("Error adding properties from spec/traits/camel/configuration", e);
+ throw new RuntimeCamelException("Error adding properties from spec/traits/camel", e);
}
}
});
@@ -549,7 +556,14 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
private List<CamelContextCustomizer> preConfigureTraitEnvironment(Resource resource, Node node) {
List<CamelContextCustomizer> answer = new ArrayList<>();
- Node target = nodeAt(node, "configuration/vars/");
+ Node target;
+ if (nodeAt(node, "/configuration") != null) {
+ // legacy trait configuration parameters
+ target = nodeAt(node, "/configuration/vars");
+ } else {
+ target = nodeAt(node, "/vars");
+ }
+
final List<String> lines = asStringList(target);
if (lines == null || lines.isEmpty()) {
return answer;
@@ -571,7 +585,7 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
}
lines.forEach(ps::parseConfigurationValue);
} catch (Exception e) {
- throw new RuntimeCamelException("Error adding properties from spec/traits/environment/configuration", e);
+ throw new RuntimeCamelException("Error adding properties from spec/traits/environment", e);
}
}
});
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/IntegrationLoaderTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/IntegrationLoaderTest.groovy
index ff4ef00521f..d6560894a2f 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/IntegrationLoaderTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/IntegrationLoaderTest.groovy
@@ -64,10 +64,9 @@ class IntegrationLoaderTest extends YamlTestSupport {
spec:
traits:
camel:
- configuration:
- properties:
- - camel.component.seda.queueSize = 456
- - camel.component.seda.default-block-when-full = true
+ properties:
+ - camel.component.seda.queueSize = 456
+ - camel.component.seda.default-block-when-full = true
flows:
- from:
uri: "seda:foo"
@@ -96,14 +95,12 @@ class IntegrationLoaderTest extends YamlTestSupport {
spec:
traits:
camel:
- configuration:
- properties:
- - camel.component.seda.queueSize = 456
- - camel.component.seda.default-block-when-full = true
+ properties:
+ - camel.component.seda.queueSize = 456
+ - camel.component.seda.default-block-when-full = true
environment:
- configuration:
- vars:
- - TEST_MESSAGE = Hello World
+ vars:
+ - TEST_MESSAGE = Hello World
flows:
- from:
uri: "seda:foo"
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderIntegrationSpecTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderIntegrationSpecTest.groovy
index 886060e24ad..9675683884b 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderIntegrationSpecTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletBindingLoaderIntegrationSpecTest.groovy
@@ -48,13 +48,11 @@ class KameletBindingLoaderIntegrationSpecTest extends YamlTestSupport {
- "camel:cloudevents"
traits:
camel:
- configuration:
- properties:
+ properties:
- "foo=howdy"
- "bar=123"
environment:
- configuration:
- vars:
+ vars:
- "MY_ENV=cheese"
source:
ref:
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderIntegrationSpecTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderIntegrationSpecTest.groovy
index 327f43cfbb3..8b0110f0767 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderIntegrationSpecTest.groovy
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderIntegrationSpecTest.groovy
@@ -48,13 +48,11 @@ class PipeLoaderIntegrationSpecTest extends YamlTestSupport {
- "camel:cloudevents"
traits:
camel:
- configuration:
- properties:
+ properties:
- "foo=howdy"
- "bar=123"
environment:
- configuration:
- vars:
+ vars:
- "MY_ENV=cheese"
source:
ref: