diff --git a/google-cloud-clients/google-cloud-compute/pom.xml b/google-cloud-clients/google-cloud-compute/pom.xml index af91537036e3..bd956f431738 100644 --- a/google-cloud-clients/google-cloud-compute/pom.xml +++ b/google-cloud-clients/google-cloud-compute/pom.xml @@ -31,11 +31,6 @@ google-api-services-compute compile - - joda-time - joda-time - compile - diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/AddressInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/AddressInfo.java index 240f40add851..c457d7d5edf9 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/AddressInfo.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/AddressInfo.java @@ -27,8 +27,9 @@ import java.math.BigInteger; import java.util.List; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine address. With Compute Engine you can create static external IP addresses @@ -61,7 +62,8 @@ public Address apply(AddressInfo addressInfo) { }; private static final long serialVersionUID = 7678434703520207500L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final String address; private final Long creationTimestamp; @@ -324,7 +326,10 @@ static final class BuilderImpl extends Builder { } address = addressPb.getAddress(); if (addressPb.getCreationTimestamp() != null) { - creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(addressPb.getCreationTimestamp()); + creationTimestamp = + TIMESTAMP_FORMATTER + .parse(addressPb.getCreationTimestamp(), Instant.FROM) + .toEpochMilli(); } description = addressPb.getDescription(); if (addressPb.getId() != null) { @@ -485,7 +490,8 @@ Address toPb() { Address addressPb = usage != null ? usage.toPb() : new Address(); addressPb.setAddress(address); if (creationTimestamp != null) { - addressPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + addressPb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } addressPb.setDescription(description); if (generatedId != null) { diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DeprecationStatus.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DeprecationStatus.java index a12183335c00..b653188120c8 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DeprecationStatus.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DeprecationStatus.java @@ -22,8 +22,10 @@ import com.google.common.base.MoreObjects; import java.io.Serializable; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; +import org.threeten.bp.format.DateTimeParseException; /** * The deprecation status associated to a Google Compute Engine resource. @@ -33,8 +35,8 @@ public final class DeprecationStatus implements Serializable { private static final long serialVersionUID = -2695077634793679794L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); - private static final DateTimeFormatter TIMESTAMP_PARSER = ISODateTimeFormat.dateTimeParser(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final String deleted; private final String deprecated; @@ -127,7 +129,7 @@ Builder setObsolete(String obsolete) { * to {@link Status#DELETED}. In milliseconds since epoch. */ public Builder setDeleted(long deleted) { - this.deleted = TIMESTAMP_FORMATTER.print(deleted); + this.deleted = TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(deleted)); return this; } @@ -136,7 +138,7 @@ public Builder setDeleted(long deleted) { * to {@link Status#DEPRECATED}. In milliseconds since epoch. */ public Builder setDeprecated(long deprecated) { - this.deprecated = TIMESTAMP_FORMATTER.print(deprecated); + this.deprecated = TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(deprecated)); return this; } @@ -145,7 +147,7 @@ public Builder setDeprecated(long deprecated) { * to {@link Status#OBSOLETE}. In milliseconds since epoch. */ public Builder setObsolete(long obsolete) { - this.obsolete = TIMESTAMP_FORMATTER.print(obsolete); + this.obsolete = TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(obsolete)); return this; } @@ -222,8 +224,10 @@ public String getObsolete() { */ public Long getDeletedMillis() { try { - return deleted != null ? TIMESTAMP_PARSER.parseMillis(deleted) : null; - } catch (IllegalArgumentException ex) { + return deleted != null + ? TIMESTAMP_FORMATTER.parse(deleted, Instant.FROM).toEpochMilli() + : null; + } catch (DateTimeParseException ex) { throw new IllegalStateException(ex.getMessage(), ex); } } @@ -236,8 +240,10 @@ public Long getDeletedMillis() { */ public Long getDeprecatedMillis() { try { - return deprecated != null ? TIMESTAMP_PARSER.parseMillis(deprecated) : null; - } catch (IllegalArgumentException ex) { + return deprecated != null + ? TIMESTAMP_FORMATTER.parse(deprecated, Instant.FROM).toEpochMilli() + : null; + } catch (DateTimeParseException ex) { throw new IllegalStateException(ex.getMessage(), ex); } } @@ -250,8 +256,10 @@ public Long getDeprecatedMillis() { */ public Long getObsoleteMillis() { try { - return obsolete != null ? TIMESTAMP_PARSER.parseMillis(obsolete) : null; - } catch (IllegalArgumentException ex) { + return obsolete != null + ? TIMESTAMP_FORMATTER.parse(obsolete, Instant.FROM).toEpochMilli() + : null; + } catch (DateTimeParseException ex) { throw new IllegalStateException(ex.getMessage(), ex); } } diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskInfo.java index 9fcf3e877931..17ab780a1e05 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskInfo.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskInfo.java @@ -27,8 +27,9 @@ import java.math.BigInteger; import java.util.List; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine persistent disk. A disk can be used as primary storage for your virtual @@ -54,7 +55,8 @@ public Disk apply(DiskInfo diskType) { }; private static final long serialVersionUID = -7173418340679279619L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final String generatedId; private final DiskId diskId; @@ -149,7 +151,8 @@ static final class BuilderImpl extends Builder { } this.configuration = DiskConfiguration.fromPb(diskPb); if (diskPb.getCreationTimestamp() != null) { - this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(diskPb.getCreationTimestamp()); + this.creationTimestamp = + TIMESTAMP_FORMATTER.parse(diskPb.getCreationTimestamp(), Instant.FROM).toEpochMilli(); } if (diskPb.getStatus() != null) { this.creationStatus = CreationStatus.valueOf(diskPb.getStatus()); @@ -163,10 +166,12 @@ static final class BuilderImpl extends Builder { this.attachedInstances = Lists.transform(diskPb.getUsers(), InstanceId.FROM_URL_FUNCTION); } if (diskPb.getLastAttachTimestamp() != null) { - this.lastAttachTimestamp = TIMESTAMP_FORMATTER.parseMillis(diskPb.getLastAttachTimestamp()); + this.lastAttachTimestamp = + TIMESTAMP_FORMATTER.parse(diskPb.getLastAttachTimestamp(), Instant.FROM).toEpochMilli(); } if (diskPb.getLastDetachTimestamp() != null) { - this.lastDetachTimestamp = TIMESTAMP_FORMATTER.parseMillis(diskPb.getLastDetachTimestamp()); + this.lastDetachTimestamp = + TIMESTAMP_FORMATTER.parse(diskPb.getLastDetachTimestamp(), Instant.FROM).toEpochMilli(); } } @@ -377,7 +382,8 @@ Disk toPb() { diskPb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - diskPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + diskPb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } diskPb.setZone(diskId.getZoneId().getSelfLink()); if (creationStatus != null) { @@ -393,10 +399,12 @@ Disk toPb() { diskPb.setUsers(Lists.transform(attachedInstances, InstanceId.TO_URL_FUNCTION)); } if (lastAttachTimestamp != null) { - diskPb.setLastAttachTimestamp(TIMESTAMP_FORMATTER.print(lastAttachTimestamp)); + diskPb.setLastAttachTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(lastAttachTimestamp))); } if (lastDetachTimestamp != null) { - diskPb.setLastDetachTimestamp(TIMESTAMP_FORMATTER.print(lastDetachTimestamp)); + diskPb.setLastDetachTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(lastDetachTimestamp))); } return diskPb; } diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskType.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskType.java index 4ab406628697..24b1288eba5c 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskType.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskType.java @@ -21,8 +21,9 @@ import java.io.Serializable; import java.math.BigInteger; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine disk type. A disk type represents the type of disk to use, such as {@code @@ -48,7 +49,8 @@ public com.google.api.services.compute.model.DiskType apply(DiskType diskType) { }; private static final long serialVersionUID = -944042261695072026L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final String generatedId; private final DiskTypeId diskTypeId; @@ -191,7 +193,8 @@ com.google.api.services.compute.model.DiskType toPb() { diskTypePb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - diskTypePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + diskTypePb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } diskTypePb.setDescription(description); diskTypePb.setValidDiskSize(validDiskSize); @@ -215,7 +218,9 @@ static DiskType fromPb(com.google.api.services.compute.model.DiskType diskTypePb } if (diskTypePb.getCreationTimestamp() != null) { builder.setCreationTimestamp( - TIMESTAMP_FORMATTER.parseMillis(diskTypePb.getCreationTimestamp())); + TIMESTAMP_FORMATTER + .parse(diskTypePb.getCreationTimestamp(), Instant.FROM) + .toEpochMilli()); } builder.setDiskTypeId(DiskTypeId.fromUrl(diskTypePb.getSelfLink())); builder.setDescription(diskTypePb.getDescription()); diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/ImageInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/ImageInfo.java index b56c85dddaf6..4531524b9df3 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/ImageInfo.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/ImageInfo.java @@ -27,8 +27,9 @@ import java.math.BigInteger; import java.util.List; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine Image. An image contains a boot loader, an operating system and a root @@ -59,7 +60,8 @@ public Image apply(ImageInfo image) { }; private static final long serialVersionUID = -1061916352807358977L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final String generatedId; private final ImageId imageId; @@ -149,7 +151,8 @@ static final class BuilderImpl extends Builder { this.generatedId = imagePb.getId().toString(); } if (imagePb.getCreationTimestamp() != null) { - this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(imagePb.getCreationTimestamp()); + this.creationTimestamp = + TIMESTAMP_FORMATTER.parse(imagePb.getCreationTimestamp(), Instant.FROM).toEpochMilli(); } this.imageId = ImageId.fromUrl(imagePb.getSelfLink()); this.description = imagePb.getDescription(); @@ -350,7 +353,8 @@ Image toPb() { imagePb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - imagePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + imagePb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } imagePb.setName(imageId.getImage()); imagePb.setDescription(description); diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/InstanceInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/InstanceInfo.java index 5502d71ac6ab..06b19803d5e0 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/InstanceInfo.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/InstanceInfo.java @@ -28,8 +28,9 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine VM Instance. An instance is a virtual machine (VM) hosted on Google's @@ -67,7 +68,8 @@ public Instance apply(InstanceInfo instance) { }; private static final long serialVersionUID = -6601223112628977168L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final String generatedId; private final InstanceId instanceId; @@ -243,7 +245,10 @@ public static final class BuilderImpl extends Builder { } this.instanceId = InstanceId.fromUrl(instancePb.getSelfLink()); if (instancePb.getCreationTimestamp() != null) { - this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(instancePb.getCreationTimestamp()); + this.creationTimestamp = + TIMESTAMP_FORMATTER + .parse(instancePb.getCreationTimestamp(), Instant.FROM) + .toEpochMilli(); } this.description = instancePb.getDescription(); if (instancePb.getStatus() != null) { @@ -585,7 +590,8 @@ Instance toPb() { instancePb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - instancePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + instancePb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } instancePb.setName(instanceId.getInstance()); instancePb.setDescription(description); diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/MachineType.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/MachineType.java index fe71eb8b6ee6..4ac86b8b672f 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/MachineType.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/MachineType.java @@ -24,8 +24,9 @@ import java.math.BigInteger; import java.util.List; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine machine type. A machine type determine the virtualized hardware @@ -52,7 +53,8 @@ public com.google.api.services.compute.model.MachineType apply(MachineType type) return type.toPb(); } }; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private static final long serialVersionUID = -4210962597502860450L; @@ -241,7 +243,8 @@ com.google.api.services.compute.model.MachineType toPb() { machineTypePb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - machineTypePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + machineTypePb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } machineTypePb.setName(machineTypeId.getType()); machineTypePb.setDescription(description); @@ -280,7 +283,9 @@ static MachineType fromPb(com.google.api.services.compute.model.MachineType mach } if (machineTypePb.getCreationTimestamp() != null) { builder.setCreationTimestamp( - TIMESTAMP_FORMATTER.parseMillis(machineTypePb.getCreationTimestamp())); + TIMESTAMP_FORMATTER + .parse(machineTypePb.getCreationTimestamp(), Instant.FROM) + .toEpochMilli()); } builder.setDescription(machineTypePb.getDescription()); builder.setCpus(machineTypePb.getGuestCpus()); diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/NetworkInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/NetworkInfo.java index c86e778f9cc5..978d662e600a 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/NetworkInfo.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/NetworkInfo.java @@ -24,8 +24,9 @@ import java.io.Serializable; import java.math.BigInteger; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine Network. Every virtual machine instance is created as a member of a @@ -56,7 +57,8 @@ public Network apply(NetworkInfo network) { }; private static final long serialVersionUID = 4336912581538114026L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final String generatedId; private final NetworkId networkId; @@ -115,7 +117,10 @@ static final class BuilderImpl extends Builder { this.generatedId = networkPb.getId().toString(); } if (networkPb.getCreationTimestamp() != null) { - this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(networkPb.getCreationTimestamp()); + this.creationTimestamp = + TIMESTAMP_FORMATTER + .parse(networkPb.getCreationTimestamp(), Instant.FROM) + .toEpochMilli(); } this.networkId = NetworkId.fromUrl(networkPb.getSelfLink()); this.description = networkPb.getDescription(); @@ -235,7 +240,8 @@ Network toPb() { networkPb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - networkPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + networkPb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } networkPb.setName(networkId.getNetwork()); networkPb.setDescription(description); diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Operation.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Operation.java index f63f080a0aa4..80d819c4de35 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Operation.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Operation.java @@ -38,9 +38,10 @@ import java.util.Objects; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; import org.threeten.bp.Duration; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * Google Compute Engine operations. Operation identity can be obtained via {@link @@ -52,7 +53,8 @@ public class Operation implements Serializable { private static final long serialVersionUID = -8979001444590023899L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final RetrySettings DEFAULT_OPERATION_WAIT_SETTINGS = RetrySettings.newBuilder() @@ -350,13 +352,15 @@ static final class Builder { user = operationPb.getUser(); progress = operationPb.getProgress(); if (operationPb.getInsertTime() != null) { - insertTime = TIMESTAMP_FORMATTER.parseMillis(operationPb.getInsertTime()); + insertTime = + TIMESTAMP_FORMATTER.parse(operationPb.getInsertTime(), Instant.FROM).toEpochMilli(); } if (operationPb.getStartTime() != null) { - startTime = TIMESTAMP_FORMATTER.parseMillis(operationPb.getStartTime()); + startTime = + TIMESTAMP_FORMATTER.parse(operationPb.getStartTime(), Instant.FROM).toEpochMilli(); } if (operationPb.getEndTime() != null) { - endTime = TIMESTAMP_FORMATTER.parseMillis(operationPb.getEndTime()); + endTime = TIMESTAMP_FORMATTER.parse(operationPb.getEndTime(), Instant.FROM).toEpochMilli(); } if (operationPb.getError() != null && operationPb.getError().getErrors() != null) { errors = @@ -810,13 +814,13 @@ com.google.api.services.compute.model.Operation toPb() { operationPb.setUser(user); operationPb.setProgress(progress); if (insertTime != null) { - operationPb.setInsertTime(TIMESTAMP_FORMATTER.print(insertTime)); + operationPb.setInsertTime(TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(insertTime))); } if (startTime != null) { - operationPb.setStartTime(TIMESTAMP_FORMATTER.print(startTime)); + operationPb.setStartTime(TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(startTime))); } if (endTime != null) { - operationPb.setEndTime(TIMESTAMP_FORMATTER.print(endTime)); + operationPb.setEndTime(TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(endTime))); } if (errors != null) { operationPb.setError( diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Region.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Region.java index f95faadb8fa7..ff332d1ff783 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Region.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Region.java @@ -27,8 +27,9 @@ import java.math.BigInteger; import java.util.List; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine region. @@ -53,7 +54,8 @@ public com.google.api.services.compute.model.Region apply(Region region) { }; private static final long serialVersionUID = -3578710133393645135L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final RegionId regionId; private final String generatedId; @@ -335,7 +337,8 @@ com.google.api.services.compute.model.Region toPb() { regionPb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - regionPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + regionPb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } regionPb.setName(regionId.getRegion()); regionPb.setDescription(description); @@ -367,7 +370,7 @@ static Region fromPb(com.google.api.services.compute.model.Region regionPb) { } if (regionPb.getCreationTimestamp() != null) { builder.setCreationTimestamp( - TIMESTAMP_FORMATTER.parseMillis(regionPb.getCreationTimestamp())); + TIMESTAMP_FORMATTER.parse(regionPb.getCreationTimestamp(), Instant.FROM).toEpochMilli()); } builder.setDescription(regionPb.getDescription()); if (regionPb.getStatus() != null) { diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SnapshotInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SnapshotInfo.java index f1032bcec95b..9651024347f7 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SnapshotInfo.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SnapshotInfo.java @@ -27,8 +27,9 @@ import java.math.BigInteger; import java.util.List; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine snapshot. Compute Engine allows you to take snapshots of your persistent @@ -57,7 +58,8 @@ public Snapshot apply(SnapshotInfo snapshot) { }; private static final long serialVersionUID = 1065513502131159769L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final String generatedId; private final SnapshotId snapshotId; @@ -171,7 +173,10 @@ static final class BuilderImpl extends Builder { this.generatedId = snapshotPb.getId().toString(); } if (snapshotPb.getCreationTimestamp() != null) { - this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(snapshotPb.getCreationTimestamp()); + this.creationTimestamp = + TIMESTAMP_FORMATTER + .parse(snapshotPb.getCreationTimestamp(), Instant.FROM) + .toEpochMilli(); } this.snapshotId = SnapshotId.fromUrl(snapshotPb.getSelfLink()); this.description = snapshotPb.getDescription(); @@ -408,7 +413,8 @@ Snapshot toPb() { snapshotPb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - snapshotPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + snapshotPb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } snapshotPb.setName(snapshotId.getSnapshot()); snapshotPb.setDescription(description); diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SubnetworkInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SubnetworkInfo.java index 8dfea5ea5d24..896341f65004 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SubnetworkInfo.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SubnetworkInfo.java @@ -24,8 +24,9 @@ import java.io.Serializable; import java.math.BigInteger; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine subnetwork. Compute Engine subnetworks allow you to segment your Compute @@ -52,7 +53,8 @@ public Subnetwork apply(SubnetworkInfo subnetwork) { }; private static final long serialVersionUID = 7491176262675441579L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final String generatedId; private final SubnetworkId subnetworkId; @@ -128,7 +130,9 @@ static final class BuilderImpl extends Builder { } if (subnetworkPb.getCreationTimestamp() != null) { this.creationTimestamp = - TIMESTAMP_FORMATTER.parseMillis(subnetworkPb.getCreationTimestamp()); + TIMESTAMP_FORMATTER + .parse(subnetworkPb.getCreationTimestamp(), Instant.FROM) + .toEpochMilli(); } this.subnetworkId = SubnetworkId.fromUrl(subnetworkPb.getSelfLink()); this.description = subnetworkPb.getDescription(); @@ -292,7 +296,8 @@ Subnetwork toPb() { subnetworkPb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - subnetworkPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + subnetworkPb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } subnetworkPb.setName(subnetworkId.getSubnetwork()); subnetworkPb.setDescription(description); diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Zone.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Zone.java index 33ad7a9442cc..527255ff8ca1 100644 --- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Zone.java +++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Zone.java @@ -24,8 +24,9 @@ import java.io.Serializable; import java.math.BigInteger; import java.util.Objects; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * A Google Compute Engine zone. @@ -50,7 +51,8 @@ public com.google.api.services.compute.model.Zone apply(Zone region) { }; private static final long serialVersionUID = 6113636504417213010L; - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC); private final ZoneId zoneId; private final String generatedId; @@ -236,7 +238,8 @@ com.google.api.services.compute.model.Zone toPb() { zonePb.setId(new BigInteger(generatedId)); } if (creationTimestamp != null) { - zonePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp)); + zonePb.setCreationTimestamp( + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp))); } zonePb.setName(zoneId.getZone()); zonePb.setDescription(description); @@ -264,7 +267,8 @@ static Zone fromPb(com.google.api.services.compute.model.Zone zonePb) { builder.setGeneratedId(zonePb.getId().toString()); } if (zonePb.getCreationTimestamp() != null) { - builder.setCreationTimestamp(TIMESTAMP_FORMATTER.parseMillis(zonePb.getCreationTimestamp())); + builder.setCreationTimestamp( + TIMESTAMP_FORMATTER.parse(zonePb.getCreationTimestamp(), Instant.FROM).toEpochMilli()); } builder.setDescription(zonePb.getDescription()); if (zonePb.getStatus() != null) { diff --git a/google-cloud-clients/google-cloud-compute/src/test/java/com/google/cloud/compute/deprecated/DeprecationStatusTest.java b/google-cloud-clients/google-cloud-compute/src/test/java/com/google/cloud/compute/deprecated/DeprecationStatusTest.java index 1c6f42fd3b8f..72d36b24baed 100644 --- a/google-cloud-clients/google-cloud-compute/src/test/java/com/google/cloud/compute/deprecated/DeprecationStatusTest.java +++ b/google-cloud-clients/google-cloud-compute/src/test/java/com/google/cloud/compute/deprecated/DeprecationStatusTest.java @@ -20,19 +20,24 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; import org.junit.Test; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; public class DeprecationStatusTest { - private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime(); + private static final DateTimeFormatter TIMESTAMP_FORMATTER = + DateTimeFormatter.ISO_INSTANT.withZone(ZoneOffset.UTC); private static final Long DELETED_MILLIS = 1453293540000L; private static final Long DEPRECATED_MILLIS = 1453293420000L; private static final Long OBSOLETE_MILLIS = 1453293480000L; - private static final String DELETED = TIMESTAMP_FORMATTER.print(DELETED_MILLIS); - private static final String DEPRECATED = TIMESTAMP_FORMATTER.print(DEPRECATED_MILLIS); - private static final String OBSOLETE = TIMESTAMP_FORMATTER.print(OBSOLETE_MILLIS); + private static final String DELETED = + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(DELETED_MILLIS)); + private static final String DEPRECATED = + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(DEPRECATED_MILLIS)); + private static final String OBSOLETE = + TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(OBSOLETE_MILLIS)); private static final DiskTypeId DISK_TYPE_ID = DiskTypeId.of("project", "zone", "diskType"); private static final MachineTypeId MACHINE_TYPE_ID = MachineTypeId.of("project", "zone", "machineType"); diff --git a/google-cloud-clients/pom.xml b/google-cloud-clients/pom.xml index a3d2a9a161d6..0bf1f0e6b1e9 100644 --- a/google-cloud-clients/pom.xml +++ b/google-cloud-clients/pom.xml @@ -288,11 +288,6 @@ grpc-testing ${grpc.version} - - joda-time - joda-time - 2.9.2 - com.google.code.findbugs jsr305 diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/BigQuerySnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/BigQuerySnippets.java index b319c55582be..f0c91d62344c 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/BigQuerySnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/BigQuerySnippets.java @@ -70,7 +70,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.TimeoutException; -import org.joda.time.DateTime; +import org.threeten.bp.Instant; +import org.threeten.bp.temporal.ChronoUnit; /** This class contains a number of snippets for the {@link BigQuery} interface. */ public class BigQuerySnippets { @@ -134,7 +135,7 @@ public Table updateTableExpiration(String datasetName, String tableName) { Table beforeTable = bigquery.getTable(datasetName, tableName); // Set table to expire 5 days from now. - long expirationMillis = DateTime.now().plusDays(5).getMillis(); + long expirationMillis = Instant.now().plus(5, ChronoUnit.DAYS).toEpochMilli(); TableInfo tableInfo = beforeTable.toBuilder().setExpirationTime(expirationMillis).build(); Table afterTable = bigquery.update(tableInfo); // [END bigquery_update_table_expiration] diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java index 39a10a3e915a..042020abf83f 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java @@ -31,11 +31,11 @@ import com.google.cloud.bigquery.TableId; import java.util.Arrays; import java.util.concurrent.TimeoutException; -import org.joda.time.DateTime; -import org.joda.time.DateTimeZone; -import org.joda.time.Instant; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; +import org.threeten.bp.Instant; +import org.threeten.bp.LocalDateTime; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.ZonedDateTime; +import org.threeten.bp.format.DateTimeFormatter; /** This class contains snippets for cloud.google.com documentation. */ public class CloudSnippets { @@ -235,7 +235,7 @@ public void runQueryWithArrayParameters() throws InterruptedException { public void runQueryWithTimestampParameters() throws InterruptedException { // [START bigquery_query_params_timestamps] // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - DateTime timestamp = new DateTime(2016, 12, 7, 8, 0, 0, DateTimeZone.UTC); + ZonedDateTime timestamp = LocalDateTime.of(2016, 12, 7, 8, 0, 0).atZone(ZoneOffset.UTC); String query = "SELECT TIMESTAMP_ADD(@ts_value, INTERVAL 1 HOUR);"; // Note: Standard SQL is required to use query parameters. QueryJobConfiguration queryConfig = @@ -244,19 +244,21 @@ public void runQueryWithTimestampParameters() throws InterruptedException { "ts_value", QueryParameterValue.timestamp( // Timestamp takes microseconds since 1970-01-01T00:00:00 UTC - timestamp.getMillis() * 1000)) + timestamp.toInstant().toEpochMilli() * 1000)) .build(); // Print the results. - DateTimeFormatter formatter = ISODateTimeFormat.dateTimeNoMillis().withZoneUTC(); + DateTimeFormatter formatter = DateTimeFormatter.ISO_INSTANT.withZone(ZoneOffset.UTC); for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) { System.out.printf( "%s\n", - formatter.print( - new DateTime( - // Timestamp values are returned in microseconds since 1970-01-01T00:00:00 UTC, - // but org.joda.time.DateTime constructor accepts times in milliseconds. - row.get(0).getTimestampValue() / 1000, DateTimeZone.UTC))); + formatter.format( + Instant.ofEpochMilli( + // Timestamp values are returned in microseconds since 1970-01-01T00:00:00 + // UTC, + // but org.joda.time.DateTime constructor accepts times in milliseconds. + row.get(0).getTimestampValue() / 1000) + .atOffset(ZoneOffset.UTC))); System.out.printf("\n"); } // [END bigquery_query_params_timestamps] @@ -330,7 +332,7 @@ public void undeleteTable(String datasetId) throws InterruptedException { // Record the current time. We'll use this as the snapshot time // for recovering the table. - long snapTime = Instant.now().getMillis(); + long snapTime = Instant.now().toEpochMilli(); // "Accidentally" delete the table. bigquery.delete(TableId.of(datasetId, tableId)); diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/dns/DnsExample.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/dns/DnsExample.java index c07c3c6fbafb..80c8526fec20 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/dns/DnsExample.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/dns/DnsExample.java @@ -31,8 +31,9 @@ import java.util.Iterator; import java.util.Map; import java.util.concurrent.TimeUnit; -import org.joda.time.format.DateTimeFormat; -import org.joda.time.format.DateTimeFormatter; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; /** * An example of using Google Cloud DNS. @@ -63,7 +64,7 @@ public class DnsExample { private static final Map ACTIONS = new HashMap<>(); private static final DateTimeFormatter FORMATTER = - DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss"); + DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss").withZone(ZoneOffset.UTC); private interface DnsAction { void run(Dns dns, String... args); @@ -331,7 +332,8 @@ public void run(Dns dns, String... args) { ChangeRequest change = iterator.next(); System.out.printf("%nID: %s%n", change.getGeneratedId()); System.out.printf("Status: %s%n", change.status()); - System.out.printf("Started: %s%n", FORMATTER.print(change.getStartTimeMillis())); + System.out.printf( + "Started: %s%n", FORMATTER.format(Instant.ofEpochMilli(change.getStartTimeMillis()))); System.out.printf("Deletions: %s%n", Joiner.on(", ").join(change.getDeletions())); System.out.printf("Additions: %s%n", Joiner.on(", ").join(change.getAdditions())); } @@ -434,7 +436,8 @@ private static void printZone(Zone zone) { System.out.printf("%nName: %s%n", zone.getName()); System.out.printf("ID: %s%n", zone.getGeneratedId()); System.out.printf("Description: %s%n", zone.getDescription()); - System.out.printf("Created: %s%n", FORMATTER.print(zone.getCreationTimeMillis())); + System.out.printf( + "Created: %s%n", FORMATTER.format(Instant.ofEpochMilli(zone.getCreationTimeMillis()))); System.out.printf("Name servers: %s%n", Joiner.on(", ").join(zone.getNameServers())); }