in xtable-core/src/main/java/org/apache/xtable/iceberg/IcebergConversionTarget.java [256:280]
public Optional<String> getTargetCommitIdentifier(String sourceIdentifier) {
for (Snapshot snapshot : table.snapshots()) {
Map<String, String> summary = snapshot.summary();
String sourceMetadataJson = summary.get(TableSyncMetadata.XTABLE_METADATA);
if (sourceMetadataJson == null) {
continue;
}
try {
Optional<TableSyncMetadata> optionalMetadata =
TableSyncMetadata.fromJson(sourceMetadataJson);
if (!optionalMetadata.isPresent()) {
continue;
}
TableSyncMetadata metadata = optionalMetadata.get();
if (sourceIdentifier.equals(metadata.getSourceIdentifier())) {
return Optional.of(String.valueOf(snapshot.snapshotId()));
}
} catch (Exception e) {
log.warn("Failed to parse parse snapshot metadata for {}", snapshot.snapshotId(), e);
}
}
return Optional.empty();
}