You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2022/01/10 13:11:31 UTC
[camel-kamelets] 01/02: Extract Field Action: Add the possibility of setting the header name in case of headerOutput is true
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch ex-field-improvements
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
commit 2c83271793c7689cf80e7d5053cfd0fb80347601
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Jan 10 14:02:14 2022 +0100
Extract Field Action: Add the possibility of setting the header name in case of headerOutput is true
---
kamelets/extract-field-action.kamelet.yaml | 8 ++++++++
.../org/apache/camel/kamelets/utils/transform/ExtractField.java | 8 ++++++--
.../src/main/resources/kamelets/extract-field-action.kamelet.yaml | 8 ++++++++
3 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/kamelets/extract-field-action.kamelet.yaml b/kamelets/extract-field-action.kamelet.yaml
index 416bcb3..f5e2038 100644
--- a/kamelets/extract-field-action.kamelet.yaml
+++ b/kamelets/extract-field-action.kamelet.yaml
@@ -53,6 +53,11 @@ spec:
default: false
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:checkbox'
+ headerOutputName:
+ title: Header Output Name
+ description: A custom name for the header containing the extracted field
+ default: "none"
+ type: string
type: object
dependencies:
- "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
@@ -80,6 +85,9 @@ spec:
- set-property:
name: "headerOutput"
constant: "{{headerOutput}}"
+ - set-property:
+ name: "headerOutputName"
+ constant: "{{headerOutputName}}"
- bean: "org.apache.camel.kamelets.utils.transform.ExtractField"
- choice:
when:
diff --git a/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java
index 36d2416..fcfc675 100644
--- a/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java
+++ b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/ExtractField.java
@@ -27,7 +27,7 @@ import java.util.Map;
public class ExtractField {
- public void process(@ExchangeProperty("field") String field, @ExchangeProperty("headerOutput") boolean headerOutput, Exchange ex) {
+ public void process(@ExchangeProperty("field") String field, @ExchangeProperty("headerOutput") boolean headerOutput, @ExchangeProperty("headerOutputName") String headerOutputName, Exchange ex) {
final String EXTRACTED_FIELD_HEADER = "CamelKameletsExtractFieldName";
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNodeBody = ex.getMessage().getBody(JsonNode.class);
@@ -35,7 +35,11 @@ public class ExtractField {
if (!headerOutput) {
ex.getMessage().setBody(body.get(field));
} else {
- ex.getMessage().setHeader(EXTRACTED_FIELD_HEADER, body.get(field));
+ if ("none".equalsIgnoreCase(headerOutputName)) {
+ ex.getMessage().setHeader(EXTRACTED_FIELD_HEADER, body.get(field));
+ } else {
+ ex.getMessage().setHeader(headerOutputName, body.get(field));
+ }
}
}
diff --git a/library/camel-kamelets/src/main/resources/kamelets/extract-field-action.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/extract-field-action.kamelet.yaml
index 416bcb3..f5e2038 100644
--- a/library/camel-kamelets/src/main/resources/kamelets/extract-field-action.kamelet.yaml
+++ b/library/camel-kamelets/src/main/resources/kamelets/extract-field-action.kamelet.yaml
@@ -53,6 +53,11 @@ spec:
default: false
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:checkbox'
+ headerOutputName:
+ title: Header Output Name
+ description: A custom name for the header containing the extracted field
+ default: "none"
+ type: string
type: object
dependencies:
- "github:apache.camel-kamelets:camel-kamelets-utils:main-SNAPSHOT"
@@ -80,6 +85,9 @@ spec:
- set-property:
name: "headerOutput"
constant: "{{headerOutput}}"
+ - set-property:
+ name: "headerOutputName"
+ constant: "{{headerOutputName}}"
- bean: "org.apache.camel.kamelets.utils.transform.ExtractField"
- choice:
when: