This is an automated email from the ASF dual-hosted git repository. github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/dev/pr-11882-857d138ef7accc2eb6429a31f9f6df10d6d6f899 in repository https://gitbox.apache.org/repos/asf/seatunnel.git
commit 5e918f399afad1876366c14ff2bc6b84ed09c5e5 Author: zhiweiniu <[email protected]> AuthorDate: Sun Sep 13 08:17:41 2026 +0000 [Improve] [API] Deprecate Expression in favor of Condition (#11882) Co-authored-by: David Zollo <[email protected]> --- .../apache/seatunnel/api/configuration/util/Expression.java | 12 ++++++++++++ .../seatunnel/api/configuration/util/RequiredOption.java | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/Expression.java b/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/Expression.java index a2061ce4a7..423f6d3f78 100644 --- a/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/Expression.java +++ b/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/Expression.java @@ -21,6 +21,18 @@ import org.apache.seatunnel.api.configuration.Option; import java.util.Objects; +/** + * A compatibility wrapper for composing a chain of {@link Condition conditions}. + * + * @deprecated {@link Condition} provides the preferred condition-chain composition API through + * {@link Condition#and(Condition)} and {@link Condition#or(Condition)}. Use {@link Condition} + * directly for new code. Existing {@code Expression} chains that mix AND and OR should be + * reviewed when migrating because the two representations are currently evaluated through + * different validation paths. This class is retained temporarily for source compatibility with + * downstream extensions and may be removed in a future API cleanup after the compatibility + * window. + */ +@Deprecated public class Expression { private final Condition<?> condition; private Boolean and = null; diff --git a/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/RequiredOption.java b/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/RequiredOption.java index 1dd197b135..db7a11bb39 100644 --- a/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/RequiredOption.java +++ b/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/RequiredOption.java @@ -125,6 +125,13 @@ public interface RequiredOption { this.requiredOption = requiredOption; } + /** + * Creates conditional required options from the legacy expression wrapper. + * + * @deprecated Use {@link #of(Condition, List)} for new code. This overload is retained + * temporarily for source compatibility with downstream extensions. + */ + @Deprecated public static ConditionalRequiredOptions of( Expression expression, List<Option<?>> requiredOption) { return new ConditionalRequiredOptions(expression, requiredOption);
