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-spring-boot.git
The following commit(s) were added to refs/heads/main by this push:
new 49070654f11 [create-pull-request] automated change (#1840)
49070654f11 is described below
commit 49070654f119523976dd2fb493c26c13370e9f26
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jul 9 05:45:19 2026 +0200
[create-pull-request] automated change (#1840)
Co-authored-by: oscerd <[email protected]>
---
.../camel/springboot/catalog/components/pqc.json | 26 +++++-----
.../camel-pqc-starter/src/main/docs/pqc.json | 27 +++++++++++
.../pqc/springboot/PQCComponentConfiguration.java | 55 ++++++++++++++++++++++
.../modules/ROOT/pages/starters/pqc.adoc | 6 ++-
tooling/camel-spring-boot-dependencies/pom.xml | 2 +-
5 files changed, 103 insertions(+), 13 deletions(-)
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/pqc.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/pqc.json
index 56593cd90cd..82af1392a19 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/pqc.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/pqc.json
@@ -39,17 +39,21 @@
"keyLifecycleManager": { "index": 12, "kind": "property", "displayName":
"Key Lifecycle Manager", "group": "advanced", "label": "advanced", "required":
false, "type": "object", "javaType":
"org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager", "deprecated":
false, "deprecationNote": "", "autowired": true, "secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration", "description": "The KeyLifecycleManager
to [...]
"keyPair": { "index": 13, "kind": "property", "displayName": "Key Pair",
"group": "advanced", "label": "advanced", "required": false, "type": "object",
"javaType": "java.security.KeyPair", "deprecated": false, "deprecationNote":
"", "autowired": true, "secret": false, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "The KeyPair to be used" },
"keyPairAlias": { "index": 14, "kind": "property", "displayName": "Key
Pair Alias", "group": "advanced", "label": "advanced", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration", "description": "A KeyPair alias to use
in combination with KeyStore parameter" },
- "keyStore": { "index": 15, "kind": "property", "displayName": "Key Store",
"group": "advanced", "label": "advanced", "required": false, "type": "object",
"javaType": "java.security.KeyStore", "deprecated": false, "deprecationNote":
"", "autowired": true, "secret": false, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "A KeyStore where we could get Cryptographic
material" },
- "keyStorePassword": { "index": 16, "kind": "property", "displayName": "Key
Store Password", "group": "advanced", "label": "advanced", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "The KeyStore password to use in combination
with KeySto [...]
- "signatureAlgorithm": { "index": 17, "kind": "property", "displayName":
"Signature Algorithm", "group": "advanced", "label": "advanced", "required":
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA",
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC",
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "c [...]
- "signer": { "index": 18, "kind": "property", "displayName": "Signer",
"group": "advanced", "label": "advanced", "required": false, "type": "object",
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote":
"", "autowired": true, "secret": false, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "The Signer to be used" },
- "statefulKeyWarningThreshold": { "index": 19, "kind": "property",
"displayName": "Stateful Key Warning Threshold", "group": "advanced", "label":
"advanced", "required": false, "type": "number", "javaType": "double",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "defaultValue": 0.1, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "The warning threshold for stateful key exh
[...]
- "storeExtractedSecretKeyAsHeader": { "index": 20, "kind": "property",
"displayName": "Store Extracted Secret Key As Header", "group": "advanced",
"label": "advanced", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "In the context of extractSec [...]
- "strictKeyLifecycle": { "index": 21, "kind": "property", "displayName":
"Strict Key Lifecycle", "group": "advanced", "label": "advanced", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
true, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration", "description": "Whether to enforce key
status checks before cryptographic [...]
- "symmetricKeyAlgorithm": { "index": 22, "kind": "property", "displayName":
"Symmetric Key Algorithm", "group": "advanced", "label": "advanced",
"required": false, "type": "enum", "javaType": "java.lang.String", "enum": [
"AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", "CHACHA7539",
"DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", "HC256",
"SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "co [...]
- "symmetricKeyLength": { "index": 23, "kind": "property", "displayName":
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required":
false, "type": "integer", "javaType": "int", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration", "description": "The required length of
the symmetric key used" },
- "healthCheckConsumerEnabled": { "index": 24, "kind": "property",
"displayName": "Health Check Consumer Enabled", "group": "health", "label":
"health", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Used for enabling or disabling all consumer based health checks
from this component" },
- "healthCheckProducerEnabled": { "index": 25, "kind": "property",
"displayName": "Health Check Producer Enabled", "group": "health", "label":
"health", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Used for enabling or disabling all producer based health checks
from this component. Notice: Camel has by default disabled all producer based
health-checks. You can turn on produce [...]
+ "keyRotationCheckInterval": { "index": 15, "kind": "property",
"displayName": "Key Rotation Check Interval", "group": "advanced", "label":
"advanced", "required": false, "type": "duration", "javaType": "long",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"3600000", "description": "Interval between key rotation checks when the
scheduler is enabled." },
+ "keyRotationMaxAge": { "index": 16, "kind": "property", "displayName":
"Key Rotation Max Age", "group": "advanced", "label": "advanced", "required":
false, "type": "duration", "javaType": "long", "deprecated": false,
"autowired": false, "secret": false, "description": "When the scheduler is
enabled, rotate keys older than this age. If not set, age is not used as a
rotation signal." },
+ "keyRotationMaxUsage": { "index": 17, "kind": "property", "displayName":
"Key Rotation Max Usage", "group": "advanced", "label": "advanced", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 0, "description": "When the scheduler
is enabled, rotate keys whose recorded usage count reaches this value. 0
disables usage-based rotation." },
+ "keyRotationSchedulerEnabled": { "index": 18, "kind": "property",
"displayName": "Key Rotation Scheduler Enabled", "group": "advanced", "label":
"advanced", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
false, "description": "Whether to start an automated background key rotation
scheduler for this component. Requires keyLifecycleManager to be set. The
scheduler periodically rotates keys that exce [...]
+ "keyStore": { "index": 19, "kind": "property", "displayName": "Key Store",
"group": "advanced", "label": "advanced", "required": false, "type": "object",
"javaType": "java.security.KeyStore", "deprecated": false, "deprecationNote":
"", "autowired": true, "secret": false, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "A KeyStore where we could get Cryptographic
material" },
+ "keyStorePassword": { "index": 20, "kind": "property", "displayName": "Key
Store Password", "group": "advanced", "label": "advanced", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "The KeyStore password to use in combination
with KeySto [...]
+ "signatureAlgorithm": { "index": 21, "kind": "property", "displayName":
"Signature Algorithm", "group": "advanced", "label": "advanced", "required":
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA",
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC",
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "c [...]
+ "signer": { "index": 22, "kind": "property", "displayName": "Signer",
"group": "advanced", "label": "advanced", "required": false, "type": "object",
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote":
"", "autowired": true, "secret": false, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "The Signer to be used" },
+ "statefulKeyWarningThreshold": { "index": 23, "kind": "property",
"displayName": "Stateful Key Warning Threshold", "group": "advanced", "label":
"advanced", "required": false, "type": "number", "javaType": "double",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "defaultValue": 0.1, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "The warning threshold for stateful key exh
[...]
+ "storeExtractedSecretKeyAsHeader": { "index": 24, "kind": "property",
"displayName": "Store Extracted Secret Key As Header", "group": "advanced",
"label": "advanced", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField":
"configuration", "description": "In the context of extractSec [...]
+ "strictKeyLifecycle": { "index": 25, "kind": "property", "displayName":
"Strict Key Lifecycle", "group": "advanced", "label": "advanced", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
true, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration", "description": "Whether to enforce key
status checks before cryptographic [...]
+ "symmetricKeyAlgorithm": { "index": 26, "kind": "property", "displayName":
"Symmetric Key Algorithm", "group": "advanced", "label": "advanced",
"required": false, "type": "enum", "javaType": "java.lang.String", "enum": [
"AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", "CHACHA7539",
"DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", "HC256",
"SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "co [...]
+ "symmetricKeyLength": { "index": 27, "kind": "property", "displayName":
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required":
false, "type": "integer", "javaType": "int", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration", "description": "The required length of
the symmetric key used" },
+ "healthCheckConsumerEnabled": { "index": 28, "kind": "property",
"displayName": "Health Check Consumer Enabled", "group": "health", "label":
"health", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Used for enabling or disabling all consumer based health checks
from this component" },
+ "healthCheckProducerEnabled": { "index": 29, "kind": "property",
"displayName": "Health Check Producer Enabled", "group": "health", "label":
"health", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Used for enabling or disabling all producer based health checks
from this component. Notice: Camel has by default disabled all producer based
health-checks. You can turn on produce [...]
},
"headers": {
"CamelPQCOperation": { "index": 0, "kind": "header", "displayName": "",
"group": "producer", "label": "", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The operation we want to perform", "constantName":
"org.apache.camel.component.pqc.PQCConstants#OPERATION" },
diff --git a/components-starter/camel-pqc-starter/src/main/docs/pqc.json
b/components-starter/camel-pqc-starter/src/main/docs/pqc.json
index 2011c270788..e99e7d4fcfc 100644
--- a/components-starter/camel-pqc-starter/src/main/docs/pqc.json
+++ b/components-starter/camel-pqc-starter/src/main/docs/pqc.json
@@ -129,6 +129,33 @@
"description": "A KeyPair alias to use in combination with KeyStore
parameter",
"sourceType":
"org.apache.camel.component.pqc.springboot.PQCComponentConfiguration"
},
+ {
+ "name": "camel.component.pqc.key-rotation-check-interval",
+ "type": "java.lang.Long",
+ "description": "Interval between key rotation checks when the scheduler
is enabled. The option is a long type.",
+ "sourceType":
"org.apache.camel.component.pqc.springboot.PQCComponentConfiguration",
+ "defaultValue": 3600000
+ },
+ {
+ "name": "camel.component.pqc.key-rotation-max-age",
+ "type": "java.lang.Long",
+ "description": "When the scheduler is enabled, rotate keys older than
this age. If not set, age is not used as a rotation signal. The option is a
long type.",
+ "sourceType":
"org.apache.camel.component.pqc.springboot.PQCComponentConfiguration"
+ },
+ {
+ "name": "camel.component.pqc.key-rotation-max-usage",
+ "type": "java.lang.Long",
+ "description": "When the scheduler is enabled, rotate keys whose
recorded usage count reaches this value. 0 disables usage-based rotation.",
+ "sourceType":
"org.apache.camel.component.pqc.springboot.PQCComponentConfiguration",
+ "defaultValue": 0
+ },
+ {
+ "name": "camel.component.pqc.key-rotation-scheduler-enabled",
+ "type": "java.lang.Boolean",
+ "description": "Whether to start an automated background key rotation
scheduler for this component. Requires keyLifecycleManager to be set. The
scheduler periodically rotates keys that exceed the configured age and\/or
usage policy.",
+ "sourceType":
"org.apache.camel.component.pqc.springboot.PQCComponentConfiguration",
+ "defaultValue": false
+ },
{
"name": "camel.component.pqc.key-store",
"type": "java.security.KeyStore",
diff --git
a/components-starter/camel-pqc-starter/src/main/java/org/apache/camel/component/pqc/springboot/PQCComponentConfiguration.java
b/components-starter/camel-pqc-starter/src/main/java/org/apache/camel/component/pqc/springboot/PQCComponentConfiguration.java
index c5f6852beae..f5ceb2f8be4 100644
---
a/components-starter/camel-pqc-starter/src/main/java/org/apache/camel/component/pqc/springboot/PQCComponentConfiguration.java
+++
b/components-starter/camel-pqc-starter/src/main/java/org/apache/camel/component/pqc/springboot/PQCComponentConfiguration.java
@@ -123,6 +123,28 @@ public class PQCComponentConfiguration
* A KeyPair alias to use in combination with KeyStore parameter
*/
private String keyPairAlias;
+ /**
+ * Interval between key rotation checks when the scheduler is enabled. The
+ * option is a long type.
+ */
+ private Long keyRotationCheckInterval = 3600000L;
+ /**
+ * When the scheduler is enabled, rotate keys older than this age. If not
+ * set, age is not used as a rotation signal. The option is a long type.
+ */
+ private Long keyRotationMaxAge;
+ /**
+ * When the scheduler is enabled, rotate keys whose recorded usage count
+ * reaches this value. 0 disables usage-based rotation.
+ */
+ private Long keyRotationMaxUsage = 0L;
+ /**
+ * Whether to start an automated background key rotation scheduler for this
+ * component. Requires keyLifecycleManager to be set. The scheduler
+ * periodically rotates keys that exceed the configured age and/or usage
+ * policy.
+ */
+ private Boolean keyRotationSchedulerEnabled = false;
/**
* A KeyStore where we could get Cryptographic material. The option is a
* java.security.KeyStore type.
@@ -306,6 +328,39 @@ public class PQCComponentConfiguration
this.keyPairAlias = keyPairAlias;
}
+ public Long getKeyRotationCheckInterval() {
+ return keyRotationCheckInterval;
+ }
+
+ public void setKeyRotationCheckInterval(Long keyRotationCheckInterval) {
+ this.keyRotationCheckInterval = keyRotationCheckInterval;
+ }
+
+ public Long getKeyRotationMaxAge() {
+ return keyRotationMaxAge;
+ }
+
+ public void setKeyRotationMaxAge(Long keyRotationMaxAge) {
+ this.keyRotationMaxAge = keyRotationMaxAge;
+ }
+
+ public Long getKeyRotationMaxUsage() {
+ return keyRotationMaxUsage;
+ }
+
+ public void setKeyRotationMaxUsage(Long keyRotationMaxUsage) {
+ this.keyRotationMaxUsage = keyRotationMaxUsage;
+ }
+
+ public Boolean getKeyRotationSchedulerEnabled() {
+ return keyRotationSchedulerEnabled;
+ }
+
+ public void setKeyRotationSchedulerEnabled(
+ Boolean keyRotationSchedulerEnabled) {
+ this.keyRotationSchedulerEnabled = keyRotationSchedulerEnabled;
+ }
+
public KeyStore getKeyStore() {
return keyStore;
}
diff --git a/docs/spring-boot/modules/ROOT/pages/starters/pqc.adoc
b/docs/spring-boot/modules/ROOT/pages/starters/pqc.adoc
index 7f4b55c7645..649e955913a 100644
--- a/docs/spring-boot/modules/ROOT/pages/starters/pqc.adoc
+++ b/docs/spring-boot/modules/ROOT/pages/starters/pqc.adoc
@@ -24,7 +24,7 @@ Please refer to the above links for usage and configuration
details.
== Spring Boot Auto-Configuration
-The starter supports 34 options, which are listed below.
+The starter supports 38 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
@@ -45,6 +45,10 @@ The starter supports 34 options, which are listed below.
| camel.component.pqc.key-lifecycle-manager | The KeyLifecycleManager to use
for key lifecycle operations such as generation, rotation, import/export,
expiration, and revocation. The option is a
org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager type. | |
KeyLifecycleManager
| camel.component.pqc.key-pair | The KeyPair to be used. The option is a
java.security.KeyPair type. | | KeyPair
| camel.component.pqc.key-pair-alias | A KeyPair alias to use in combination
with KeyStore parameter | | String
+| camel.component.pqc.key-rotation-check-interval | Interval between key
rotation checks when the scheduler is enabled. The option is a long type. |
3600000 | Long
+| camel.component.pqc.key-rotation-max-age | When the scheduler is enabled,
rotate keys older than this age. If not set, age is not used as a rotation
signal. The option is a long type. | | Long
+| camel.component.pqc.key-rotation-max-usage | When the scheduler is enabled,
rotate keys whose recorded usage count reaches this value. 0 disables
usage-based rotation. | 0 | Long
+| camel.component.pqc.key-rotation-scheduler-enabled | Whether to start an
automated background key rotation scheduler for this component. Requires
keyLifecycleManager to be set. The scheduler periodically rotates keys that
exceed the configured age and/or usage policy. | false | Boolean
| camel.component.pqc.key-store | A KeyStore where we could get Cryptographic
material. The option is a java.security.KeyStore type. | | KeyStore
| camel.component.pqc.key-store-password | The KeyStore password to use in
combination with KeyStore Parameter | | String
| camel.component.pqc.lazy-start-producer | Whether the producer should be
started lazy (on the first message). By starting lazy you can use this to allow
CamelContext and routes to startup in situations where a producer may otherwise
fail during starting and cause the route to fail being started. By deferring
this startup to be lazy then the startup failure can be handled during routing
messages via Camel's routing error handlers. Beware that when the first message
is processed then cre [...]
diff --git a/tooling/camel-spring-boot-dependencies/pom.xml
b/tooling/camel-spring-boot-dependencies/pom.xml
index 6e92b204421..0aba32cab23 100644
--- a/tooling/camel-spring-boot-dependencies/pom.xml
+++ b/tooling/camel-spring-boot-dependencies/pom.xml
@@ -33,7 +33,7 @@
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>proto-google-common-protos</artifactId>
- <version>2.72.0</version>
+ <version>2.73.0</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>