This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch CAMEL-23610-normalize-yaml-dsl in repository https://gitbox.apache.org/repos/asf/camel-jbang-examples.git
commit b80184eb67c9917210261a8395d37f69a6b062ef Author: Claus Ibsen <[email protected]> AuthorDate: Mon May 25 22:04:01 2026 +0200 CAMEL-23610: Normalize YAML DSL to canonical form Normalize 57 shorthand YAML DSL instances across 8 files: - Shorthand log/to expanded to canonical nested form - Inline simple expressions wrapped with expression wrapper - URI query params extracted to parameters block Co-Authored-By: Claude Opus 4.6 <[email protected]> --- aws/aws-sqs/http-to-aws-sqs.camel.yaml | 4 +- ibm/ibm-cos/ibm-cos-sink.kamelet.yaml | 24 +- ibm/ibm-cos/ibm-cos-source.kamelet.yaml | 3 +- ibm/ibm-cos/kafka-to-ibm-cos.camel.yaml | 4 +- .../text-analysis-api.camel.yaml | 12 +- kubernetes/secrets/news-service.camel.yaml | 4 +- kubernetes/service/news-service.camel.yaml | 4 +- pqc-document-signing/pqc-document-signing.yaml | 295 +++++++++++++-------- 8 files changed, 227 insertions(+), 123 deletions(-) diff --git a/aws/aws-sqs/http-to-aws-sqs.camel.yaml b/aws/aws-sqs/http-to-aws-sqs.camel.yaml index c09e76b..a0998da 100644 --- a/aws/aws-sqs/http-to-aws-sqs.camel.yaml +++ b/aws/aws-sqs/http-to-aws-sqs.camel.yaml @@ -17,7 +17,9 @@ - route: from: - uri: "platform-http:/news?httpMethodRestrict=POST" + uri: platform-http:/news + parameters: + httpMethodRestrict: POST steps: - to: uri: "kamelet:aws-sqs-sink" diff --git a/ibm/ibm-cos/ibm-cos-sink.kamelet.yaml b/ibm/ibm-cos/ibm-cos-sink.kamelet.yaml index bf0918b..3dbc5b6 100644 --- a/ibm/ibm-cos/ibm-cos-sink.kamelet.yaml +++ b/ibm/ibm-cos/ibm-cos-sink.kamelet.yaml @@ -101,25 +101,37 @@ spec: - choice: precondition: true when: - - simple: '${propertiesExist:!keyName}' + - expression: + simple: + expression: '${propertiesExist:!keyName}' steps: - choice: when: - - simple: "${header[file]}" + - expression: + simple: + expression: "${header[file]}" steps: - setHeader: name: CamelIbmCosKey - simple: "${header[file]}" - - simple: "${header[ce-file]}" + expression: + simple: + expression: "${header[file]}" + - expression: + simple: + expression: "${header[ce-file]}" steps: - setHeader: name: CamelIbmCosKey - simple: "${header[ce-file]}" + expression: + simple: + expression: "${header[ce-file]}" otherwise: steps: - setHeader: name: CamelIbmCosKey - simple: "${exchangeId}" + expression: + simple: + expression: "${exchangeId}" - to: uri: "ibm-cos:{{bucketName}}" parameters: diff --git a/ibm/ibm-cos/ibm-cos-source.kamelet.yaml b/ibm/ibm-cos/ibm-cos-source.kamelet.yaml index f70dc34..3aea816 100644 --- a/ibm/ibm-cos/ibm-cos-source.kamelet.yaml +++ b/ibm/ibm-cos/ibm-cos-source.kamelet.yaml @@ -174,4 +174,5 @@ spec: delay: "{{delay}}" maxMessagesPerPoll: "{{maxMessagesPerPoll}}" steps: - - to: "kamelet:sink" + - to: + uri: kamelet:sink diff --git a/ibm/ibm-cos/kafka-to-ibm-cos.camel.yaml b/ibm/ibm-cos/kafka-to-ibm-cos.camel.yaml index 46d0eca..339e143 100644 --- a/ibm/ibm-cos/kafka-to-ibm-cos.camel.yaml +++ b/ibm/ibm-cos/kafka-to-ibm-cos.camel.yaml @@ -26,7 +26,9 @@ steps: - setHeader: name: CamelIbmCosKey - simple: "kafka-${date:now:yyyyMMdd-HHmmss-SSS}.txt" + expression: + simple: + expression: "kafka-${date:now:yyyyMMdd-HHmmss-SSS}.txt" - log: message: "Uploading to IBM COS: ${header.CamelIbmCosKey} with body: ${body}" - to: diff --git a/ibm/ibm-watson-language/text-analysis-api.camel.yaml b/ibm/ibm-watson-language/text-analysis-api.camel.yaml index d1b9284..e072fb5 100644 --- a/ibm/ibm-watson-language/text-analysis-api.camel.yaml +++ b/ibm/ibm-watson-language/text-analysis-api.camel.yaml @@ -18,7 +18,9 @@ - route: id: "analyze-sentiment-api" from: - uri: "platform-http:/analyze/sentiment?httpMethodRestrict=POST" + uri: platform-http:/analyze/sentiment + parameters: + httpMethodRestrict: POST steps: - log: message: "Received text for sentiment analysis: ${body}" @@ -41,7 +43,9 @@ - route: id: "analyze-entities-api" from: - uri: "platform-http:/analyze/entities?httpMethodRestrict=POST" + uri: platform-http:/analyze/entities + parameters: + httpMethodRestrict: POST steps: - log: message: "Received text for entity extraction: ${body}" @@ -64,7 +68,9 @@ - route: id: "analyze-comprehensive-api" from: - uri: "platform-http:/analyze/all?httpMethodRestrict=POST" + uri: platform-http:/analyze/all + parameters: + httpMethodRestrict: POST steps: - log: message: "Received text for comprehensive analysis: ${body}" diff --git a/kubernetes/secrets/news-service.camel.yaml b/kubernetes/secrets/news-service.camel.yaml index 750dbe8..1705c4d 100644 --- a/kubernetes/secrets/news-service.camel.yaml +++ b/kubernetes/secrets/news-service.camel.yaml @@ -17,7 +17,9 @@ - route: from: - uri: "platform-http:/news?httpMethodRestrict=GET" + uri: platform-http:/news + parameters: + httpMethodRestrict: GET steps: - setBody: constant: "{{news.headline}}" diff --git a/kubernetes/service/news-service.camel.yaml b/kubernetes/service/news-service.camel.yaml index f91a5b3..289d0b1 100644 --- a/kubernetes/service/news-service.camel.yaml +++ b/kubernetes/service/news-service.camel.yaml @@ -17,7 +17,9 @@ - route: from: - uri: "platform-http:/news?httpMethodRestrict=GET" + uri: platform-http:/news + parameters: + httpMethodRestrict: GET steps: - setBody: constant: "Hello from Camel" diff --git a/pqc-document-signing/pqc-document-signing.yaml b/pqc-document-signing/pqc-document-signing.yaml index c47813c..d1e680a 100644 --- a/pqc-document-signing/pqc-document-signing.yaml +++ b/pqc-document-signing/pqc-document-signing.yaml @@ -54,11 +54,13 @@ parameters: repeatCount: 1 steps: - - log: "Initializing PQC signing key in Vault..." + - log: + message: "Initializing PQC signing key in Vault..." - bean: ref: keyLifecycleManager method: "generateKeyPair('DILITHIUM', 'document-signing-key')" - - log: "PQC signing key initialized successfully" + - log: + message: "PQC signing key initialized successfully" - script: groovy: | // Register the KeyPair bean @@ -66,17 +68,21 @@ org.apache.camel.component.pqc.lifecycle.HashicorpVaultKeyLifecycleManager.class) def keyPair = keyManager.getKey('document-signing-key') camelContext.registry.bind('signingKey', keyPair) - - to: direct:get-key-metadata + - to: + uri: direct:get-key-metadata - route: id: sign-document-api from: uri: platform-http:/api/sign steps: - - log: "Received document signing request: ${body}" + - log: + message: "Received document signing request: ${body}" - setHeader: name: originalBody - simple: "${body}" + expression: + simple: + expression: "${body}" - toD: "pqc:sign?operation=sign&signatureAlgorithm=DILITHIUM&keyPair=#signingKey" - script: groovy: | @@ -86,30 +92,37 @@ def base64Signature = java.util.Base64.encoder.encodeToString(signature) exchange.message.setHeader('CamelPQCSignature', base64Signature) } - - log: "Document signed with quantum-resistant signature" - - to: direct:update-key-usage - - to: direct:check-key-expiration + - log: + message: "Document signed with quantum-resistant signature" + - to: + uri: direct:update-key-usage + - to: + uri: direct:check-key-expiration - setBody: - simple: | - { - "status": "signed", - "document": "${header.originalBody}", - "signature": "${header.CamelPQCSignature}", - "signatureAlgorithm": "DILITHIUM", - "keyId": "document-signing-key", - "keyMetadata": ${body} - } + expression: + simple: + expression: | + { + "status": "signed", + "document": "${header.originalBody}", + "signature": "${header.CamelPQCSignature}", + "signatureAlgorithm": "DILITHIUM", + "keyId": "document-signing-key", + "keyMetadata": ${body} + } - setHeader: name: Content-Type constant: "application/json" - - log: "Response: ${body}" + - log: + message: "Response: ${body}" - route: id: verify-document-api from: uri: platform-http:/api/verify steps: - - log: "Received document verification request: ${body}" + - log: + message: "Received document verification request: ${body}" - script: groovy: | // Get signature from X-Signature header @@ -120,91 +133,113 @@ def signature = java.util.Base64.decoder.decode(base64Signature) exchange.getIn().setHeader('CamelPQCSignature', signature) exchange.getIn().setHeader('signatureLength', signature.length) - - log: "Verifying signature of length: ${header.signatureLength} bytes" + - log: + message: "Verifying signature of length: ${header.signatureLength} bytes" - doTry: steps: - toD: "pqc:verify?operation=verify&signatureAlgorithm=DILITHIUM&keyPair=#signingKey" - - log: "Verification completed. Result: ${header.CamelPQCVerification}" + - log: + message: "Verification completed. Result: ${header.CamelPQCVerification}" doCatch: - exception: - "java.lang.Exception" steps: - - log: "ERROR during verification: ${exception.message}" + - log: + message: "ERROR during verification: ${exception.message}" - setHeader: name: CamelPQCVerification constant: false - choice: when: - - simple: "${header.CamelPQCVerification} == true" + - expression: + simple: + expression: "${header.CamelPQCVerification} == true" steps: - setBody: - simple: | - { - "status": "verified", - "valid": true, - "message": "Document signature is valid", - "signatureAlgorithm": "DILITHIUM" - } - - simple: "${header.CamelPQCVerification} == false" + expression: + simple: + expression: | + { + "status": "verified", + "valid": true, + "message": "Document signature is valid", + "signatureAlgorithm": "DILITHIUM" + } + - expression: + simple: + expression: "${header.CamelPQCVerification} == false" steps: - setBody: - simple: | - { - "status": "verified", - "valid": false, - "message": "Document signature is invalid", - "signatureAlgorithm": "DILITHIUM" - } + expression: + simple: + expression: | + { + "status": "verified", + "valid": false, + "message": "Document signature is invalid", + "signatureAlgorithm": "DILITHIUM" + } - setHeader: name: Content-Type constant: "application/json" - - log: "Verification result: ${body}" + - log: + message: "Verification result: ${body}" - route: id: get-key-metadata-api from: uri: platform-http:/api/key/metadata steps: - - log: "Fetching key metadata..." - - to: direct:get-key-metadata + - log: + message: "Fetching key metadata..." + - to: + uri: direct:get-key-metadata - route: id: list-keys-api from: uri: platform-http:/api/keys steps: - - log: "Listing all PQC keys..." + - log: + message: "Listing all PQC keys..." - bean: ref: keyLifecycleManager method: "listKeys" - setBody: - simple: | - { - "keys": ${body} - } + expression: + simple: + expression: | + { + "keys": ${body} + } - setHeader: name: Content-Type constant: "application/json" - - log: "Keys listed: ${body}" + - log: + message: "Keys listed: ${body}" - route: id: rotate-key-api from: uri: platform-http:/api/key/rotate steps: - - log: "Rotating signing key..." + - log: + message: "Rotating signing key..." - bean: ref: keyLifecycleManager method: "rotateKey('document-signing-key', 'document-signing-key', 'DILITHIUM')" - - log: "Key rotated successfully: old key deprecated, new key active" + - log: + message: "Key rotated successfully: old key deprecated, new key active" - setBody: - simple: | - { - "status": "rotated", - "oldKey": "document-signing-key", - "newKey": "document-signing-key", - "message": "Key rotation completed successfully" - } + expression: + simple: + expression: | + { + "status": "rotated", + "oldKey": "document-signing-key", + "newKey": "document-signing-key", + "message": "Key rotation completed successfully" + } - setHeader: name: Content-Type constant: "application/json" @@ -216,20 +251,27 @@ parameters: period: "{{key.rotation.check.period}}" steps: - - log: "Checking if key needs rotation..." + - log: + message: "Checking if key needs rotation..." - bean: ref: keyLifecycleManager method: "needsRotation('document-signing-key', 'P{{key.max.age.days}}D', {{key.max.usage.count}})" - choice: when: - - simple: "${body} == true" + - expression: + simple: + expression: "${body} == true" steps: - - log: "WARNING: Key 'document-signing-key' needs rotation!" - - to: direct:get-key-metadata - - log: "Current key metadata: ${body}" + - log: + message: "WARNING: Key 'document-signing-key' needs rotation!" + - to: + uri: direct:get-key-metadata + - log: + message: "Current key metadata: ${body}" otherwise: steps: - - log: "Key rotation not needed yet" + - log: + message: "Key rotation not needed yet" - route: id: update-key-usage @@ -241,7 +283,9 @@ method: "getKeyMetadata('document-signing-key')" - setProperty: name: metadata - simple: "${body}" + expression: + simple: + expression: "${body}" - script: groovy: | // Update last used timestamp and increment usage count @@ -253,7 +297,8 @@ - bean: ref: keyLifecycleManager method: "updateKeyMetadata('document-signing-key', ${body})" - - log: "Key usage updated. Usage count: ${body.usageCount}" + - log: + message: "Key usage updated. Usage count: ${body.usageCount}" - route: id: get-key-metadata-helper @@ -264,24 +309,27 @@ ref: keyLifecycleManager method: "getKeyMetadata('document-signing-key')" - setBody: - simple: | - { - "keyId": "${body.keyId}", - "algorithm": "${body.algorithm}", - "status": "${body.status}", - "createdAt": "${body.createdAt}", - "lastUsedAt": "${body.lastUsedAt}", - "usageCount": ${body.usageCount}, - "ageInDays": ${body.ageInDays}, - "expiresAt": "${body.expiresAt}", - "nextRotationAt": "${body.nextRotationAt}", - "expired": ${body.expired}, - "needsRotation": ${body.needsRotation} - } + expression: + simple: + expression: | + { + "keyId": "${body.keyId}", + "algorithm": "${body.algorithm}", + "status": "${body.status}", + "createdAt": "${body.createdAt}", + "lastUsedAt": "${body.lastUsedAt}", + "usageCount": ${body.usageCount}, + "ageInDays": ${body.ageInDays}, + "expiresAt": "${body.expiresAt}", + "nextRotationAt": "${body.nextRotationAt}", + "expired": ${body.expired}, + "needsRotation": ${body.needsRotation} + } - setHeader: name: Content-Type constant: "application/json" - - log: "Key metadata: ${body}" + - log: + message: "Key metadata: ${body}" - route: id: check-key-expiration @@ -293,61 +341,90 @@ method: "getKeyMetadata('document-signing-key')" - choice: when: - - simple: "${body.usageCount} >= {{key.max.usage.count}}" + - expression: + simple: + expression: "${body.usageCount} >= {{key.max.usage.count}}" steps: - - log: "WARNING: Key has reached maximum usage count (${body.usageCount} >= {{key.max.usage.count}})" + - log: + message: "WARNING: Key has reached maximum usage count (${body.usageCount} >= {{key.max.usage.count}})" - setProperty: name: expirationReason - simple: "usage count (${body.usageCount} uses)" - - to: direct:auto-rotate-key - - simple: "${body.ageInDays} >= {{key.max.age.days}}" + expression: + simple: + expression: "usage count (${body.usageCount} uses)" + - to: + uri: direct:auto-rotate-key + - expression: + simple: + expression: "${body.ageInDays} >= {{key.max.age.days}}" steps: - - log: "WARNING: Key has reached maximum age (${body.ageInDays} >= {{key.max.age.days}} days)" + - log: + message: "WARNING: Key has reached maximum age (${body.ageInDays} >= {{key.max.age.days}} days)" - setProperty: name: expirationReason - simple: "age (${body.ageInDays} days)" - - to: direct:auto-rotate-key + expression: + simple: + expression: "age (${body.ageInDays} days)" + - to: + uri: direct:auto-rotate-key otherwise: steps: - setBody: - simple: "Key is valid (usage: ${body.usageCount}/{{key.max.usage.count}}, age: ${body.ageInDays}/{{key.max.age.days}} days)" + expression: + simple: + expression: "Key is valid (usage: ${body.usageCount}/{{key.max.usage.count}}, age: ${body.ageInDays}/{{key.max.age.days}} days)" - route: id: auto-rotate-key from: uri: direct:auto-rotate-key steps: - - log: ">>> AUTOMATIC KEY ROTATION TRIGGERED <<<" - - log: "Reason: Key expired due to ${exchangeProperty.expirationReason}" + - log: + message: ">>> AUTOMATIC KEY ROTATION TRIGGERED <<<" + - log: + message: "Reason: Key expired due to ${exchangeProperty.expirationReason}" - setProperty: name: timestamp - simple: "${date:now:yyyyMMdd-HHmmss}" + expression: + simple: + expression: "${date:now:yyyyMMdd-HHmmss}" - setProperty: name: newKeyId - simple: "document-signing-key" - - log: "Rotating key from 'document-signing-key' to '${exchangeProperty.newKeyId}'" + expression: + simple: + expression: "document-signing-key" + - log: + message: "Rotating key from 'document-signing-key' to '${exchangeProperty.newKeyId}'" - bean: ref: keyLifecycleManager method: "rotateKey('document-signing-key', '${exchangeProperty.newKeyId}', 'DILITHIUM')" - - log: ">>> KEY ROTATION COMPLETED <<<" - - log: "Old key 'document-signing-key' status: DEPRECATED" - - log: "New key '${exchangeProperty.newKeyId}' status: ACTIVE" + - log: + message: ">>> KEY ROTATION COMPLETED <<<" + - log: + message: "Old key 'document-signing-key' status: DEPRECATED" + - log: + message: "New key '${exchangeProperty.newKeyId}' status: ACTIVE" - setProperty: name: activeKeyId - simple: "${exchangeProperty.newKeyId}" + expression: + simple: + expression: "${exchangeProperty.newKeyId}" - bean: ref: keyLifecycleManager method: "getKeyMetadata('${exchangeProperty.newKeyId}')" - setBody: - simple: | - { - "rotationTriggered": true, - "reason": "${exchangeProperty.expirationReason}", - "oldKey": "document-signing-key", - "oldKeyStatus": "DEPRECATED", - "newKey": "${exchangeProperty.newKeyId}", - "newKeyStatus": "ACTIVE", - "newKeyCreatedAt": "${body.createdAt}", - "message": "Key automatically rotated due to ${exchangeProperty.expirationReason}" - } - - log: "Rotation details: ${body}" + expression: + simple: + expression: | + { + "rotationTriggered": true, + "reason": "${exchangeProperty.expirationReason}", + "oldKey": "document-signing-key", + "oldKeyStatus": "DEPRECATED", + "newKey": "${exchangeProperty.newKeyId}", + "newKeyStatus": "ACTIVE", + "newKeyCreatedAt": "${body.createdAt}", + "message": "Key automatically rotated due to ${exchangeProperty.expirationReason}" + } + - log: + message: "Rotation details: ${body}"
