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.git
The following commit(s) were added to refs/heads/main by this push:
new 72b6127387fc CAMEL-22867: camel-core - Deprecate binary operators in
simple langua… (#20861)
72b6127387fc is described below
commit 72b6127387fc1f2e8de77d33841fb2dcb7214357
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Jan 17 16:14:06 2026 +0100
CAMEL-22867: camel-core - Deprecate binary operators in simple langua…
(#20861)
* CAMEL-22867: camel-core - Deprecate binary operators in simple language
with space in name
---
.../modules/languages/pages/simple-language.adoc | 4 ---
.../camel/language/simple/SimpleTokenizer.java | 10 +++---
.../language/simple/types/BinaryOperatorType.java | 40 ++++++++++++++++++----
.../ROOT/pages/camel-4x-upgrade-guide-4_18.adoc | 12 +++++++
4 files changed, 50 insertions(+), 16 deletions(-)
diff --git
a/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
b/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
index e63ea699d1ea..f8bacd5dfa01 100644
---
a/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
+++
b/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
@@ -637,12 +637,8 @@ defined as numbers: `from..to`. .
|startsWith |For testing if the left-hand side string starts
with the right-hand string.
-|starts with |Same as the startsWith operator.
-
|endsWith |For testing if the left-hand side string ends with
the right-hand string.
-
-|ends with |Same as the endsWith operator.
|===
And the following unary operators can be used:
diff --git
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
index f898c4885079..506e07fbfa0b 100644
---
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
+++
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleTokenizer.java
@@ -64,24 +64,24 @@ public final class SimpleTokenizer {
KNOWN_TOKENS[21] = new SimpleTokenType(TokenType.binaryOperator, "not
is");
KNOWN_TOKENS[22] = new SimpleTokenType(TokenType.binaryOperator,
"!is");
KNOWN_TOKENS[23] = new SimpleTokenType(TokenType.binaryOperator, "is");
- KNOWN_TOKENS[24] = new SimpleTokenType(TokenType.binaryOperator, "not
contains");
+ KNOWN_TOKENS[24] = new SimpleTokenType(TokenType.binaryOperator, "not
contains"); // deprecated
KNOWN_TOKENS[25] = new SimpleTokenType(TokenType.binaryOperator,
"!contains");
KNOWN_TOKENS[26] = new SimpleTokenType(TokenType.binaryOperator,
"contains");
KNOWN_TOKENS[27] = new SimpleTokenType(TokenType.binaryOperator,
"!~~");
KNOWN_TOKENS[28] = new SimpleTokenType(TokenType.binaryOperator, "~~");
- KNOWN_TOKENS[29] = new SimpleTokenType(TokenType.binaryOperator, "not
regex");
+ KNOWN_TOKENS[29] = new SimpleTokenType(TokenType.binaryOperator, "not
regex"); // deprecated
KNOWN_TOKENS[30] = new SimpleTokenType(TokenType.binaryOperator,
"!regex");
KNOWN_TOKENS[31] = new SimpleTokenType(TokenType.binaryOperator,
"regex");
KNOWN_TOKENS[32] = new SimpleTokenType(TokenType.binaryOperator, "not
in");
KNOWN_TOKENS[33] = new SimpleTokenType(TokenType.binaryOperator,
"!in");
KNOWN_TOKENS[34] = new SimpleTokenType(TokenType.binaryOperator, "in");
- KNOWN_TOKENS[35] = new SimpleTokenType(TokenType.binaryOperator, "not
range");
+ KNOWN_TOKENS[35] = new SimpleTokenType(TokenType.binaryOperator, "not
range"); // deprecated
KNOWN_TOKENS[36] = new SimpleTokenType(TokenType.binaryOperator,
"!range");
KNOWN_TOKENS[37] = new SimpleTokenType(TokenType.binaryOperator,
"range");
KNOWN_TOKENS[38] = new SimpleTokenType(TokenType.binaryOperator,
"startsWith");
- KNOWN_TOKENS[39] = new SimpleTokenType(TokenType.binaryOperator,
"starts with");
+ KNOWN_TOKENS[39] = new SimpleTokenType(TokenType.binaryOperator,
"starts with"); // deprecated
KNOWN_TOKENS[40] = new SimpleTokenType(TokenType.binaryOperator,
"endsWith");
- KNOWN_TOKENS[41] = new SimpleTokenType(TokenType.binaryOperator, "ends
with");
+ KNOWN_TOKENS[41] = new SimpleTokenType(TokenType.binaryOperator, "ends
with"); // deprecated
// unary operators
KNOWN_TOKENS[42] = new SimpleTokenType(TokenType.unaryOperator, "++");
diff --git
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
index 46c24968580a..c0b8dca08267 100644
---
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
+++
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/types/BinaryOperatorType.java
@@ -16,6 +16,9 @@
*/
package org.apache.camel.language.simple.types;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* Types of binary operators supported
*/
@@ -44,6 +47,8 @@ public enum BinaryOperatorType {
STARTS_WITH,
ENDS_WITH;
+ private static final Logger LOG =
LoggerFactory.getLogger(BinaryOperatorType.class);
+
public static BinaryOperatorType asOperator(String text) {
if ("==".equals(text)) {
return EQ;
@@ -63,7 +68,10 @@ public enum BinaryOperatorType {
return NOT_EQ_IGNORE;
} else if ("contains".equals(text)) {
return CONTAINS;
- } else if ("!contains".equals(text) || "not contains".equals(text)) {
+ } else if ("!contains".equals(text)) {
+ return NOT_CONTAINS;
+ } else if ("not contains".equals(text)) {
+ LOG.warn("Simple operator `not contains` is deprecated, use
`!contains` instead");
return NOT_CONTAINS;
} else if ("~~".equals(text)) {
return CONTAINS_IGNORECASE;
@@ -71,23 +79,41 @@ public enum BinaryOperatorType {
return NOT_CONTAINS_IGNORECASE;
} else if ("regex".equals(text)) {
return REGEX;
- } else if ("!regex".equals(text) || "not regex".equals(text)) {
+ } else if ("!regex".equals(text)) {
+ return NOT_REGEX;
+ } else if ("not regex".equals(text)) {
+ LOG.warn("Simple operator `not regex` is deprecated, use `!regex`
instead");
return NOT_REGEX;
} else if ("in".equals(text)) {
return IN;
- } else if ("!in".equals(text) || "not in".equals(text)) {
+ } else if ("!in".equals(text)) {
+ return NOT_IN;
+ } else if ("not in".equals(text)) {
+ LOG.warn("Simple operator `not in` is deprecated, use `!in`
instead");
return NOT_IN;
} else if ("is".equals(text)) {
return IS;
- } else if ("!is".equals(text) || "not is".equals(text)) {
+ } else if ("!is".equals(text)) {
+ return NOT_IS;
+ } else if ("not is".equals(text)) {
+ LOG.warn("Simple operator `not is` is deprecated, use `!is`
instead");
return NOT_IS;
} else if ("range".equals(text)) {
return RANGE;
- } else if ("!range".equals(text) || "not range".equals(text)) {
+ } else if ("!range".equals(text)) {
+ return NOT_RANGE;
+ } else if ("not range".equals(text)) {
+ LOG.warn("Simple operator `not range` is deprecated, use `!range`
instead");
return NOT_RANGE;
- } else if ("startsWith".equals(text) || "starts with".equals(text)) {
+ } else if ("startsWith".equals(text)) {
return STARTS_WITH;
- } else if ("endsWith".equals(text) || "ends with".equals(text)) {
+ } else if ("starts with".equals(text)) {
+ LOG.warn("Simple operator `starts with` is deprecated, use
`startsWith` instead");
+ return STARTS_WITH;
+ } else if ("endsWith".equals(text)) {
+ return ENDS_WITH;
+ } else if ("ends with".equals(text)) {
+ LOG.warn("Simple operator `ends with` is deprecated, use
`endsWith` instead");
return ENDS_WITH;
}
throw new IllegalArgumentException("Operator not supported: " + text);
diff --git
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc
index 8f73ede7e86b..f071203e164d 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc
@@ -13,6 +13,18 @@ See the xref:camel-upgrade-recipes-tool.adoc[documentation]
page for details.
== Upgrading Camel 4.17 to 4.18
+== camel-core
+
+=== camel-simple
+
+The *simple* language has deprecated binary operators that uses space in the
name:
+
+- `not contains` use `!contains` instead
+- `not regex` use `!regex` instead
+- `not range` use `!range` instead
+- `starts with` use `startsWith` instead
+- `ends with` use `endsWith` instead
+
=== Component deprecation
The `camel-olingo2` and `camel-olingo4` component are deprecated.