Context
PR #2283 (closes #1853) landed the JAR-shadowing mechanism for StreamExecCalc. The shadow activates via classpath overlay today — both auron-flink-planner.jar and Flink's flink-table-planner.jar are present in $FLINK_HOME/lib/, and Auron's wins via JVM directory traversal (typically alphabetical, but not spec-guaranteed across JVM vendors). This is A1 in the DESIGN.md Rev 4 deployment-model section. This issue tracks A2 — the structural-determinism alternative, agreed during PR #2283 review as the long-term direction.
What Changes
Build and ship auron-flink-planner-shaded.jar — a fat jar that bundles flink-table-planner's content with Auron's overrides substituted in. Users replace $FLINK_HOME/lib/flink-table-planner.jar with this shaded jar; exactly one class exists per shadowed FQCN, so activation is structural rather than ordering-dependent.
Acceptance Criteria
Why Now
Filing as the immediate follow-up to PR #2283 so the next batch of ExecNode shadow PRs (#1860, #1861, #1864) lands on A2 instead of A1.
Parent
Sub-issue of #1264 (Proposal: Flink support). Spawned from PR #2283 review.
Context
PR #2283 (closes #1853) landed the JAR-shadowing mechanism for
StreamExecCalc. The shadow activates via classpath overlay today — bothauron-flink-planner.jarand Flink'sflink-table-planner.jarare present in$FLINK_HOME/lib/, and Auron's wins via JVM directory traversal (typically alphabetical, but not spec-guaranteed across JVM vendors). This is A1 in the DESIGN.md Rev 4 deployment-model section. This issue tracks A2 — the structural-determinism alternative, agreed during PR #2283 review as the long-term direction.What Changes
Build and ship
auron-flink-planner-shaded.jar— a fat jar that bundlesflink-table-planner's content with Auron's overrides substituted in. Users replace$FLINK_HOME/lib/flink-table-planner.jarwith this shaded jar; exactly one class exists per shadowed FQCN, so activation is structural rather than ordering-dependent.Acceptance Criteria
maven-shade-pluginconfiguration that producesauron-flink-planner-shaded-<version>.jarwithflink-table-plannerclasses bundled and Auron's overrides (StreamExecCalctoday; the rest of the Phase-1 ExecNode shadows as Convert Logical operators to Auron Native operators #1860/Convert Comparison operators to Auron Native operators #1861/Convert Cast operators to Auron Native operators #1864/Introduce FlinkAuronUDFWrapperContext #1862/Support Native Flink UNIX_TIMESTAMP Function #1863/Support merge native operators #1865 land) substituted in.flink-shaded,spark-hadoop-cloud).$FLINK_HOMEwith the shaded jar swapped in forflink-table-planner.jarrunsAuronCalcRewriteITCase-equivalent SQL successfully.Why Now
Filing as the immediate follow-up to PR #2283 so the next batch of ExecNode shadow PRs (#1860, #1861, #1864) lands on A2 instead of A1.
Parent
Sub-issue of #1264 (Proposal: Flink support). Spawned from PR #2283 review.