You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2017/10/30 00:55:16 UTC
jclouds git commit: Add mtime support to Atmos directory listing
Repository: jclouds
Updated Branches:
refs/heads/master 4b10bcc05 -> 0960ea496
Add mtime support to Atmos directory listing
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/0960ea49
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/0960ea49
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/0960ea49
Branch: refs/heads/master
Commit: 0960ea49699bfa53b45f3a31417f7aa2c8101688
Parents: 4b10bcc
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Oct 29 17:26:34 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Oct 29 17:40:25 2017 -0700
----------------------------------------------------------------------
.../DirectoryEntryListToResourceMetadataList.java | 2 +-
.../org/jclouds/atmos/domain/DirectoryEntry.java | 15 +++++++++++++++
.../atmos/xml/ListDirectoryResponseHandler.java | 16 +++++++++++++++-
3 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/0960ea49/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
index f04100f..b14dd85 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
@@ -59,7 +59,7 @@ public class DirectoryEntryListToResourceMetadataList implements
.get(), null, null, null, null, ImmutableMap.<String, String>of());
else {
BlobMetadataImpl metadata = new BlobMetadataImpl(from.getObjectID(), from.getObjectName(), defaultLocation.get(),
- null, null, null, null, ImmutableMap.<String, String>of(), null,
+ null, null, null, from.getModifiedTime(), ImmutableMap.<String, String>of(), null,
null, new BaseMutableContentMetadata());
MutableBlobMetadataImpl mutable = new MutableBlobMetadataImpl(metadata);
mutable.setSize(from.getSize());
http://git-wip-us.apache.org/repos/asf/jclouds/blob/0960ea49/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java b/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
index b657973..40c2cdb 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
@@ -16,6 +16,10 @@
*/
package org.jclouds.atmos.domain;
+import java.util.Date;
+
+import org.jclouds.javax.annotation.Nullable;
+
import com.google.common.base.Objects;
/**
@@ -26,12 +30,19 @@ public class DirectoryEntry implements Comparable<DirectoryEntry> {
private final FileType type;
private final String objname;
private final long size;
+ @Nullable private final Date modifiedTime;
+ @Deprecated
public DirectoryEntry(String objectid, FileType type, String objname, long size) {
+ this(objectid, type, objname, size, null);
+ }
+
+ public DirectoryEntry(String objectid, FileType type, String objname, long size, Date modifiedTime) {
this.objectid = objectid;
this.objname = objname;
this.type = type;
this.size = size;
+ this.modifiedTime = modifiedTime != null ? (Date) modifiedTime.clone() : null;
}
public String getObjectID() {
@@ -50,6 +61,10 @@ public class DirectoryEntry implements Comparable<DirectoryEntry> {
return size;
}
+ public Date getModifiedTime() {
+ return modifiedTime != null ? (Date) modifiedTime.clone() : null;
+ }
+
public int compareTo(DirectoryEntry o) {
if (getObjectName() == null)
return -1;
http://git-wip-us.apache.org/repos/asf/jclouds/blob/0960ea49/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java b/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
index ffe1a4a..3109708 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
@@ -16,10 +16,14 @@
*/
package org.jclouds.atmos.xml;
+import java.util.Date;
import java.util.Set;
+import javax.inject.Inject;
+
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.FileType;
+import org.jclouds.date.DateService;
import org.jclouds.http.functions.ParseSax;
import com.google.common.collect.Sets;
@@ -37,12 +41,20 @@ public class ListDirectoryResponseHandler extends ParseSax.HandlerWithResult<Set
private FileType currentType;
private String currentFileName;
private long currentSize;
+ private Date currentModificationTime;
// metadata parsing
private String currentName;
private StringBuilder currentText = new StringBuilder();
+ private final DateService dateService;
+
+ @Inject
+ ListDirectoryResponseHandler(DateService dateService) {
+ this.dateService = dateService;
+ }
+
public Set<DirectoryEntry> getResult() {
return entries;
}
@@ -61,9 +73,11 @@ public class ListDirectoryResponseHandler extends ParseSax.HandlerWithResult<Set
} else if (qName.equals("Value")) {
if (currentName.equals("size")) {
currentSize = Long.parseLong(currentText.toString().trim());
+ } else if (currentName.equals("mtime")) {
+ currentModificationTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
}
} else if (qName.equals("DirectoryEntry")) {
- entries.add(new DirectoryEntry(currentObjectId, currentType, currentFileName, currentSize));
+ entries.add(new DirectoryEntry(currentObjectId, currentType, currentFileName, currentSize, currentModificationTime));
}
currentText.setLength(0);
}