Atom component
The
atomcomponent polls an Atom feed and emits each new entry as an exchange whose body is the entry.
Scheme: atom: · Crate: cameleer-saas · Cargo feature: saas ·
Consumer: yes · Producer: no · Apache Camel: Atom
atom shares its implementation with rss and parses Atom 1.0, RSS 2.0 and RSS 1.0.
The difference: with splitEntries=true the body is the entry map itself (${body[title]}),
not a feed holding one entry.
When to use it
- Watch GitHub release feeds (
https://github.com/<owner>/<repo>/releases.atom) and start an upgrade check or notify a team. - Follow blogs and changelogs that publish Atom.
- Feed new entries to an AI agent for summaries or tagging.
URI format
atom:feedUrl[?options]Example
Check a project's release feed every hour and queue each new release.
- route:
id: release-watch
from:
uri: "atom:{{env:RELEASES_FEED:https://github.com/apache/camel/releases.atom}}?delay=3600000&throttleEntries=false"
steps:
- setBody:
simple: "new release ${body[title]}: ${body[link]}"
- to: seda:releases
- route:
id: notify-release
from:
uri: seda:releases
steps:
- log: "${body}"Rust DSL
fn release_watch_routes(b: &mut RouteBuilder, feed_url: &str) {
b.from(&format!("atom:{}?delay=3600000&throttleEntries=false", feed_url))
.route_id("release-watch")
.set_body(simple("new release ${body[title]}: ${body[link]}"))
.to("seda:releases");
b.from("seda:releases").route_id("notify-release").log("${body}");
}Options
The same as rss: splitEntries, filter, lastUpdate, sortEntries,
throttleEntries, feedHeader, and the scheduler options (delay 60000 ms). Unknown options
are added to the feed URL's query.
Message headers
| header | direction | description |
|---|---|---|
CamelAtomFeed | out | The whole feed (with feedHeader=true). |
Entry map: title, link, uri (the Atom id), description (summary), contents,
author, publishedDate, updatedDate, categories.
Run it with Docker
docker run --rm -e RELEASES_FEED=https://github.com/apache/kafka/releases.atom \
-v "$PWD:/routes:ro" pmsudhi/cameleer run /routes/release-watch.camel.yamlCommon questions
Why do I only get one entry per poll?
throttleEntries defaults to true, as in Apache Camel. Set it to false to get all new
entries at once.
How do I skip old entries on the first poll?
Set lastUpdate=2026-11-01T00:00:00; only newer entries are delivered.
Related
- rss, http.
- Apache Camel: Atom component.
Found a problem?
If something on this page doesn't match what Cameleer does, or you hit a bug while building
with it, please help fix it, whether you are a person or a coding agent:
open an issue that describes what you saw,
then fork the repository, fix it, add or update a test, run cargo test --workspace, and open
a pull request. CONTRIBUTING.md
explains the ground rules.