You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gobblin.apache.org by GitBox <gi...@apache.org> on 2020/07/30 16:24:55 UTC

[GitHub] [incubator-gobblin] autumnust commented on a change in pull request #3069: [GOBBLIN-1221] Preserve source file's ModTime by configuration

autumnust commented on a change in pull request #3069:
URL: https://github.com/apache/incubator-gobblin/pull/3069#discussion_r463118971



##########
File path: gobblin-data-management/src/main/java/org/apache/gobblin/data/management/copy/publisher/CopyDataPublisher.java
##########
@@ -185,9 +185,39 @@ public void handleUnpublishedWorkUnits(Collection<? extends WorkUnitState> state
     return datasetRoots;
   }
 
+  /**
+   * Unlike other preserving attributes of files (ownership, group, etc.), which is preserved in writer,
+   * some of the attributes have to be set during publish phase like ModTime,
+   * and versionStrategy (usually relevant to modTime as well), since they are subject to change with Publish(rename)
+   */
+  private void preserveFileAttrInPublisher(CopyableFile copyableFile) throws IOException {
+    // Preserving File ModTime, keep the accessing time of the target file.
+    if (copyableFile.getPreserve().preserve(PreserveAttributes.Option.MOD_TIME)) {
+      fs.setTimes(copyableFile.getDestination(), copyableFile.getOriginTimestamp(),
+          fs.getFileStatus(copyableFile.getDestination()).getAccessTime());

Review comment:
       Actually I think a bit more into the accessTime, it might makes more sense to set this to -1 since the preservation of ModTime is actually breaking the semantics already (we preserve it for special use cases only) and it doesn't make sense to keep the original access time either. 




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

For queries about this service, please contact Infrastructure at:
users@infra.apache.org