You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2015/11/24 15:37:48 UTC
jclouds git commit: JCLOUDS-1038: Fix date deserialization in EC2 apis
Repository: jclouds
Updated Branches:
refs/heads/master 02b79106c -> 86dadc3a7
JCLOUDS-1038: Fix date deserialization in EC2 apis
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/86dadc3a
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/86dadc3a
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/86dadc3a
Branch: refs/heads/master
Commit: 86dadc3a75b933cd8f6b71827bb95a2d94f0a411
Parents: 02b7910
Author: Ignasi Barrera <na...@apache.org>
Authored: Wed Nov 18 23:27:50 2015 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Tue Nov 24 14:53:18 2015 +0100
----------------------------------------------------------------------
.../org/jclouds/ec2/xml/AttachmentHandler.java | 11 +++----
.../jclouds/ec2/xml/BaseReservationHandler.java | 13 ++++----
.../ec2/xml/BlockDeviceMappingHandler.java | 11 +++----
.../org/jclouds/ec2/xml/BundleTaskHandler.java | 13 ++++----
.../ec2/xml/CreateVolumeResponseHandler.java | 25 +++++++--------
.../xml/DescribeInstancesResponseHandler.java | 6 ++--
.../ec2/xml/GetPasswordDataResponseHandler.java | 11 +++----
.../ec2/xml/RunInstancesResponseHandler.java | 6 ++--
.../org/jclouds/ec2/xml/SnapshotHandler.java | 11 +++----
.../DescribeInstancesResponseHandlerTest.java | 32 +++++++++++++++++---
.../xml/NovaCreateVolumeResponseHandler.java | 6 ++--
.../AWSDescribeInstancesResponseHandler.java | 6 ++--
.../ec2/xml/AWSRunInstancesResponseHandler.java | 6 ++--
.../aws/ec2/xml/BaseAWSReservationHandler.java | 13 ++++----
.../aws/ec2/xml/LaunchSpecificationHandler.java | 7 +----
.../org/jclouds/aws/ec2/xml/SpotHandler.java | 11 +++----
.../aws/ec2/xml/SpotInstanceHandler.java | 17 +++++------
17 files changed, 107 insertions(+), 98 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/main/java/org/jclouds/ec2/xml/AttachmentHandler.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/xml/AttachmentHandler.java b/apis/ec2/src/main/java/org/jclouds/ec2/xml/AttachmentHandler.java
index 7bb31f7..b624310 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/xml/AttachmentHandler.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/xml/AttachmentHandler.java
@@ -22,8 +22,7 @@ import javax.annotation.Resource;
import javax.inject.Inject;
import org.jclouds.aws.util.AWSUtils;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Attachment;
import org.jclouds.http.functions.ParseSax;
import org.jclouds.location.Region;
@@ -36,12 +35,12 @@ public class AttachmentHandler extends ParseSax.HandlerForGeneratedRequestWithRe
@Resource
protected Logger logger = Logger.NULL;
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
protected final Supplier<String> defaultRegion;
@Inject
- AttachmentHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) {
- this.dateCodec = dateCodecFactory.iso8601();
+ AttachmentHandler(DateService dateService, @Region Supplier<String> defaultRegion) {
+ this.dateService = dateService;
this.defaultRegion = defaultRegion;
}
@@ -71,7 +70,7 @@ public class AttachmentHandler extends ParseSax.HandlerForGeneratedRequestWithRe
} else if (qName.equals("device")) {
device = currentText.toString().trim();
} else if (qName.equals("attachTime")) {
- attachTime = dateCodec.toDate(currentText.toString().trim());
+ attachTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
}
currentText.setLength(0);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/main/java/org/jclouds/ec2/xml/BaseReservationHandler.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/xml/BaseReservationHandler.java b/apis/ec2/src/main/java/org/jclouds/ec2/xml/BaseReservationHandler.java
index 4422da2..6b18ae8 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/xml/BaseReservationHandler.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/xml/BaseReservationHandler.java
@@ -25,8 +25,7 @@ import java.util.Set;
import javax.inject.Inject;
import org.jclouds.aws.util.AWSUtils;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Attachment;
import org.jclouds.ec2.domain.BlockDevice;
import org.jclouds.ec2.domain.InstanceState;
@@ -43,12 +42,12 @@ import com.google.common.collect.Sets;
public abstract class BaseReservationHandler<T> extends HandlerForGeneratedRequestWithResult<T> {
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
protected final Supplier<String> defaultRegion;
@Inject
- public BaseReservationHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) {
- this.dateCodec = dateCodecFactory.iso8601();
+ public BaseReservationHandler(DateService dateService, @Region Supplier<String> defaultRegion) {
+ this.dateService = dateService;
this.defaultRegion = defaultRegion;
}
@@ -141,7 +140,7 @@ public abstract class BaseReservationHandler<T> extends HandlerForGeneratedReque
} else if (equalsOrSuffix(qName, "keyName")) {
builder.keyName(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "launchTime")) {
- builder.launchTime(dateCodec.toDate(currentOrNull(currentText)));
+ builder.launchTime(dateService.iso8601DateOrSecondsDateParse(currentOrNull(currentText)));
} else if (equalsOrSuffix(qName, "availabilityZone")) {
builder.availabilityZone(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "virtualizationType")) {
@@ -167,7 +166,7 @@ public abstract class BaseReservationHandler<T> extends HandlerForGeneratedReque
} else if (equalsOrSuffix(qName, "status")) {
attachmentStatus = Attachment.Status.fromValue(currentText.toString().trim());
} else if (equalsOrSuffix(qName, "attachTime")) {
- attachTime = dateCodec.toDate(currentOrNull(currentText));
+ attachTime = dateService.iso8601DateOrSecondsDateParse(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "deleteOnTermination")) {
deleteOnTermination = Boolean.parseBoolean(currentText.toString().trim());
} else if (equalsOrSuffix(qName, "ebs")) {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/main/java/org/jclouds/ec2/xml/BlockDeviceMappingHandler.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/xml/BlockDeviceMappingHandler.java b/apis/ec2/src/main/java/org/jclouds/ec2/xml/BlockDeviceMappingHandler.java
index 6078df7..f663aed 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/xml/BlockDeviceMappingHandler.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/xml/BlockDeviceMappingHandler.java
@@ -19,8 +19,7 @@ package org.jclouds.ec2.xml;
import java.util.Date;
import java.util.Map;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Attachment;
import org.jclouds.ec2.domain.BlockDevice;
import org.jclouds.http.functions.ParseSax;
@@ -39,11 +38,11 @@ public class BlockDeviceMappingHandler extends
private Attachment.Status attachmentStatus;
private Date attachTime;
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
@Inject
- public BlockDeviceMappingHandler(DateCodecFactory dateCodecFactory) {
- this.dateCodec = dateCodecFactory.iso8601();
+ public BlockDeviceMappingHandler(DateService dateService) {
+ this.dateService = dateService;
}
public Map<String, BlockDevice> getResult() {
@@ -60,7 +59,7 @@ public class BlockDeviceMappingHandler extends
} else if (qName.equals("status")) {
attachmentStatus = Attachment.Status.fromValue(currentText.toString().trim());
} else if (qName.equals("attachTime")) {
- attachTime = dateCodec.toDate(currentText.toString().trim());
+ attachTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
} else if (qName.equals("item")) {
ebsBlockDevices.put(deviceName, new BlockDevice(volumeId, attachmentStatus, attachTime, deleteOnTermination));
this.volumeId = null;
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/main/java/org/jclouds/ec2/xml/BundleTaskHandler.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/xml/BundleTaskHandler.java b/apis/ec2/src/main/java/org/jclouds/ec2/xml/BundleTaskHandler.java
index dd3dd0e..4312eb3 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/xml/BundleTaskHandler.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/xml/BundleTaskHandler.java
@@ -21,8 +21,7 @@ import java.util.Date;
import javax.inject.Inject;
import org.jclouds.aws.util.AWSUtils;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.BundleTask;
import org.jclouds.http.functions.ParseSax;
import org.jclouds.location.Region;
@@ -30,12 +29,12 @@ import org.jclouds.location.Region;
import com.google.common.base.Supplier;
public class BundleTaskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<BundleTask> {
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
protected final Supplier<String> defaultRegion;
@Inject
- protected BundleTaskHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) {
- this.dateCodec = dateCodecFactory.iso8601();
+ protected BundleTaskHandler(DateService dateService, @Region Supplier<String> defaultRegion) {
+ this.dateService = dateService;
this.defaultRegion = defaultRegion;
}
@@ -88,7 +87,7 @@ public class BundleTaskHandler extends ParseSax.HandlerForGeneratedRequestWithRe
temp = temp.substring(0, temp.length() - 1);
progress = Integer.parseInt(temp);
} else if (qName.equals("startTime")) {
- startTime = dateCodec.toDate(currentText.toString().trim());
+ startTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
} else if (qName.equals("state")) {
state = currentText.toString().trim();
} else if (qName.equals("bucket")) {
@@ -96,7 +95,7 @@ public class BundleTaskHandler extends ParseSax.HandlerForGeneratedRequestWithRe
} else if (qName.equals("prefix")) {
prefix = currentText.toString().trim();
} else if (qName.equals("updateTime")) {
- updateTime = dateCodec.toDate(currentText.toString().trim());
+ updateTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
}
currentText.setLength(0);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/main/java/org/jclouds/ec2/xml/CreateVolumeResponseHandler.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/xml/CreateVolumeResponseHandler.java b/apis/ec2/src/main/java/org/jclouds/ec2/xml/CreateVolumeResponseHandler.java
index db6ae45..49bd805e 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/xml/CreateVolumeResponseHandler.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/xml/CreateVolumeResponseHandler.java
@@ -18,19 +18,15 @@ package org.jclouds.ec2.xml;
import static com.google.common.base.Preconditions.checkNotNull;
-import javax.inject.Inject;
import java.util.Date;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import javax.inject.Inject;
+
import org.jclouds.aws.util.AWSUtils;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Attachment;
import org.jclouds.ec2.domain.Volume;
import org.jclouds.http.HttpRequest;
@@ -40,17 +36,22 @@ import org.jclouds.location.Zone;
import org.jclouds.rest.internal.GeneratedHttpRequest;
import org.xml.sax.Attributes;
+import com.google.common.base.Supplier;
+import com.google.common.base.Suppliers;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
public class CreateVolumeResponseHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Volume> {
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
protected final Supplier<String> defaultRegion;
protected final Supplier<Map<String, Supplier<Set<String>>>> regionToZonesSupplier;
protected final Supplier<Set<String>> zonesSupplier;
@Inject
- protected CreateVolumeResponseHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion,
+ protected CreateVolumeResponseHandler(DateService dateService, @Region Supplier<String> defaultRegion,
@Zone Supplier<Map<String, Supplier<Set<String>>>> regionToZonesSupplier,
@Zone Supplier<Set<String>> zonesSupplier) {
- this.dateCodec = dateCodecFactory.iso8601();
+ this.dateService = dateService;
this.defaultRegion = defaultRegion;
this.regionToZonesSupplier = regionToZonesSupplier;
this.zonesSupplier = zonesSupplier;
@@ -113,7 +114,7 @@ public class CreateVolumeResponseHandler extends ParseSax.HandlerForGeneratedReq
volumeStatus = Volume.Status.fromValue(currentText.toString().trim());
}
} else if (qName.equals("createTime")) {
- createTime = dateCodec.toDate(currentText.toString().trim());
+ createTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
} else if (qName.equals("attachmentSet")) {
inAttachmentSet = false;
} else if (qName.equals("instanceId")) {
@@ -125,7 +126,7 @@ public class CreateVolumeResponseHandler extends ParseSax.HandlerForGeneratedReq
} else if (qName.equals("device")) {
device = currentText.toString().trim();
} else if (qName.equals("attachTime")) {
- attachTime = dateCodec.toDate(currentText.toString().trim());
+ attachTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
} else if (qName.equals("volumeType")) {
volumeType = currentText.toString().trim();
if (volumeType.equals(""))
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/main/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandler.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandler.java b/apis/ec2/src/main/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandler.java
index f154fe4..03e54f1 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandler.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandler.java
@@ -22,7 +22,7 @@ import java.util.Set;
import javax.inject.Inject;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Reservation;
import org.jclouds.ec2.domain.RunningInstance;
import org.jclouds.location.Region;
@@ -47,9 +47,9 @@ public class DescribeInstancesResponseHandler extends
private boolean inTagSet;
@Inject
- DescribeInstancesResponseHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion,
+ DescribeInstancesResponseHandler(DateService dateService, @Region Supplier<String> defaultRegion,
TagSetHandler tagSetHandler) {
- super(dateCodecFactory, defaultRegion);
+ super(dateService, defaultRegion);
this.tagSetHandler = tagSetHandler;
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/main/java/org/jclouds/ec2/xml/GetPasswordDataResponseHandler.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/xml/GetPasswordDataResponseHandler.java b/apis/ec2/src/main/java/org/jclouds/ec2/xml/GetPasswordDataResponseHandler.java
index 89126d9..b446d8e 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/xml/GetPasswordDataResponseHandler.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/xml/GetPasswordDataResponseHandler.java
@@ -18,18 +18,17 @@ package org.jclouds.ec2.xml;
import javax.inject.Inject;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.PasswordData;
import org.jclouds.http.functions.ParseSax;
public class GetPasswordDataResponseHandler extends ParseSax.HandlerWithResult<PasswordData> {
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
@Inject
- protected GetPasswordDataResponseHandler(DateCodecFactory dateCodecFactory) {
- this.dateCodec = dateCodecFactory.iso8601();
+ protected GetPasswordDataResponseHandler(DateService dateService) {
+ this.dateService = dateService;
}
private StringBuilder currentText = new StringBuilder();
@@ -44,7 +43,7 @@ public class GetPasswordDataResponseHandler extends ParseSax.HandlerWithResult<P
if (qName.equals("instanceId")) {
builder.instanceId(currentText.toString().trim());
} else if (qName.equals("timestamp")) {
- builder.timestamp(dateCodec.toDate(currentText.toString().trim()));
+ builder.timestamp(dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim()));
} else if (qName.equals("passwordData")) {
builder.passwordData(currentText.toString().trim());
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/main/java/org/jclouds/ec2/xml/RunInstancesResponseHandler.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/xml/RunInstancesResponseHandler.java b/apis/ec2/src/main/java/org/jclouds/ec2/xml/RunInstancesResponseHandler.java
index 4593989..6c95706 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/xml/RunInstancesResponseHandler.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/xml/RunInstancesResponseHandler.java
@@ -18,7 +18,7 @@ package org.jclouds.ec2.xml;
import javax.inject.Inject;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Reservation;
import org.jclouds.ec2.domain.RunningInstance;
import org.jclouds.location.Region;
@@ -35,8 +35,8 @@ import com.google.common.base.Supplier;
public class RunInstancesResponseHandler extends BaseReservationHandler<Reservation<? extends RunningInstance>> {
@Inject
- public RunInstancesResponseHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) {
- super(dateCodecFactory, defaultRegion);
+ public RunInstancesResponseHandler(DateService dateService, @Region Supplier<String> defaultRegion) {
+ super(dateService, defaultRegion);
}
@Override
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/main/java/org/jclouds/ec2/xml/SnapshotHandler.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/xml/SnapshotHandler.java b/apis/ec2/src/main/java/org/jclouds/ec2/xml/SnapshotHandler.java
index f8ac96b..b80914d 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/xml/SnapshotHandler.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/xml/SnapshotHandler.java
@@ -21,8 +21,7 @@ import java.util.Date;
import javax.inject.Inject;
import org.jclouds.aws.util.AWSUtils;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Snapshot;
import org.jclouds.ec2.domain.Snapshot.Status;
import org.jclouds.http.functions.ParseSax;
@@ -33,7 +32,7 @@ import com.google.common.base.Supplier;
public class SnapshotHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Snapshot> {
private StringBuilder currentText = new StringBuilder();
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
protected final Supplier<String> defaultRegion;
private String id;
@@ -47,8 +46,8 @@ public class SnapshotHandler extends ParseSax.HandlerForGeneratedRequestWithResu
private String ownerAlias;
@Inject
- public SnapshotHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) {
- this.dateCodec = dateCodecFactory.iso8601();
+ public SnapshotHandler(DateService dateService, @Region Supplier<String> defaultRegion) {
+ this.dateService = dateService;
this.defaultRegion = defaultRegion;
}
@@ -80,7 +79,7 @@ public class SnapshotHandler extends ParseSax.HandlerForGeneratedRequestWithResu
} else if (qName.equals("status")) {
status = Snapshot.Status.fromValue(currentText.toString().trim());
} else if (qName.equals("startTime")) {
- startTime = dateCodec.toDate(currentText.toString().trim());
+ startTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
} else if (qName.equals("progress")) {
String progressString = currentText.toString().trim();
if (!progressString.equals("")) {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/ec2/src/test/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandlerTest.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/test/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandlerTest.java b/apis/ec2/src/test/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandlerTest.java
index 862388f..b9931fd 100644
--- a/apis/ec2/src/test/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandlerTest.java
+++ b/apis/ec2/src/test/java/org/jclouds/ec2/xml/DescribeInstancesResponseHandlerTest.java
@@ -71,7 +71,29 @@ public class DescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest {
"ec2-174-129-81-68.compute-1.amazonaws.com").imageId("ami-82e4b5c7").instanceId("i-0799056f")
.instanceState(InstanceState.RUNNING).rawState("running").instanceType(InstanceType.M1_SMALL)
.ipAddress("174.129.81.68").kernelId("aki-a71cf9ce").keyName("adriancole.ec21").launchTime(
- dateService.iso8601DateParse("2009-11-09T03:00:34.000Z"))
+ dateService.iso8601DateOrSecondsDateParse("2009-11-09T03:00:34.000Z"))
+ // MonitoringState.DISABLED,
+ .availabilityZone("us-east-1c").virtualizationType("paravirtual").privateDnsName(
+ "ip-10-243-42-70.ec2.internal").privateIpAddress("10.243.42.70").ramdiskId(
+ "ari-a51cf9cc").rootDeviceType(RootDeviceType.INSTANCE_STORE).build()),
+ "993194456877", null, "r-a3c508cb"));
+
+ Set<Reservation<? extends RunningInstance>> result = parseRunningInstances("/describe_instances_running.xml");
+
+ assertEquals(result.toString(), contents.toString());
+ assertEquals(get(get(result, 0), 0).getInstanceState(), InstanceState.RUNNING);
+ assertEquals(get(get(result, 0), 0).getRawState(), "running");
+ }
+
+ public void testWhenRunningAndSecondsDate() throws UnknownHostException {
+
+ Set<Reservation<RunningInstance>> contents = ImmutableSet.of(new Reservation<RunningInstance>(defaultRegion,
+ ImmutableSet.of("adriancole.ec2ingress"), ImmutableSet.of(RunningInstance.builder().region(
+ defaultRegion).groupName("adriancole.ec2ingress").amiLaunchIndex("0").dnsName(
+ "ec2-174-129-81-68.compute-1.amazonaws.com").imageId("ami-82e4b5c7").instanceId("i-0799056f")
+ .instanceState(InstanceState.RUNNING).rawState("running").instanceType(InstanceType.M1_SMALL)
+ .ipAddress("174.129.81.68").kernelId("aki-a71cf9ce").keyName("adriancole.ec21").launchTime(
+ dateService.iso8601DateOrSecondsDateParse("2009-11-09T03:00:34+0000"))
// MonitoringState.DISABLED,
.availabilityZone("us-east-1c").virtualizationType("paravirtual").privateDnsName(
"ip-10-243-42-70.ec2.internal").privateIpAddress("10.243.42.70").ramdiskId(
@@ -92,7 +114,7 @@ public class DescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest {
"default").amiLaunchIndex("23").dnsName("ec2-72-44-33-4.compute-1.amazonaws.com").imageId(
"ami-6ea54007").instanceId("i-28a64341").instanceState(InstanceState.RUNNING).rawState(
"running").instanceType(InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName(
- "example-key-name").launchTime(dateService.iso8601DateParse("2007-08-07T11:54:42.000Z"))
+ "example-key-name").launchTime(dateService.iso8601DateOrSecondsDateParse("2007-08-07T11:54:42.000Z"))
// MonitoringState.DISABLED,
.availabilityZone("us-east-1b").virtualizationType("paravirtual").privateDnsName(
"10-251-50-132.ec2.internal")// product codes
@@ -104,7 +126,7 @@ public class DescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest {
"i-28a64435").instanceState(InstanceState.RUNNING).rawState("running")
.instanceType(InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName(
"example-key-name").launchTime(
- dateService.iso8601DateParse("2007-08-07T11:54:42.000Z"))
+ dateService.iso8601DateOrSecondsDateParse("2007-08-07T11:54:42.000Z"))
// MonitoringState.DISABLED,
.availabilityZone("us-east-1b").virtualizationType("paravirtual").privateDnsName(
"10-251-50-134.ec2.internal")// product codes
@@ -129,7 +151,7 @@ public class DescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest {
.instanceState(InstanceState.RUNNING).rawState("running").instanceType(InstanceType.M1_SMALL)
.ipAddress("75.101.203.146").kernelId("aki-a71cf9ce")
.keyName("adriancole.ec2ebs1")
- .launchTime(dateService.iso8601DateParse("2009-12-30T04:06:23.000Z"))
+ .launchTime(dateService.iso8601DateOrSecondsDateParse("2009-12-30T04:06:23.000Z"))
// MonitoringState.DISABLED
.availabilityZone("us-east-1b")
// "placement"
@@ -138,7 +160,7 @@ public class DescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest {
.rootDeviceType(RootDeviceType.EBS).rootDeviceName("/dev/sda1").device(
"/dev/sda1",
new BlockDevice("vol-dc6ca8b5", Attachment.Status.ATTACHED, dateService
- .iso8601DateParse("2009-12-30T04:06:29.000Z"), true)).build()),
+ .iso8601DateOrSecondsDateParse("2009-12-30T04:06:29.000Z"), true)).build()),
"993194456877", null, "r-596dd731"));
Set<Reservation<? extends RunningInstance>> result = parseRunningInstances("/describe_instances_ebs.xml");
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/xml/NovaCreateVolumeResponseHandler.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/xml/NovaCreateVolumeResponseHandler.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/xml/NovaCreateVolumeResponseHandler.java
index 8de1f1e..3041b09 100644
--- a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/xml/NovaCreateVolumeResponseHandler.java
+++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/xml/NovaCreateVolumeResponseHandler.java
@@ -21,7 +21,7 @@ import java.util.Set;
import javax.inject.Inject;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Attachment;
import org.jclouds.ec2.domain.Volume;
import org.jclouds.ec2.xml.CreateVolumeResponseHandler;
@@ -33,10 +33,10 @@ import com.google.common.base.Supplier;
public class NovaCreateVolumeResponseHandler extends CreateVolumeResponseHandler {
@Inject
- protected NovaCreateVolumeResponseHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion,
+ protected NovaCreateVolumeResponseHandler(DateService dateService, @Region Supplier<String> defaultRegion,
@Zone Supplier<Map<String, Supplier<Set<String>>>> regionToZonesSupplier,
@Zone Supplier<Set<String>> zonesSupplier) {
- super(dateCodecFactory, defaultRegion, regionToZonesSupplier, zonesSupplier);
+ super(dateService, defaultRegion, regionToZonesSupplier, zonesSupplier);
}
public void endElement(String uri, String name, String qName) {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSDescribeInstancesResponseHandler.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSDescribeInstancesResponseHandler.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSDescribeInstancesResponseHandler.java
index abb2ab2..7c321b7 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSDescribeInstancesResponseHandler.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSDescribeInstancesResponseHandler.java
@@ -22,7 +22,7 @@ import java.util.Set;
import javax.inject.Inject;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Reservation;
import org.jclouds.ec2.domain.RunningInstance;
import org.jclouds.ec2.xml.TagSetHandler;
@@ -48,9 +48,9 @@ public class AWSDescribeInstancesResponseHandler extends
private boolean inTagSet;
@Inject
- AWSDescribeInstancesResponseHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion,
+ AWSDescribeInstancesResponseHandler(DateService dateService, @Region Supplier<String> defaultRegion,
TagSetHandler tagSetHandler) {
- super(dateCodecFactory, defaultRegion);
+ super(dateService, defaultRegion);
this.tagSetHandler = tagSetHandler;
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSRunInstancesResponseHandler.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSRunInstancesResponseHandler.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSRunInstancesResponseHandler.java
index ae8d879..2712d6c 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSRunInstancesResponseHandler.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/AWSRunInstancesResponseHandler.java
@@ -18,7 +18,7 @@ package org.jclouds.aws.ec2.xml;
import javax.inject.Inject;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Reservation;
import org.jclouds.ec2.domain.RunningInstance;
import org.jclouds.location.Region;
@@ -35,8 +35,8 @@ import com.google.common.base.Supplier;
public class AWSRunInstancesResponseHandler extends BaseAWSReservationHandler<Reservation<? extends RunningInstance>> {
@Inject
- AWSRunInstancesResponseHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) {
- super(dateCodecFactory, defaultRegion);
+ AWSRunInstancesResponseHandler(DateService dateService, @Region Supplier<String> defaultRegion) {
+ super(dateService, defaultRegion);
}
@Override
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/BaseAWSReservationHandler.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/BaseAWSReservationHandler.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/BaseAWSReservationHandler.java
index e394fda..141eb18 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/BaseAWSReservationHandler.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/BaseAWSReservationHandler.java
@@ -29,8 +29,7 @@ import javax.inject.Inject;
import org.jclouds.aws.ec2.domain.AWSRunningInstance;
import org.jclouds.aws.ec2.domain.MonitoringState;
import org.jclouds.aws.util.AWSUtils;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.domain.Attachment;
import org.jclouds.ec2.domain.BlockDevice;
import org.jclouds.ec2.domain.Hypervisor;
@@ -53,12 +52,12 @@ public abstract class BaseAWSReservationHandler<T> extends HandlerForGeneratedRe
@Resource
protected Logger logger = Logger.NULL;
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
protected final Supplier<String> defaultRegion;
@Inject
- public BaseAWSReservationHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) {
- this.dateCodec = dateCodecFactory.iso8601();
+ public BaseAWSReservationHandler(DateService dateService, @Region Supplier<String> defaultRegion) {
+ this.dateService = dateService;
this.defaultRegion = defaultRegion;
}
@@ -171,7 +170,7 @@ public abstract class BaseAWSReservationHandler<T> extends HandlerForGeneratedRe
} else if (equalsOrSuffix(qName, "keyName")) {
builder.keyName(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "launchTime")) {
- builder.launchTime(dateCodec.toDate(currentOrNull(currentText)));
+ builder.launchTime(dateService.iso8601DateOrSecondsDateParse(currentOrNull(currentText)));
} else if (equalsOrSuffix(qName, "availabilityZone")) {
builder.availabilityZone(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "virtualizationType")) {
@@ -197,7 +196,7 @@ public abstract class BaseAWSReservationHandler<T> extends HandlerForGeneratedRe
} else if (equalsOrSuffix(qName, "status")) {
attachmentStatus = Attachment.Status.fromValue(currentText.toString().trim());
} else if (equalsOrSuffix(qName, "attachTime")) {
- attachTime = dateCodec.toDate(currentOrNull(currentText));
+ attachTime = dateService.iso8601DateOrSecondsDateParse(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "deleteOnTermination")) {
deleteOnTermination = Boolean.parseBoolean(currentText.toString().trim());
} else if (equalsOrSuffix(qName, "ebs")) {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/LaunchSpecificationHandler.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/LaunchSpecificationHandler.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/LaunchSpecificationHandler.java
index 81a9662..68bed2d 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/LaunchSpecificationHandler.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/LaunchSpecificationHandler.java
@@ -23,8 +23,6 @@ import javax.inject.Inject;
import org.jclouds.aws.ec2.domain.LaunchSpecification;
import org.jclouds.aws.ec2.domain.LaunchSpecification.Builder;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
import org.jclouds.ec2.domain.BlockDeviceMapping;
import org.jclouds.http.functions.ParseSax.HandlerForGeneratedRequestWithResult;
import org.jclouds.logging.Logger;
@@ -35,14 +33,11 @@ public class LaunchSpecificationHandler extends HandlerForGeneratedRequestWithRe
@Resource
protected Logger logger = Logger.NULL;
- protected final DateCodec dateCodec;
protected final Builder builder;
protected final BlockDeviceMapping.Builder blockDeviceMappingBuilder;
@Inject
- public LaunchSpecificationHandler(DateCodecFactory dateCodecFactory, LaunchSpecification.Builder builder,
- BlockDeviceMapping.Builder blockDeviceMappingBuilder) {
- this.dateCodec = dateCodecFactory.iso8601();
+ public LaunchSpecificationHandler(LaunchSpecification.Builder builder, BlockDeviceMapping.Builder blockDeviceMappingBuilder) {
this.builder = builder;
this.blockDeviceMappingBuilder = blockDeviceMappingBuilder;
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotHandler.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotHandler.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotHandler.java
index 4b3d9c7..a040d69 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotHandler.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotHandler.java
@@ -20,8 +20,7 @@ import javax.inject.Inject;
import org.jclouds.aws.ec2.domain.Spot;
import org.jclouds.aws.util.AWSUtils;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.http.functions.ParseSax;
import org.jclouds.location.Region;
@@ -30,12 +29,12 @@ import com.google.common.base.Supplier;
public class SpotHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Spot> {
private StringBuilder currentText = new StringBuilder();
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
protected final Supplier<String> defaultRegion;
@Inject
- public SpotHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) {
- this.dateCodec = dateCodecFactory.iso8601();
+ public SpotHandler(DateService dateService, @Region Supplier<String> defaultRegion) {
+ this.dateService = dateService;
this.defaultRegion = defaultRegion;
}
@@ -60,7 +59,7 @@ public class SpotHandler extends ParseSax.HandlerForGeneratedRequestWithResult<S
} else if (qName.equals("spotPrice")) {
builder.spotPrice(Float.parseFloat(currentText.toString().trim()));
} else if (qName.equals("timestamp")) {
- builder.timestamp(dateCodec.toDate(currentText.toString().trim()));
+ builder.timestamp(dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim()));
} else if (qName.equals("availabilityZone")) {
builder.availabilityZone(currentText.toString().trim());
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/86dadc3a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotInstanceHandler.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotInstanceHandler.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotInstanceHandler.java
index 87ad370..20a71d0 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotInstanceHandler.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/xml/SpotInstanceHandler.java
@@ -24,8 +24,7 @@ import javax.inject.Inject;
import org.jclouds.aws.ec2.domain.SpotInstanceRequest;
import org.jclouds.aws.ec2.domain.SpotInstanceRequest.Builder;
import org.jclouds.aws.util.AWSUtils;
-import org.jclouds.date.DateCodec;
-import org.jclouds.date.DateCodecFactory;
+import org.jclouds.date.DateService;
import org.jclouds.ec2.xml.TagSetHandler;
import org.jclouds.http.functions.ParseSax;
import org.jclouds.location.Region;
@@ -37,7 +36,7 @@ import com.google.common.base.Supplier;
public class SpotInstanceHandler extends ParseSax.HandlerForGeneratedRequestWithResult<SpotInstanceRequest> {
private StringBuilder currentText = new StringBuilder();
- protected final DateCodec dateCodec;
+ protected final DateService dateService;
protected final Supplier<String> defaultRegion;
protected final Builder builder;
protected boolean inFault;
@@ -48,10 +47,10 @@ public class SpotInstanceHandler extends ParseSax.HandlerForGeneratedRequestWith
protected final TagSetHandler tagSetHandler;
@Inject
- public SpotInstanceHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion,
+ public SpotInstanceHandler(DateService dateService, @Region Supplier<String> defaultRegion,
LaunchSpecificationHandler launchSpecificationHandler, TagSetHandler tagSetHandler,
SpotInstanceRequest.Builder builder) {
- this.dateCodec = dateCodecFactory.iso8601();
+ this.dateService = dateService;
this.defaultRegion = defaultRegion;
this.launchSpecificationHandler = launchSpecificationHandler;
this.tagSetHandler = tagSetHandler;
@@ -138,7 +137,7 @@ public class SpotInstanceHandler extends ParseSax.HandlerForGeneratedRequestWith
} else if (qName.equals("createTime")) {
String createTime = currentOrNull(currentText);
if (createTime != null)
- builder.createTime(dateCodec.toDate(createTime));
+ builder.createTime(dateService.iso8601DateOrSecondsDateParse(createTime));
} else if (qName.equals("productDescription")) {
builder.productDescription(currentOrNull(currentText));
} else if (inFault) {
@@ -155,16 +154,16 @@ public class SpotInstanceHandler extends ParseSax.HandlerForGeneratedRequestWith
} else if (qName.equals("updateTime")) {
String updateTime = currentOrNull(currentText);
if (updateTime != null)
- builder.statusUpdateTime(dateCodec.toDate(updateTime));
+ builder.statusUpdateTime(dateService.iso8601DateOrSecondsDateParse(updateTime));
}
} else if (qName.equals("validFrom")) {
String validFrom = currentOrNull(currentText);
if (validFrom != null)
- builder.validFrom(dateCodec.toDate(validFrom));
+ builder.validFrom(dateService.iso8601DateOrSecondsDateParse(validFrom));
} else if (qName.equals("validUntil")) {
String validUntil = currentOrNull(currentText);
if (validUntil != null)
- builder.validUntil(dateCodec.toDate(validUntil));
+ builder.validUntil(dateService.iso8601DateOrSecondsDateParse(validUntil));
}
currentText.setLength(0);
}