Camel Spring Boot Compatibility Matrix Run (bundled in this skill) to generate relative to the current project directory. The directory is created automatically if it does not exist. Arguments The user may provide an optional version range: - No arguments: use the default range to latest (see below) - Two arguments (e.g. ): only versions in that range are processed Steps 1. Run the script. If no version range is given by the user, default to as minimum and omit the max argument (so the script fetches up to the latest available version): 2. After completion, report: - How many Camel versions w…

)\n\necho \"Fetching Spring Boot date index from $SB_STARTER_URL ...\"\nSPRINGBOOT_DATES=$(curl -sf \"$SB_STARTER_URL/\" | parse_dates_from_listing)\n\n# ── Lookup helpers ─────────────────────────────────────────────────────────\n\n# Map each release version to LTS / non-LTS from the release description.\n# The releases page marks LTS releases explicitly (\"... LTS release X.Y.Z\");\n# every other release is not LTS.\nRELEASE_TYPES=$(echo \"$RELEASES_PAGE\" |\n\tgrep -oiE 'releases-desc\">[^\u003c]*' |\n\tsed -E 's/.*releases-desc\">//' |\n\tawk 'match($0, /[0-9]+\\.[0-9]+\\.[0-9]+/) {\n\t\tv = substr($0, RSTART, RLENGTH)\n\t\tprint v, ($0 ~ /LTS/ ? \"LTS\" : \"non-LTS\")\n\t}')\n\nget_release_type() {\n\techo \"$RELEASE_TYPES\" | awk -v v=\"$1\" '$1 == v { print $2; exit }'\n}\n\nget_camel_date() {\n\techo \"$CAMEL_DATES\" | awk -v v=\"$1\" '$1 == v { print $2; exit }'\n}\n\nget_sb_date() {\n\techo \"$SPRINGBOOT_DATES\" | awk -v v=\"$1\" '$1 == v { print $2; exit }'\n}\n\n# ── Fetch version lists ────────────────────────────────────────────────────\n\nfetch_versions() {\n\tlocal url=\"$1\"\n\tcurl -sf \"$url/\" |\n\t\tgrep -oE 'href=\"[0-9]+\\.[0-9]+\\.[0-9]+/\"' |\n\t\tgrep -oE '[0-9]+\\.[0-9]+\\.[0-9]+' |\n\t\tsort -V |\n\t\twhile read -r v; do\n\t\t\tv_int=$(ver_to_int \"$v\")\n\t\t\tif [ \"$v_int\" -ge \"$MIN_INT\" ] && [ \"$v_int\" -le \"$MAX_INT\" ]; then\n\t\t\t\techo \"$v\"\n\t\t\tfi\n\t\tdone\n}\n\necho \"Fetching Camel version lists...\"\n\nVERSIONS_OLD=$(fetch_versions \"$SB_URL\" | while read -r v; do\n\t[ \"$(ver_to_int \"$v\")\" -lt \"$CUTOVER_INT\" ] && echo \"$v\"\ndone)\n\nVERSIONS_NEW=$(fetch_versions \"$PARENT_URL\" | while read -r v; do\n\t[ \"$(ver_to_int \"$v\")\" -ge \"$CUTOVER_INT\" ] && echo \"$v\"\ndone)\n\nALL_VERSIONS=$(printf \"%s\\n%s\" \"$VERSIONS_OLD\" \"$VERSIONS_NEW\" | grep -v '^

Camel Spring Boot Compatibility Matrix Run (bundled in this skill) to generate relative to the current project directory. The directory is created automatically if it does not exist. Arguments The user may provide an optional version range: - No arguments: use the default range to latest (see below) - Two arguments (e.g. ): only versions in that range are processed Steps 1. Run the script. If no version range is given by the user, default to as minimum and omit the max argument (so the script fetches up to the latest available version): 2. After completion, report: - How many Camel versions w…

