Removal of csimple language - #25807
Conversation
|
🌟 Thank you for your contribution to the Apache Camel project! 🌟 🐫 Apache Camel Committers, please review the following items:
|
davsclaus
left a comment
There was a problem hiding this comment.
Thanks for tackling this — removing a fully deprecated language (csimple, deprecated since 4.19 / CAMEL-23151) is a big, mostly mechanical change and the bulk of it is clean: aggregator POMs (bom/camel-bom, catalog/pom.xml, components/pom.xml, catalog/camel-allcomponents) are fully scrubbed, and the upgrade guide entry in camel-4x-upgrade-guide-4_23.adoc is correctly added.
I checked out the branch into an isolated worktree and searched for leftover csimple references. A few generated files and one dead-code path were missed — none of these show up in the PR diff itself, which is likely why they slipped through:
Confirmed issues
-
core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/model.properties(line 26) still listscsimple, even thoughCSimpleExpression.javawas deleted fromcore/camel-core-model/src/main/java/.../model/language/. For comparison, the sibling file this PR did regenerate correctly iscore/camel-core-languages/.../services/org/apache/camel/language.properties, wherecsimplewas properly dropped from thelanguages=list. This file is marked "Generated by camel build tools — do NOT edit", so per project convention it needs to be regenerated and committed, or CI's uncommitted-generated-file check should fail the build. -
catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties(line 25) has the same issue at the catalog-aggregation level — still listscsimple. -
dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloaderLanguageResolver.java(around lines 64-67) still special-cases"csimple".equals(name)to additionally downloadcamel-csimple-joor. This is now dead code —catalog.languageModel("csimple")will returnnullsince the language model is removed, so the branch is unreachable. Not a functional break, but worth deleting while you're in here.
Minor / optional cleanup
- A few doc pages still mention "csimple" in prose (not xrefs, so nothing is broken, but they now reference a language that doesn't exist):
core/camel-core-languages/src/main/docs/modules/languages/pages/simple-functions.adoc— 3 occurrences ("This function is not supported when using csimple")docs/user-manual/modules/ROOT/pages/backlog-debugger.adoc— 2 occurrences, using CSimple as an example language in a table
Verified as non-issues
camel-sbom/camel-sbom.xml/.jsonstill reference the removed artifacts, but git history shows SBOM files are regenerated by a separate automated bot PR ("Generated sources regen for SBOM"), not by individual removal PRs — no action needed here.
I didn't run a full mvn clean install across the whole reactor for this review (too expensive), so items 1-2 are inferred by comparing against the sibling file that was correctly regenerated in this PR, plus the "generated, do not edit" header on those files. Recommend re-running mvn clean install -DskipTests from the repo root (per the PR's own checklist item) and committing any resulting diff.
This review does not replace CodeRabbit/Sourcery/SonarCloud or other specialized static analysis tools.
This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.
948d828 to
ed52995
Compare
|
🧪 CI tested the following changed modules:
🔬 Scalpel shadow comparison — Scalpel: 575 tested, 18 compile-only — current: 564 all testedMaveniverse Scalpel detected 593 affected modules (current approach: 564).
|
camel-csimple, camel-csimple-joor and csimple-maven-plugin are removed. It was deprecated in 4.19. Use the `simple` language instead. Signed-off-by: Aurélien Pupier <apupier@ibm.com>
ed52995 to
a607d20
Compare
|
Apart from the sbom sync (which is usually done separately), I fixed all the other reported points. Please do another review round. |
gnodet
left a comment
There was a problem hiding this comment.
Comprehensive and well-executed removal of the deprecated csimple language across 252 files. The deprecation was properly announced in 4.19, and the upgrade guide entry for 4.23 documents the removal clearly.
The PR correctly removes all layers: the camel-csimple-joor component, the camel-csimple-maven-plugin, the core CSimple language classes, the CSimpleExpression model class, the CSimpleExpressionReifier, all csimple() DSL builder methods, the createCode() method from the SimpleNode interface and all implementations, catalog entries, generated schemas, documentation pages and navigation, YAML DSL deserializer entries, and dependency management entries.
Nice cleanup detail removing the "not supported when using csimple" notes from forEach, filter, and assert function docs.
Minor observation: After this PR, SimpleFunctionHelper.ognlCodeMethods(), appendClass(), splitOgnl(), and SimpleFunctionExpression.ognlCodeMethods() become dead code (they were csimple code-generation helpers). Consider removing them as a follow-up cleanup.
📋 PR Metadata
| Aspect | Current | Suggested |
|---|---|---|
| Labels | components, core, catalog, docs, dsl, core-build-and-dependencies |
+ breaking |
| Milestone | (none) | 4.23.0 |
This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.
Claude Code on behalf of Guillaume Nodet
|
camel spring boot would need an update as well, and so with camel quarkus |
davsclaus
left a comment
There was a problem hiding this comment.
Reviewed as an AI-assisted pass against this project's contribution rules and conventions (this does not replace CodeRabbit/Sourcery-style review or SonarCloud static analysis).
Scope: Removes camel-csimple, camel-csimple-joor, and csimple-maven-plugin (deprecated since 4.19 via CAMEL-23151), plus every generated artifact that referenced them.
Verification performed:
- Confirmed the deprecation is real:
@Deprecated(since = "4.19")onCSimpleLanguage, tracked by the already-resolved CAMEL-23151. - CI is green (build + both IT shards + dependency-review).
- Checked out the branch and did a repo-wide, case-insensitive sweep for
csimple/CSimple. No stalepom.xmlmodule/dependency entries, no leftoverMojoHelper.javaregistration, no stalelanguages.adoc/nav references. Only false positives (Grp**cSimple**ExchangeForwarder,getGeneri**cSimple**Name) and expected historical upgrade-guide mentions remain. - Ran a scoped reactor build (
catalog/camel-catalog,core/camel-core-languages,core/camel-core-model,core/camel-core-reifier,core/camel-main,dsl/camel-endpointdsl,dsl/camel-kamelet-main) — builds clean. - Spot-checked cross-layer coordination: the deprecated
createCode(...)default method is removed from theSimpleLanguageFunctionFactorySPI (core-api) in the same PR, and every implementer (attachments, base64, jsoup, etc.) drops its override in lockstep — not a partial migration. - Confirmed a 4.23 upgrade-guide entry was added documenting the removal.
Non-blocking process note: No JIRA issue appears to track the removal itself (only CAMEL-23151, the original deprecation, which is already resolved). The commit message doesn't follow the <ISSUE_ID>: <description> convention, and the PR checklist's "I checked there is a JIRA issue filed" is unchecked. For a change spanning 252 files across core/catalog/DSLs/docs, a tracking ticket would help attribute fixVersions and release notes correctly — not a code defect, so not blocking.
FYI, no action needed here: camel-sbom/camel-sbom.json/.xml still list the removed modules, but SBOM files follow a separate bot-driven regeneration cadence and will self-correct on the next regen.
Overall this is a clean, thorough, well-coordinated removal — no correctness issues, no missing test coverage, no scope drift found.
This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.
| |`evaluateExpressionAtBreakpoint(nodeId, language, expression)` | `String`|To evaluate an expression in any supported language (e.g. Simple, etc.) and convert the result to String | ||
| |`evaluateExpressionAtBreakpoint(nodeId, language, expression, resultType)` | `Object`|To evaluate an expression in any supported language (e.g. Simple, etc.) and return the result as a given result type |
There was a problem hiding this comment.
Minor/cosmetic: with only one example language left before removing CSimple, "(e.g. Simple, etc.)" reads a bit awkwardly. Consider dropping "etc." or naming a second example language.
| |`evaluateExpressionAtBreakpoint(nodeId, language, expression)` | `String`|To evaluate an expression in any supported language (e.g. Simple, etc.) and convert the result to String | |
| |`evaluateExpressionAtBreakpoint(nodeId, language, expression, resultType)` | `Object`|To evaluate an expression in any supported language (e.g. Simple, etc.) and return the result as a given result type | |
| |`evaluateExpressionAtBreakpoint(nodeId, language, expression)` | `String`|To evaluate an expression in any supported language (e.g. Simple) and convert the result to String | |
| |`evaluateExpressionAtBreakpoint(nodeId, language, expression, resultType)` | `Object`|To evaluate an expression in any supported language (e.g. Simple) and return the result as a given result type |
follow-up on apache#25807 Signed-off-by: Aurélien Pupier <apupier@ibm.com>
follow-up on apache#25807 Signed-off-by: Aurélien Pupier <apupier@ibm.com>
follow-up on apache#25807 Signed-off-by: Aurélien Pupier <apupier@ibm.com>
removed in Camel core apache/camel#25807 Signed-off-by: Aurélien Pupier <apupier@ibm.com>
follow-up on #25807 Signed-off-by: Aurélien Pupier <apupier@ibm.com>
camel-csimple, camel-csimple-joor and csimple-maven-plugin are removed. It was deprecated in 4.19. Use the
simplelanguage instead.Please have a thorough review. This removal was not trivial and spreads in several parts of the code.
Description
Target
mainbranch)Tracking
Apache Camel coding standards and style
mvn clean install -DskipTestslocally from root folder and I have committed all auto-generated changes.AI-assisted contributions
Co-authored-bytrailers) and the PR description identifies the AI tool used.