codope commented on code in PR #18988:
URL: https://github.com/apache/hudi/pull/18988#discussion_r3408005978


##########
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieClient.java:
##########
@@ -462,4 +476,78 @@ private static Map<String, String> 
collectRollingMetadataFromTimeline(
   protected Option<Map<String, String>> updateExtraMetadata(Option<Map<String, 
String>> extraMetadata) {
     return CommitMetadataProperties.enrich(extraMetadata, config, context);
   }
+
+  /**
+   * Fire {@link HoodieWriteCommitCallback} for a commit, if enabled. Shared by
+   * {@link BaseHoodieWriteClient#postCommit} (regular auto- and 
explicit-commit paths)
+   * and {@link BaseHoodieTableServiceClient} (compaction and clustering 
completions).
+   * Lazily constructs the callback instance from {@code 
hoodie.write.commit.callback.class}.
+   *
+   * <p>Best-effort: catches and logs any exception from the user-supplied 
callback so a
+   * misbehaving observer cannot fail the commit.
+   */
+  protected void fireCommitCallback(String commitTime,
+                                    String commitActionType,
+                                    List<HoodieWriteStat> stats,
+                                    BaseFileOnlyView fsView,
+                                    Option<Map<String, String>> extraMetadata) 
{
+    if (!config.writeCommitCallbackOn()) {
+      return;
+    }
+    try {
+      if (commitCallback == null) {
+        commitCallback = HoodieCommitCallbackFactory.create(config);
+      }
+      commitCallback.call(new HoodieWriteCommitCallbackMessage(
+          commitTime, config.getTableName(), config.getBasePath(),
+          stats, Option.of(commitActionType), extraMetadata, 
resolvePrevFilePaths(stats, fsView),

Review Comment:
   this was need for an internal feature.. it lets callback consumers (e.g. 
testing frameworks, lineage/audit sinks) see which base file each update 
replaced without rebuilding a FileSystemView themselves.
   cc @prashantwason 



-- 
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