| sort -V)\n\nif [ -z \"$ALL_VERSIONS\" ]; then\n\techo \"ERROR: No versions found in range $MIN_VERSION - $MAX_VERSION\"\n\texit 1\nfi\n\nVERSION_COUNT=$(echo \"$ALL_VERSIONS\" | wc -l | tr -d ' ')\necho \"Found $VERSION_COUNT versions. Fetching POM files...\"\necho \"\"\n\n# ── Write Markdown header ──────────────────────────────────────────────────\n\nmkdir -p \"$(dirname \"$OUTPUT_MD\")\"\n\nSOURCE_URL=\"https://stackoverflow.com/questions/68087511/compatibility-of-camel-springboot-and-spring-boot\"\n\n{\n\techo \"# Camel Spring Boot Compatibility Matrix\"\n\techo \"\"\n\techo \"- Generated: $(date '+%Y-%m-%d %H:%M:%S')\"\n\techo \"- Cutover: $CUTOVER\"\n\techo \"\"\n\techo \"## Sources\"\n\techo \"\"\n\techo \"- Spring Boot compatibility rules: $SOURCE_URL\"\n\techo \"- LTS and release type info: $RELEASES_URL\"\n\techo \"- Camel release dates (versions \u003c $CUTOVER): $SB_URL\"\n\techo \"- Camel release dates (versions >= $CUTOVER): $PARENT_URL\"\n\techo \"- Spring Boot release dates: $SB_STARTER_URL\"\n\techo \"- Apache CXF version: $PARENT_URL (camel-parent POM, property \\`\u003ccxf-version>\\`)\"\n\techo \"\"\n\techo \"## POM Sources\"\n\techo \"\"\n\techo \"- Spring Boot version, versions \u003c $CUTOVER: $SB_URL\"\n\techo \"- Spring Boot version + CXF version, versions >= $CUTOVER: $PARENT_URL\"\n\techo \"- CXF version, versions \u003c $CUTOVER: $PARENT_URL (fetched additionally)\"\n\techo \"\"\n\techo \"## Matrix\"\n\techo \"\"\n\techo \"| Camel Version | Type | Camel Release Date | Spring Boot Version | Spring Boot Release Date | CXF Version | CXF POM | Spring Boot POM |\"\n\techo \"| --- | --- | --- | --- | --- | --- | --- | --- |\"\n} >\"$OUTPUT_MD\"\n\nprintf \"%-18s | %-6s | %-12s | %-20s | %-12s | %-12s | %s\\n\" \\\n\t\"Camel Version\" \"Type\" \"Camel Date\" \"Spring Boot Version\" \"SB Date\" \"CXF Version\" \"POM URL\"\nprintf \"%s\\n\" \"$(printf '%0.s-' {1..130})\"\n\n# ── Main loop ─────────────────────────────────────────────────────────────\n\ni=0\nwhile IFS= read -r VERSION; do\n\t[ -z \"$VERSION\" ] && continue\n\ti=$((i + 1))\n\tprintf \"[%d/%d] %-15s\\r\" \"$i\" \"$VERSION_COUNT\" \"$VERSION\" >&2\n\n\tv_int=$(ver_to_int \"$VERSION\")\n\tif [ \"$v_int\" -lt \"$CUTOVER_INT\" ]; then\n\t\tSB_POM_URL=\"$SB_URL/$VERSION/spring-boot-$VERSION.pom\"\n\t\tSB_POM=$(curl -sf \"$SB_POM_URL\" 2>/dev/null)\n\t\t# CXF version always comes from camel-parent\n\t\tCXF_POM_URL=\"$PARENT_URL/$VERSION/camel-parent-$VERSION.pom\"\n\t\tCXF_POM=$(curl -sf \"$CXF_POM_URL\" 2>/dev/null)\n\telse\n\t\tSB_POM_URL=\"$PARENT_URL/$VERSION/camel-parent-$VERSION.pom\"\n\t\tSB_POM=$(curl -sf \"$SB_POM_URL\" 2>/dev/null)\n\t\t# Same POM contains both spring-boot-version and cxf-version\n\t\tCXF_POM_URL=\"$SB_POM_URL\"\n\t\tCXF_POM=\"$SB_POM\"\n\tfi\n\n\tSB_VERSION=$(extract_property \"$SB_POM\" \"spring-boot-version\")\n\t[ -z \"$SB_VERSION\" ] && SB_VERSION=\"N/A\"\n\n\tCXF_VERSION=$(extract_property \"$CXF_POM\" \"cxf-version\")\n\t[ -z \"$CXF_VERSION\" ] && CXF_VERSION=\"N/A\"\n\n\tREL_TYPE=$(get_release_type \"$VERSION\")\n\t[ -z \"$REL_TYPE\" ] && REL_TYPE=\"non-LTS\"\n\n\tCAMEL_DATE=$(get_camel_date \"$VERSION\")\n\t[ -z \"$CAMEL_DATE\" ] && CAMEL_DATE=\"?\"\n\n\tSB_DATE=$(get_sb_date \"$SB_VERSION\")\n\t[ -z \"$SB_DATE\" ] && SB_DATE=\"?\"\n\n\techo \"| $VERSION | $REL_TYPE | $CAMEL_DATE | $SB_VERSION | $SB_DATE | $CXF_VERSION | [POM]($CXF_POM_URL) | [POM]($SB_POM_URL) |\" >>\"$OUTPUT_MD\"\n\tprintf \"%-18s | %-6s | %-12s | %-20s | %-12s | %-12s | %s\\n\" \\\n\t\t\"$VERSION\" \"$REL_TYPE\" \"$CAMEL_DATE\" \"$SB_VERSION\" \"$SB_DATE\" \"$CXF_VERSION\" \"$SB_POM_URL\"\n\n\tsleep 0.05\ndone \u003c\u003c\u003c\"$ALL_VERSIONS\"\n\necho \"\"\necho \"Matrix saved to: $OUTPUT_MD\"\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":7583,"content_sha256":"cd9c53eb9a41b47f1ddad5caad2b4e4de7af63ef8d84fcc033fae9509756263d"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Camel Spring Boot Compatibility Matrix","type":"text"}]},{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"scripts/camel-springboot-matrix.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":" (bundled in this skill) to generate ","type":"text"},{"text":"target/camel-springboot-matrix.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" relative to the current project directory. The ","type":"text"},{"text":"target/","type":"text","marks":[{"type":"code_inline"}]},{"text":" directory is created automatically if it does not exist.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Arguments","type":"text"}]},{"type":"paragraph","content":[{"text":"The user may provide an optional version range: ","type":"text"},{"text":"$ARGUMENTS","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"No arguments: use the default range ","type":"text"},{"text":"4.14.0","type":"text","marks":[{"type":"code_inline"}]},{"text":" to latest (see below)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Two arguments (e.g. ","type":"text"},{"text":"4.0.0 4.15.0","type":"text","marks":[{"type":"code_inline"}]},{"text":"): only versions in that range are processed","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Steps","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run the script. If no version range is given by the user, default to ","type":"text"},{"text":"4.14.0","type":"text","marks":[{"type":"code_inline"}]},{"text":" as minimum and omit the max argument (so the script fetches up to the latest available version):","type":"text"}]}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"bash \"${CLAUDE_PLUGIN_ROOT}/scripts/camel-springboot-matrix.sh\" ${ARGUMENTS:-4.14.0}","type":"text"}]},{"type":"ordered_list","attrs":{"order":2,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"After completion, report:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"How many Camel versions were processed","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"That ","type":"text"},{"text":"target/camel-springboot-matrix.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" was created/updated in the current project directory","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The last 5 rows of the generated table so the user can verify the output","type":"text"}]}]}]}]}]}]},"metadata":{"date":"2026-11-02","name":"camel-matrix","author":"@skillopedia","source":{"stars":0,"repo_name":"ai-agent-skills","origin_url":"https://github.com/dboeckli/ai-agent-skills/blob/HEAD/.claude/skills/camel-matrix/SKILL.md","repo_owner":"dboeckli","body_sha256":"dc2f0e75e05c0a0e9d8938ee2904f17933f51e0eeca288d52a9cae5f5d24e510","cluster_key":"ff3aa222eb377eaf5dd83e8ec605c74c097bbb94a6144d44fc18e300943c787b","clean_bundle":{"format":"clean-skill-bundle-v1","source":"dboeckli/ai-agent-skills/.claude/skills/camel-matrix/SKILL.md","text_bytes":7583,"source_commit":"ab99d0c7b12ebf0a63c76c82ff3337d9b5af1199","skills_sh_rank":5331,"attachment_count":1,"text_attachments":1,"attachment_storage":"skill_attachments","binary_attachments":0},"cluster_size":1,"skill_md_path":".claude/skills/camel-matrix/SKILL.md","import_metadata":{"date":"2026-11-02","author":"@skillopedia","version":"v1","category":"devops-infrastructure","category_label":"DevOps"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"devops-infrastructure","import_tag":"skills-sh-top20k-2026-11","description":"Generates a Markdown compatibility matrix for Apache Camel Spring Boot, Spring Boot, and Apache CXF versions by running the camel-springboot-matrix.sh script. Use when the user asks to generate or update the Camel compatibility matrix, check Camel Spring Boot version compatibility, or run the camel-springboot-matrix script. Supports optional version range arguments (min max)."}},"renderedAt":1793671536831}

Camel Spring Boot Compatibility Matrix Run (bundled in this skill) to generate relative to the current project directory. The directory is created automatically if it does not exist. Arguments The user may provide an optional version range: - No arguments: use the default range to latest (see below) - Two arguments (e.g. ): only versions in that range are processed Steps 1. Run the script. If no version range is given by the user, default to as minimum and omit the max argument (so the script fetches up to the latest available version): 2. After completion, report: - How many Camel versions w…