This is an automated email from the ASF dual-hosted git repository.

jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 1ad5c69e52 [#10311] fix(optimizer): resolve built-in rewrite adapter 
by template name (#10307)
1ad5c69e52 is described below

commit 1ad5c69e52b9103ba8311881802bff526873475b
Author: FANNG <[email protected]>
AuthorDate: Mon Mar 9 20:09:42 2026 +0900

    [#10311] fix(optimizer): resolve built-in rewrite adapter by template name 
(#10307)
    
    ### What changes were proposed in this pull request?
    
    This PR fixes built-in adapter resolution for optimizer strategy job
    submission:
    
    - Map built-in template name `builtin-iceberg-rewrite-data-files` to
    `GravitinoCompactionJobAdapter` in `GravitinoJobSubmitter`.
    - Remove the legacy strategy-type alias mapping from the built-in
    adapter registry.
    - Update unit tests to align with the template-name-based contract.
    
    ### Why are the changes needed?
    
    `submit-strategy-jobs` submits jobs using the job template name from
    strategy/policy content.
    Before this change, built-in adapter lookup relied on a strategy-type
    alias path, which can cause submission failures like:
    
    `No job adapter found for template: builtin-iceberg-rewrite-data-files`
    
    This patch makes the lookup consistent with actual runtime input
    (`jobTemplateName`).
    
    Fix: #10311
    
    ### Does this PR introduce _any_ user-facing change?
    
    Yes, a user-visible bug fix in optimizer behavior:
    
    - `gravitino-optimizer.sh --type submit-strategy-jobs` can now resolve
    the built-in rewrite template adapter through the default template-name
    mapping.
    - No user-facing API changes.
    - No property key additions/removals.
    
    ### How was this patch tested?
    
    - Added/updated unit tests in `TestGravitinoJobSubmitter`.
    - Ran:
    
    ```bash
    ./gradlew :maintenance:optimizer:test --tests 
org.apache.gravitino.maintenance.optimizer.recommender.job.TestGravitinoJobSubmitter
 -PskipITs
    ```
    
    - Result: BUILD SUCCESSFUL.
---
 .../optimizer/recommender/job/GravitinoJobSubmitter.java           | 6 ++++--
 .../optimizer/recommender/job/TestGravitinoJobSubmitter.java       | 7 ++++---
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git 
a/maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/job/GravitinoJobSubmitter.java
 
b/maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/job/GravitinoJobSubmitter.java
index 07ee840ed4..a6b9362c80 100644
--- 
a/maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/job/GravitinoJobSubmitter.java
+++ 
b/maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/job/GravitinoJobSubmitter.java
@@ -30,7 +30,7 @@ import 
org.apache.gravitino.maintenance.optimizer.api.recommender.JobSubmitter;
 import org.apache.gravitino.maintenance.optimizer.common.OptimizerEnv;
 import org.apache.gravitino.maintenance.optimizer.common.conf.OptimizerConfig;
 import 
org.apache.gravitino.maintenance.optimizer.common.util.GravitinoClientUtils;
-import 
org.apache.gravitino.maintenance.optimizer.recommender.handler.compaction.CompactionStrategyHandler;
+import org.apache.gravitino.policy.IcebergDataCompactionContent;
 
 /** Submits optimizer jobs to Gravitino using job template adapters. */
 public class GravitinoJobSubmitter implements JobSubmitter {
@@ -47,7 +47,9 @@ public class GravitinoJobSubmitter implements JobSubmitter {
    * @return provider name
    */
   private final Map<String, Class<? extends GravitinoJobAdapter>> jobAdapters =
-      ImmutableMap.of(CompactionStrategyHandler.NAME, 
GravitinoCompactionJobAdapter.class);
+      ImmutableMap.of(
+          IcebergDataCompactionContent.JOB_TEMPLATE_NAME_VALUE,
+          GravitinoCompactionJobAdapter.class);
 
   @Override
   public String name() {
diff --git 
a/maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/job/TestGravitinoJobSubmitter.java
 
b/maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/job/TestGravitinoJobSubmitter.java
index 621f41f7d5..68f79671c4 100644
--- 
a/maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/job/TestGravitinoJobSubmitter.java
+++ 
b/maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/job/TestGravitinoJobSubmitter.java
@@ -24,15 +24,16 @@ import org.apache.gravitino.NameIdentifier;
 import 
org.apache.gravitino.maintenance.optimizer.api.recommender.JobExecutionContext;
 import org.apache.gravitino.maintenance.optimizer.common.OptimizerEnv;
 import org.apache.gravitino.maintenance.optimizer.common.conf.OptimizerConfig;
-import 
org.apache.gravitino.maintenance.optimizer.recommender.handler.compaction.CompactionStrategyHandler;
+import org.apache.gravitino.policy.IcebergDataCompactionContent;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 public class TestGravitinoJobSubmitter {
   @Test
-  void loadJobAdapterReturnsCompactionAdapter() {
+  void loadJobAdapterReturnsCompactionAdapterForBuiltInTemplateName() {
     GravitinoJobSubmitter submitter = new GravitinoJobSubmitter();
-    GravitinoJobAdapter adapter = 
submitter.loadJobAdapter(CompactionStrategyHandler.NAME);
+    GravitinoJobAdapter adapter =
+        
submitter.loadJobAdapter(IcebergDataCompactionContent.JOB_TEMPLATE_NAME_VALUE);
     Assertions.assertTrue(adapter instanceof GravitinoCompactionJobAdapter);
   }
 

Reply via email to