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

Croway 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 3a83109e006 docs: add AI agent guidelines and security model reference
3a83109e006 is described below

commit 3a83109e006c8319eb0095f8e1755a7b663b1c66
Author: Croway <[email protected]>
AuthorDate: Wed May 13 13:13:57 2026 +0200

    docs: add AI agent guidelines and security model reference
---
 AGENTS.md   | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 CLAUDE.md   | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 SECURITY.md |  30 +++++++
 3 files changed, 618 insertions(+)

diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 00000000000..3980c24ad6d
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,294 @@
+# Apache Camel Spring Boot - AI Agent Guidelines
+
+Guidelines for AI agents working on this codebase.
+
+## Project Info
+
+Apache Camel Spring Boot provides Spring Boot auto-configuration and starter 
modules for Apache Camel components.
+
+- Version: 4.21.0-SNAPSHOT
+- Java: 17+
+- Build: Maven (use `./mvnw` wrapper)
+- Issue tracker: [JIRA (CAMEL 
project)](https://issues.apache.org/jira/browse/CAMEL)
+- Related repository: [apache/camel](https://github.com/apache/camel) — Camel 
core
+
+## AI Agent Rules of Engagement
+
+These rules apply to ALL AI agents working on this codebase.
+
+### Attribution
+
+- All AI-generated content (GitHub PR descriptions, review comments, JIRA 
comments) MUST clearly
+  identify itself as AI-generated and mention the human operator.
+  Example: "_Claude Code on behalf of [Human Name]_"
+
+### PR Volume
+
+- An agent MUST NOT open more than 10 PRs per day per operator to ensure human 
reviewers can keep up.
+- Prioritize quality over quantity — fewer well-tested PRs are better than 
many shallow ones.
+
+### Git branch
+
+- An agent MUST NEVER push commits to a branch it did not create.
+- If a contributor's PR needs changes, the agent may suggest changes via 
review comments,
+  but must not push to their branch without explicit permission.
+- An agent should prefer to use his own fork to push branches instead of the 
main
+  apache/camel-spring-boot repository. It avoids filling the main repository 
with a long list
+  of uncleaned branches.
+- An agent must provide a useful name for the git branch. It should contain 
the global topic
+  and issue number if possible.
+- After a Pull Request is merged or rejected, the branch should be deleted.
+
+### JIRA Ticket Ownership
+
+- An agent MUST ONLY pick up **Unassigned** JIRA tickets.
+- If a ticket is already assigned to a human, the agent must not reassign it 
or work on it.
+- Before starting work, the agent must assign the ticket to its operator and 
transition it to
+  "In Progress".
+- Before closing a ticket, always set the correct `fixVersions` field.
+  Note: `fixVersions` cannot be set on an already-closed issue — set it before 
closing,
+  or reopen/set/close if needed.
+
+### PR Description Maintenance
+
+When pushing new commits to a PR, **always update the PR description** (and 
title if needed) to
+reflect the current state of the changeset. PRs evolve across commits — the 
description must stay
+accurate and complete. Use `gh pr edit --title "..." --body "..."` after each 
push.
+
+### PR Reviewers
+
+When creating a PR, **always identify and request reviews** from the most 
relevant committers:
+
+- Run `git log --format='%an' --since='1 year' -- <affected-files> | sort | 
uniq -c | sort -rn | head -10`
+  to find who has been most active on the affected files.
+- Use `git blame` on key modified files to identify who wrote the code being 
changed.
+- Cross-reference with the [committer 
list](https://home.apache.org/committers-by-project.html#camel)
+  to ensure you request reviews from active committers (not just contributors).
+- For component-specific changes, prefer reviewers who have recently worked on 
that component.
+- For cross-cutting changes (core, auto-configuration), include committers 
with broader project
+  knowledge.
+- Request review from **at least 2 relevant committers** using `gh pr edit 
--add-reviewer`.
+- When all comments on the Pull Request are addressed (by providing a fix or 
providing more
+  explanation) and the PR checks are green, re-request review on existing 
reviewers so that they
+  are aware that the new changeset is ready to be reviewed.
+
+### Merge Requirements
+
+- An agent MUST NOT merge a PR if there are any **unresolved review 
conversations**.
+- An agent MUST NOT merge a PR without at least **one human approval**.
+- An agent MUST NOT approve its own PRs — human review is always required.
+
+### Code Quality
+
+- Every PR must include tests for new functionality or bug fixes.
+- Every PR must include documentation updates where applicable.
+- All generated files must be regenerated and committed (CI checks for 
uncommitted changes).
+
+### Asynchronous Testing: Use Awaitility Instead of Thread.sleep
+
+Do **NOT** use `Thread.sleep()` in test code. It leads to flaky, slow, and 
non-deterministic tests.
+Use the [Awaitility](https://github.com/awaitility/awaitility) library 
instead, which is already
+available as a test dependency in the project.
+
+**Example — waiting for a route to be registered:**
+
+```java
+import static org.awaitility.Awaitility.await;
+
+await().atMost(20, TimeUnit.SECONDS)
+       .untilAsserted(() -> assertEquals(1, context.getRoutes().size()));
+```
+
+**Rules:**
+
+- New test code MUST NOT introduce `Thread.sleep()` calls.
+- When modifying existing test code that contains `Thread.sleep()`, migrate it 
to Awaitility.
+- Always set an explicit `atMost` timeout to avoid hanging builds.
+- Use `untilAsserted` or `until` with a clear predicate — do not replace a 
sleep with a
+  busy-wait loop.
+
+### Issue Investigation (Before Implementation)
+
+Before implementing a fix for a JIRA issue, **thoroughly investigate** the 
issue's validity and
+context. Camel is a large, long-lived project — code often looks "wrong" but 
exists for good
+reasons. Do NOT jump straight to implementation after reading the issue 
description and the
+current code.
+
+**Required investigation steps:**
+
+1. **Validate the issue**: Confirm the reported problem is real and 
reproducible. Question
+   assumptions in the issue description — they may be incomplete or based on 
misunderstanding.
+2. **Check git history**: Run `git log --oneline <file>` and `git blame 
<file>` on the affected
+   code. Read the commit messages and linked JIRA tickets for prior changes to 
understand *why*
+   the code is written the way it is.
+3. **Search for related issues**: Search JIRA for related tickets (same 
component, similar
+   keywords) to find prior discussions, rejected approaches, or intentional 
design decisions.
+4. **Understand the broader context**: If the issue involves a module that 
replaced or deprecated
+   another, understand *why* the replacement was made and what was 
intentionally changed vs.
+   accidentally omitted. Check the 
[apache/camel](https://github.com/apache/camel) repository
+   for design documents in `proposals/` if the affected area touches core 
Camel behaviour.
+5. **Check if the "fix" reverts prior work**: If your proposed change 
effectively reverts a prior
+   intentional commit, stop and reconsider. If the revert is still justified, 
explicitly
+   acknowledge it in the PR description and explain why despite the original 
rationale.
+
+**Present your findings** to the operator before implementing. Flag any risks, 
ambiguities, or
+cases where the issue may be invalid or the proposed approach may conflict 
with prior decisions.
+
+### Knowledge Cutoff Awareness
+
+AI agents have a training data cutoff and may not know about recent releases, 
API changes, or
+deprecations in external projects. **Never make authoritative claims about 
external project state
+based solely on training knowledge.**
+
+- When a JIRA issue, PR, or code references a specific version of an external 
dependency (e.g.,
+  Spring Boot 4.0, JUnit 6, Jakarta EE 11), **verify it exists** by checking 
official sources
+  (web search, Maven Central, release notes) before questioning or relying on 
it.
+- When implementing or reviewing changes that depend on external project 
behavior, verify the
+  current state rather than assuming training data is up to date.
+- If uncertain about whether something exists or has changed, say so and 
verify — do not
+  confidently assert something is wrong based on potentially stale knowledge.
+
+### Git History Review (When Reviewing PRs)
+
+When reviewing PRs, apply the same investigative rigor:
+
+- Check `git log` and `git blame` on modified files to see if the change 
conflicts with prior
+  intentional decisions.
+- Verify that "fixes" don't revert deliberate behavior without justification.
+- Search for related JIRA tickets that provide context on why the code was 
written that way.
+
+## Security Model
+
+This project shares the same security model as [Apache Camel 
core](https://github.com/apache/camel).
+The canonical security model document is maintained in the `apache/camel` 
repository at
+[`docs/user-manual/modules/ROOT/pages/security-model.adoc`](https://github.com/apache/camel/blob/main/docs/user-manual/modules/ROOT/pages/security-model.adoc).
+
+camel-spring-boot is an auto-configuration layer — it wraps Camel components 
with
+`@ConfigurationProperties` and Spring Boot lifecycle integration but does not 
define its own
+trust boundaries, consumers, producers, header filtering, or deserialization 
paths. The Camel
+core security model's trust assumptions, in-scope vulnerability classes, and 
out-of-scope
+categories apply directly.
+
+When triaging security reports or reviewing security-sensitive PRs in this 
repository, refer to
+the Camel core security model for:
+
+- **Trust assumptions**: Route authors and deployment operators are fully 
trusted; external
+  message senders are untrusted.
+- **In-scope classes**: Unsafe deserialization, XXE, expression injection, 
path traversal, SSRF,
+  header/bean-dispatch abuse, auth bypass, information disclosure, insecure 
defaults,
+  query injection.
+- **Out-of-scope**: Route-author code, explicit opt-ins, DoS via unthrottled 
routes, deployer
+  misconfiguration of management surfaces, unreachable transitive CVEs, 
scanner reports
+  without PoC.
+
+For reporting vulnerabilities, see [`SECURITY.md`](SECURITY.md).
+
+## Structure
+
+```
+camel-spring-boot/
+├── core/                # Core auto-configuration (CamelAutoConfiguration, 
actuator, vault)
+│   ├── camel-spring-boot/     # Main auto-configuration module
+│   └── camel-spring-boot-xml/ # XML (JAXB) route loading variant
+├── components-starter/  # ~425 generated starter modules, one per Camel 
component
+├── core-starter/        # Starters for core Camel modules
+├── dsl-starter/         # Starters for Camel DSL modules (YAML, Groovy, 
Kotlin, etc.)
+├── tooling/             # Maven plugins for code generation (starters, BOMs, 
catalog)
+├── catalog/             # Spring Boot runtime provider for Camel catalog
+├── tests/               # Integration tests and fat-jar tests
+└── archetypes/          # Maven archetype for new Camel Spring Boot projects
+```
+
+## Build
+
+```bash
+# Build a specific starter (preferred — always build in the module directory)
+cd components-starter/camel-aws2-s3-starter && mvn verify
+
+# Build core module
+cd core/camel-spring-boot && mvn verify
+
+# Fast install (skip tests)
+mvn install -Dfastinstall
+
+# Run a single test
+cd components-starter/camel-aws2-s3-starter && mvn verify 
-Dtest=S3ComponentTest
+
+# Format/install without tests
+cd <module> && mvn -DskipTests install
+```
+
+Do NOT parallelize Maven jobs — builds are resource-intensive.
+
+## Code Generation
+
+Most code in `components-starter/` is **generated** by the Maven plugins in 
`tooling/`. For each
+Camel component, the generator produces:
+- `*ComponentAutoConfiguration.java` — Spring Boot `@AutoConfiguration` that 
registers the
+  component bean
+- `*ComponentConfiguration.java` — `@ConfigurationProperties` class exposing 
component options
+  as `camel.component.<name>.*`
+- `*ComponentConverter.java` — Type converter for complex property types
+- 
`META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports`
 — Registers
+  auto-configuration classes
+
+Generated code blocks are delimited by `<!--START OF GENERATED CODE-->` / 
`<!--END OF GENERATED CODE-->`
+in POM files. Do not manually edit generated sections.
+
+### Auto-Configuration Pattern
+
+Each starter's auto-configuration class follows a consistent pattern:
+1. `@AutoConfiguration(after = CamelAutoConfiguration.class)` — ensures 
CamelContext is available
+2. `@ConditionalOnHierarchicalProperties` — enables/disables via 
`camel.component.<name>.enabled`
+3. `ComponentCustomizer` bean copies Spring Boot properties onto the Camel 
component
+
+The core `CamelAutoConfiguration` in `core/camel-spring-boot` is the central 
configuration that
+all starters depend on.
+
+### Creating/Deleting Starters
+
+```sh
+./starter-create <component-name>    # Create a new starter
+./starter-delete <component-name>    # Delete a starter
+```
+
+These invoke the `camel-spring-boot-generator-maven-plugin` under `tooling/`.
+
+### Relationship with Camel Core
+
+This project depends on `apache/camel` for component implementations. The 
`camel-version` property
+must match the target Camel release. When Camel core adds/removes/changes a 
component, the starters
+here must be regenerated.
+
+## Conventions
+
+Code style:
+- Do NOT use Records or Lombok (unless already present in the file)
+- Do NOT change public API signatures without justification
+- Do NOT add new dependencies without justification
+- Maintain backwards compatibility for public APIs
+
+Import style:
+- Do NOT use fully qualified class names (FQCNs) in Java code. Always add an 
`import` statement
+  and use the simple class name.
+- Exception: when two classes share the same simple name, import the most-used 
one and qualify
+  the other.
+
+Tests: `*Test.java` (JUnit 5)
+
+## Commits
+
+```
+CAMEL-XXXX: Brief description
+```
+
+Reference JIRA when applicable.
+
+## Links
+
+- https://camel.apache.org/camel-spring-boot/latest/
+- https://github.com/apache/camel-spring-boot
+- https://github.com/apache/camel
+- https://issues.apache.org/jira/browse/CAMEL
+- [email protected]
+- https://camel.zulipchat.com/
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 00000000000..3980c24ad6d
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,294 @@
+# Apache Camel Spring Boot - AI Agent Guidelines
+
+Guidelines for AI agents working on this codebase.
+
+## Project Info
+
+Apache Camel Spring Boot provides Spring Boot auto-configuration and starter 
modules for Apache Camel components.
+
+- Version: 4.21.0-SNAPSHOT
+- Java: 17+
+- Build: Maven (use `./mvnw` wrapper)
+- Issue tracker: [JIRA (CAMEL 
project)](https://issues.apache.org/jira/browse/CAMEL)
+- Related repository: [apache/camel](https://github.com/apache/camel) — Camel 
core
+
+## AI Agent Rules of Engagement
+
+These rules apply to ALL AI agents working on this codebase.
+
+### Attribution
+
+- All AI-generated content (GitHub PR descriptions, review comments, JIRA 
comments) MUST clearly
+  identify itself as AI-generated and mention the human operator.
+  Example: "_Claude Code on behalf of [Human Name]_"
+
+### PR Volume
+
+- An agent MUST NOT open more than 10 PRs per day per operator to ensure human 
reviewers can keep up.
+- Prioritize quality over quantity — fewer well-tested PRs are better than 
many shallow ones.
+
+### Git branch
+
+- An agent MUST NEVER push commits to a branch it did not create.
+- If a contributor's PR needs changes, the agent may suggest changes via 
review comments,
+  but must not push to their branch without explicit permission.
+- An agent should prefer to use his own fork to push branches instead of the 
main
+  apache/camel-spring-boot repository. It avoids filling the main repository 
with a long list
+  of uncleaned branches.
+- An agent must provide a useful name for the git branch. It should contain 
the global topic
+  and issue number if possible.
+- After a Pull Request is merged or rejected, the branch should be deleted.
+
+### JIRA Ticket Ownership
+
+- An agent MUST ONLY pick up **Unassigned** JIRA tickets.
+- If a ticket is already assigned to a human, the agent must not reassign it 
or work on it.
+- Before starting work, the agent must assign the ticket to its operator and 
transition it to
+  "In Progress".
+- Before closing a ticket, always set the correct `fixVersions` field.
+  Note: `fixVersions` cannot be set on an already-closed issue — set it before 
closing,
+  or reopen/set/close if needed.
+
+### PR Description Maintenance
+
+When pushing new commits to a PR, **always update the PR description** (and 
title if needed) to
+reflect the current state of the changeset. PRs evolve across commits — the 
description must stay
+accurate and complete. Use `gh pr edit --title "..." --body "..."` after each 
push.
+
+### PR Reviewers
+
+When creating a PR, **always identify and request reviews** from the most 
relevant committers:
+
+- Run `git log --format='%an' --since='1 year' -- <affected-files> | sort | 
uniq -c | sort -rn | head -10`
+  to find who has been most active on the affected files.
+- Use `git blame` on key modified files to identify who wrote the code being 
changed.
+- Cross-reference with the [committer 
list](https://home.apache.org/committers-by-project.html#camel)
+  to ensure you request reviews from active committers (not just contributors).
+- For component-specific changes, prefer reviewers who have recently worked on 
that component.
+- For cross-cutting changes (core, auto-configuration), include committers 
with broader project
+  knowledge.
+- Request review from **at least 2 relevant committers** using `gh pr edit 
--add-reviewer`.
+- When all comments on the Pull Request are addressed (by providing a fix or 
providing more
+  explanation) and the PR checks are green, re-request review on existing 
reviewers so that they
+  are aware that the new changeset is ready to be reviewed.
+
+### Merge Requirements
+
+- An agent MUST NOT merge a PR if there are any **unresolved review 
conversations**.
+- An agent MUST NOT merge a PR without at least **one human approval**.
+- An agent MUST NOT approve its own PRs — human review is always required.
+
+### Code Quality
+
+- Every PR must include tests for new functionality or bug fixes.
+- Every PR must include documentation updates where applicable.
+- All generated files must be regenerated and committed (CI checks for 
uncommitted changes).
+
+### Asynchronous Testing: Use Awaitility Instead of Thread.sleep
+
+Do **NOT** use `Thread.sleep()` in test code. It leads to flaky, slow, and 
non-deterministic tests.
+Use the [Awaitility](https://github.com/awaitility/awaitility) library 
instead, which is already
+available as a test dependency in the project.
+
+**Example — waiting for a route to be registered:**
+
+```java
+import static org.awaitility.Awaitility.await;
+
+await().atMost(20, TimeUnit.SECONDS)
+       .untilAsserted(() -> assertEquals(1, context.getRoutes().size()));
+```
+
+**Rules:**
+
+- New test code MUST NOT introduce `Thread.sleep()` calls.
+- When modifying existing test code that contains `Thread.sleep()`, migrate it 
to Awaitility.
+- Always set an explicit `atMost` timeout to avoid hanging builds.
+- Use `untilAsserted` or `until` with a clear predicate — do not replace a 
sleep with a
+  busy-wait loop.
+
+### Issue Investigation (Before Implementation)
+
+Before implementing a fix for a JIRA issue, **thoroughly investigate** the 
issue's validity and
+context. Camel is a large, long-lived project — code often looks "wrong" but 
exists for good
+reasons. Do NOT jump straight to implementation after reading the issue 
description and the
+current code.
+
+**Required investigation steps:**
+
+1. **Validate the issue**: Confirm the reported problem is real and 
reproducible. Question
+   assumptions in the issue description — they may be incomplete or based on 
misunderstanding.
+2. **Check git history**: Run `git log --oneline <file>` and `git blame 
<file>` on the affected
+   code. Read the commit messages and linked JIRA tickets for prior changes to 
understand *why*
+   the code is written the way it is.
+3. **Search for related issues**: Search JIRA for related tickets (same 
component, similar
+   keywords) to find prior discussions, rejected approaches, or intentional 
design decisions.
+4. **Understand the broader context**: If the issue involves a module that 
replaced or deprecated
+   another, understand *why* the replacement was made and what was 
intentionally changed vs.
+   accidentally omitted. Check the 
[apache/camel](https://github.com/apache/camel) repository
+   for design documents in `proposals/` if the affected area touches core 
Camel behaviour.
+5. **Check if the "fix" reverts prior work**: If your proposed change 
effectively reverts a prior
+   intentional commit, stop and reconsider. If the revert is still justified, 
explicitly
+   acknowledge it in the PR description and explain why despite the original 
rationale.
+
+**Present your findings** to the operator before implementing. Flag any risks, 
ambiguities, or
+cases where the issue may be invalid or the proposed approach may conflict 
with prior decisions.
+
+### Knowledge Cutoff Awareness
+
+AI agents have a training data cutoff and may not know about recent releases, 
API changes, or
+deprecations in external projects. **Never make authoritative claims about 
external project state
+based solely on training knowledge.**
+
+- When a JIRA issue, PR, or code references a specific version of an external 
dependency (e.g.,
+  Spring Boot 4.0, JUnit 6, Jakarta EE 11), **verify it exists** by checking 
official sources
+  (web search, Maven Central, release notes) before questioning or relying on 
it.
+- When implementing or reviewing changes that depend on external project 
behavior, verify the
+  current state rather than assuming training data is up to date.
+- If uncertain about whether something exists or has changed, say so and 
verify — do not
+  confidently assert something is wrong based on potentially stale knowledge.
+
+### Git History Review (When Reviewing PRs)
+
+When reviewing PRs, apply the same investigative rigor:
+
+- Check `git log` and `git blame` on modified files to see if the change 
conflicts with prior
+  intentional decisions.
+- Verify that "fixes" don't revert deliberate behavior without justification.
+- Search for related JIRA tickets that provide context on why the code was 
written that way.
+
+## Security Model
+
+This project shares the same security model as [Apache Camel 
core](https://github.com/apache/camel).
+The canonical security model document is maintained in the `apache/camel` 
repository at
+[`docs/user-manual/modules/ROOT/pages/security-model.adoc`](https://github.com/apache/camel/blob/main/docs/user-manual/modules/ROOT/pages/security-model.adoc).
+
+camel-spring-boot is an auto-configuration layer — it wraps Camel components 
with
+`@ConfigurationProperties` and Spring Boot lifecycle integration but does not 
define its own
+trust boundaries, consumers, producers, header filtering, or deserialization 
paths. The Camel
+core security model's trust assumptions, in-scope vulnerability classes, and 
out-of-scope
+categories apply directly.
+
+When triaging security reports or reviewing security-sensitive PRs in this 
repository, refer to
+the Camel core security model for:
+
+- **Trust assumptions**: Route authors and deployment operators are fully 
trusted; external
+  message senders are untrusted.
+- **In-scope classes**: Unsafe deserialization, XXE, expression injection, 
path traversal, SSRF,
+  header/bean-dispatch abuse, auth bypass, information disclosure, insecure 
defaults,
+  query injection.
+- **Out-of-scope**: Route-author code, explicit opt-ins, DoS via unthrottled 
routes, deployer
+  misconfiguration of management surfaces, unreachable transitive CVEs, 
scanner reports
+  without PoC.
+
+For reporting vulnerabilities, see [`SECURITY.md`](SECURITY.md).
+
+## Structure
+
+```
+camel-spring-boot/
+├── core/                # Core auto-configuration (CamelAutoConfiguration, 
actuator, vault)
+│   ├── camel-spring-boot/     # Main auto-configuration module
+│   └── camel-spring-boot-xml/ # XML (JAXB) route loading variant
+├── components-starter/  # ~425 generated starter modules, one per Camel 
component
+├── core-starter/        # Starters for core Camel modules
+├── dsl-starter/         # Starters for Camel DSL modules (YAML, Groovy, 
Kotlin, etc.)
+├── tooling/             # Maven plugins for code generation (starters, BOMs, 
catalog)
+├── catalog/             # Spring Boot runtime provider for Camel catalog
+├── tests/               # Integration tests and fat-jar tests
+└── archetypes/          # Maven archetype for new Camel Spring Boot projects
+```
+
+## Build
+
+```bash
+# Build a specific starter (preferred — always build in the module directory)
+cd components-starter/camel-aws2-s3-starter && mvn verify
+
+# Build core module
+cd core/camel-spring-boot && mvn verify
+
+# Fast install (skip tests)
+mvn install -Dfastinstall
+
+# Run a single test
+cd components-starter/camel-aws2-s3-starter && mvn verify 
-Dtest=S3ComponentTest
+
+# Format/install without tests
+cd <module> && mvn -DskipTests install
+```
+
+Do NOT parallelize Maven jobs — builds are resource-intensive.
+
+## Code Generation
+
+Most code in `components-starter/` is **generated** by the Maven plugins in 
`tooling/`. For each
+Camel component, the generator produces:
+- `*ComponentAutoConfiguration.java` — Spring Boot `@AutoConfiguration` that 
registers the
+  component bean
+- `*ComponentConfiguration.java` — `@ConfigurationProperties` class exposing 
component options
+  as `camel.component.<name>.*`
+- `*ComponentConverter.java` — Type converter for complex property types
+- 
`META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports`
 — Registers
+  auto-configuration classes
+
+Generated code blocks are delimited by `<!--START OF GENERATED CODE-->` / 
`<!--END OF GENERATED CODE-->`
+in POM files. Do not manually edit generated sections.
+
+### Auto-Configuration Pattern
+
+Each starter's auto-configuration class follows a consistent pattern:
+1. `@AutoConfiguration(after = CamelAutoConfiguration.class)` — ensures 
CamelContext is available
+2. `@ConditionalOnHierarchicalProperties` — enables/disables via 
`camel.component.<name>.enabled`
+3. `ComponentCustomizer` bean copies Spring Boot properties onto the Camel 
component
+
+The core `CamelAutoConfiguration` in `core/camel-spring-boot` is the central 
configuration that
+all starters depend on.
+
+### Creating/Deleting Starters
+
+```sh
+./starter-create <component-name>    # Create a new starter
+./starter-delete <component-name>    # Delete a starter
+```
+
+These invoke the `camel-spring-boot-generator-maven-plugin` under `tooling/`.
+
+### Relationship with Camel Core
+
+This project depends on `apache/camel` for component implementations. The 
`camel-version` property
+must match the target Camel release. When Camel core adds/removes/changes a 
component, the starters
+here must be regenerated.
+
+## Conventions
+
+Code style:
+- Do NOT use Records or Lombok (unless already present in the file)
+- Do NOT change public API signatures without justification
+- Do NOT add new dependencies without justification
+- Maintain backwards compatibility for public APIs
+
+Import style:
+- Do NOT use fully qualified class names (FQCNs) in Java code. Always add an 
`import` statement
+  and use the simple class name.
+- Exception: when two classes share the same simple name, import the most-used 
one and qualify
+  the other.
+
+Tests: `*Test.java` (JUnit 5)
+
+## Commits
+
+```
+CAMEL-XXXX: Brief description
+```
+
+Reference JIRA when applicable.
+
+## Links
+
+- https://camel.apache.org/camel-spring-boot/latest/
+- https://github.com/apache/camel-spring-boot
+- https://github.com/apache/camel
+- https://issues.apache.org/jira/browse/CAMEL
+- [email protected]
+- https://camel.zulipchat.com/
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000000..264d8ece631
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,30 @@
+# Security Policy
+
+## Supported Versions
+
+To see which versions of Apache Camel are supported please refer to this 
[page](https://camel.apache.org/download/).
+
+## Reporting a Vulnerability
+
+For information on how to report a new security problem please see 
[here](https://camel.apache.org/security/).
+
+Do not file a public JIRA ticket, open a public pull request, post on a 
mailing list, social
+media, or any other public channel for an unpublished vulnerability. Report 
only through the
+[Apache Software Foundation Security team](https://apache.org/security/) and 
follow their
+instructions.
+
+## Security Model
+
+This repository shares the same security model as Apache Camel core. Before 
submitting a report,
+please read the project's
+[Security 
Model](https://github.com/apache/camel/blob/main/docs/user-manual/modules/ROOT/pages/security-model.adoc).
+It documents who is trusted, where the trust boundaries sit, which 
vulnerability classes the
+Camel PMC accepts, and which categories are out of scope (route-author or 
operator responsibility,
+explicit opt-ins, DoS through unthrottled routes, third-party transitive CVEs 
not reachable
+through Camel code, etc.).
+
+camel-spring-boot is an auto-configuration layer that wraps Camel components 
with Spring Boot
+`@ConfigurationProperties` and lifecycle integration. It does not define its 
own trust boundaries,
+consumers, or deserialization paths. The Camel core security model applies 
directly.
+
+Reports outside the documented scope will be closed with a reference to that 
document.

Reply via email to