CTTY commented on code in PR #17825:
URL: https://github.com/apache/hudi/pull/17825#discussion_r2756470429


##########
hudi-common/src/main/java/org/apache/hudi/common/engine/HoodieReaderContext.java:
##########
@@ -75,12 +80,22 @@
  * @param <T> The type of engine-specific record representation, e.g.,{@code 
InternalRow} in Spark
  *            and {@code RowData} in Flink.
  */
+@Getter
+@Setter

Review Comment:
   Do we really need class-level getter/setter if we need so many field level 
getters



##########
hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/TestCleaner.java:
##########
@@ -715,18 +715,30 @@ public void testCleanMetadataUpgradeDowngrade() {
     List<String> failedDeleteFiles1 = Collections.singletonList(filePath2);
 
     // create partition1 clean stat.
-    HoodieCleanStat cleanStat1 = new 
HoodieCleanStat(HoodieCleaningPolicy.KEEP_LATEST_FILE_VERSIONS,
-        partition1, deletePathPatterns1, successDeleteFiles1,
-        failedDeleteFiles1, instantTime, "");
+    HoodieCleanStat cleanStat1 = HoodieCleanStat.builder()
+        .withPolicy(HoodieCleaningPolicy.KEEP_LATEST_FILE_VERSIONS)
+        .withPartitionPath(partition1)
+        .withDeletePathPatterns(deletePathPatterns1)
+        .withSuccessDeleteFiles(successDeleteFiles1)
+        .withFailedDeleteFiles(failedDeleteFiles1)
+        .withEarliestCommitToRetain(instantTime)
+        .withLastCompletedCommitTimestamp("")
+        .build();
 
     List<String> deletePathPatterns2 = new ArrayList<>();
     List<String> successDeleteFiles2 = new ArrayList<>();
     List<String> failedDeleteFiles2 = new ArrayList<>();
 
     // create partition2 empty clean stat.
-    HoodieCleanStat cleanStat2 = new 
HoodieCleanStat(HoodieCleaningPolicy.KEEP_LATEST_COMMITS,
-        partition2, deletePathPatterns2, successDeleteFiles2,
-        failedDeleteFiles2, instantTime, "");
+    HoodieCleanStat cleanStat2 = HoodieCleanStat.builder()
+        .withPolicy(HoodieCleaningPolicy.KEEP_LATEST_FILE_VERSIONS)

Review Comment:
   The policy was changed? Probably doesn't matter that much but needs 
revisiting
   
   
   ```suggestion
           .withPolicy(HoodieCleaningPolicy.KEEP_LATEST_COMMITS)
   ```



##########
hudi-common/src/main/java/org/apache/hudi/common/HoodieCleanStat.java:
##########
@@ -19,207 +19,45 @@
 package org.apache.hudi.common;
 
 import org.apache.hudi.common.model.HoodieCleaningPolicy;
-import org.apache.hudi.common.table.timeline.HoodieInstant;
 import org.apache.hudi.common.util.CollectionUtils;
-import org.apache.hudi.common.util.Option;
+
+import lombok.Builder;
+import lombok.Value;
 
 import java.io.Serializable;
 import java.util.List;
 
 /**
  * Collects stats about a single partition clean operation.
  */
+@Builder(setterPrefix = "with")
+@Value
 public class HoodieCleanStat implements Serializable {
 
   // Policy used
-  private final HoodieCleaningPolicy policy;
+  HoodieCleaningPolicy policy;
   // Partition path cleaned
-  private final String partitionPath;
+  String partitionPath;
   // The patterns that were generated for the delete operation
-  private final List<String> deletePathPatterns;
-  private final List<String> successDeleteFiles;
-  // Files that could not be deleted
-  private final List<String> failedDeleteFiles;
-  // Bootstrap Base Path patterns that were generated for the delete operation
-  private final List<String> deleteBootstrapBasePathPatterns;
-  private final List<String> successDeleteBootstrapBaseFiles;
+  @Builder.Default
+  List<String> deletePathPatterns = CollectionUtils.createImmutableList();
+  @Builder.Default
+  List<String> successDeleteFiles = CollectionUtils.createImmutableList();
   // Files that could not be deleted
-  private final List<String> failedDeleteBootstrapBaseFiles;
+  @Builder.Default
+  List<String> failedDeleteFiles = CollectionUtils.createImmutableList();
   // Earliest commit that was retained in this clean
-  private final String earliestCommitToRetain;
+  String earliestCommitToRetain;
   // Last completed commit timestamp before clean
-  private final String lastCompletedCommitTimestamp;
+  String lastCompletedCommitTimestamp;
+  // Bootstrap Base Path patterns that were generated for the delete operation
+  @Builder.Default
+  List<String> deleteBootstrapBasePathPatterns = 
CollectionUtils.createImmutableList();
+  @Builder.Default
+  List<String> successDeleteBootstrapBaseFiles = 
CollectionUtils.createImmutableList();;
+  // Files that could not be deleted
+  @Builder.Default
+  List<String> failedDeleteBootstrapBaseFiles = 
CollectionUtils.createImmutableList();;

Review Comment:
   ```suggestion
     List<String> failedDeleteBootstrapBaseFiles = 
CollectionUtils.createImmutableList();
   ```



##########
hudi-common/src/main/java/org/apache/hudi/common/HoodieCleanStat.java:
##########
@@ -19,207 +19,45 @@
 package org.apache.hudi.common;
 
 import org.apache.hudi.common.model.HoodieCleaningPolicy;
-import org.apache.hudi.common.table.timeline.HoodieInstant;
 import org.apache.hudi.common.util.CollectionUtils;
-import org.apache.hudi.common.util.Option;
+
+import lombok.Builder;
+import lombok.Value;
 
 import java.io.Serializable;
 import java.util.List;
 
 /**
  * Collects stats about a single partition clean operation.
  */
+@Builder(setterPrefix = "with")
+@Value
 public class HoodieCleanStat implements Serializable {
 
   // Policy used
-  private final HoodieCleaningPolicy policy;
+  HoodieCleaningPolicy policy;
   // Partition path cleaned
-  private final String partitionPath;
+  String partitionPath;
   // The patterns that were generated for the delete operation
-  private final List<String> deletePathPatterns;
-  private final List<String> successDeleteFiles;
-  // Files that could not be deleted
-  private final List<String> failedDeleteFiles;
-  // Bootstrap Base Path patterns that were generated for the delete operation
-  private final List<String> deleteBootstrapBasePathPatterns;
-  private final List<String> successDeleteBootstrapBaseFiles;
+  @Builder.Default
+  List<String> deletePathPatterns = CollectionUtils.createImmutableList();
+  @Builder.Default
+  List<String> successDeleteFiles = CollectionUtils.createImmutableList();
   // Files that could not be deleted
-  private final List<String> failedDeleteBootstrapBaseFiles;
+  @Builder.Default
+  List<String> failedDeleteFiles = CollectionUtils.createImmutableList();
   // Earliest commit that was retained in this clean
-  private final String earliestCommitToRetain;
+  String earliestCommitToRetain;
   // Last completed commit timestamp before clean
-  private final String lastCompletedCommitTimestamp;
+  String lastCompletedCommitTimestamp;
+  // Bootstrap Base Path patterns that were generated for the delete operation
+  @Builder.Default
+  List<String> deleteBootstrapBasePathPatterns = 
CollectionUtils.createImmutableList();
+  @Builder.Default
+  List<String> successDeleteBootstrapBaseFiles = 
CollectionUtils.createImmutableList();;

Review Comment:
   ```suggestion
     List<String> successDeleteBootstrapBaseFiles = 
CollectionUtils.createImmutableList();
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to