diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/BridgeInternal.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/BridgeInternal.java index bb7fff79c054..421eaba5bebf 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/BridgeInternal.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/BridgeInternal.java @@ -40,7 +40,7 @@ import java.net.URI; import java.nio.ByteBuffer; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.Collection; import java.util.List; import java.util.Map; @@ -341,7 +341,7 @@ public static void setResourceSelfLink(Resource resource, String selfLink) { } @Warning(value = INTERNAL_USE_ONLY_WARNING) - public static void setTimestamp(Resource resource, OffsetDateTime date) { + public static void setTimestamp(Resource resource, Instant date) { ModelBridgeInternal.setTimestamp(resource, date); } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/ClientSideRequestStatistics.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/ClientSideRequestStatistics.java index 7ccd1c51c72a..79171b6ba3b9 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/ClientSideRequestStatistics.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/ClientSideRequestStatistics.java @@ -11,7 +11,7 @@ import com.azure.cosmos.implementation.RxDocumentServiceRequest; import com.azure.cosmos.implementation.SerializationDiagnosticsContext; import com.azure.cosmos.implementation.Utils; -import com.azure.cosmos.implementation.ZonedDateTimeSerializer; +import com.azure.cosmos.implementation.DiagnosticsInstantSerializer; import com.azure.cosmos.implementation.directconnectivity.DirectBridgeInternal; import com.azure.cosmos.implementation.directconnectivity.StoreResponse; import com.azure.cosmos.implementation.directconnectivity.StoreResult; @@ -26,9 +26,7 @@ import java.lang.management.ManagementFactory; import java.net.URI; import java.time.Duration; -import java.time.LocalDateTime; -import java.time.ZoneOffset; -import java.time.ZonedDateTime; +import java.time.Instant; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collections; @@ -54,8 +52,8 @@ class ClientSideRequestStatistics { private List contactedReplicas; private Set failedReplicas; - private ZonedDateTime requestStartTimeUTC; - private ZonedDateTime requestEndTimeUTC; + private Instant requestStartTimeUTC; + private Instant requestEndTimeUTC; private Set regionsContacted; private RetryContext retryContext; private GatewayStatistics gatewayStatistics; @@ -64,8 +62,8 @@ class ClientSideRequestStatistics { private SerializationDiagnosticsContext serializationDiagnosticsContext; ClientSideRequestStatistics() { - this.requestStartTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); - this.requestEndTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + this.requestStartTimeUTC = Instant.now(); + this.requestEndTimeUTC = Instant.now(); this.responseStatisticsList = new ArrayList<>(); this.supplementalResponseStatisticsList = new ArrayList<>(); this.addressResolutionStatistics = new HashMap<>(); @@ -83,7 +81,7 @@ Duration getDuration() { void recordResponse(RxDocumentServiceRequest request, StoreResult storeResult) { Objects.requireNonNull(request, "request is required and cannot be null."); - ZonedDateTime responseTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant responseTime = Instant.now(); connectionMode = ConnectionMode.DIRECT; StoreResponseStatistics storeResponseStatistics = new StoreResponseStatistics(); @@ -121,7 +119,7 @@ void recordResponse(RxDocumentServiceRequest request, StoreResult storeResult) { void recordGatewayResponse( RxDocumentServiceRequest rxDocumentServiceRequest, StoreResponse storeResponse, CosmosException exception) { - ZonedDateTime responseTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant responseTime = Instant.now(); connectionMode = ConnectionMode.GATEWAY; synchronized (this) { if (responseTime.isAfter(this.requestEndTimeUTC)) { @@ -131,7 +129,7 @@ void recordGatewayResponse( if (rxDocumentServiceRequest != null && rxDocumentServiceRequest.requestContext != null && rxDocumentServiceRequest.requestContext.retryContext != null) { - rxDocumentServiceRequest.requestContext.retryContext.retryEndTime = ZonedDateTime.now(ZoneOffset.UTC); + rxDocumentServiceRequest.requestContext.retryContext.retryEndTime = Instant.now(); this.retryContext = new RetryContext(rxDocumentServiceRequest.requestContext.retryContext); } @@ -163,9 +161,9 @@ String recordAddressResolutionStart(URI targetEndpoint) { String identifier = Utils.randomUUID().toString(); AddressResolutionStatistics resolutionStatistics = new AddressResolutionStatistics(); - resolutionStatistics.startTime = ZonedDateTime.now(ZoneOffset.UTC); + resolutionStatistics.startTime = Instant.now(); // Very far in the future - resolutionStatistics.endTime = ZonedDateTime.of(LocalDateTime.MAX, ZoneOffset.UTC); + resolutionStatistics.endTime = Instant.MAX; resolutionStatistics.targetEndpoint = targetEndpoint == null ? "" : targetEndpoint.toString(); synchronized (this) { @@ -179,7 +177,7 @@ void recordAddressResolutionEnd(String identifier) { if (StringUtils.isEmpty(identifier)) { return; } - ZonedDateTime responseTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant responseTime = Instant.now(); synchronized (this) { if (!this.addressResolutionStatistics.containsKey(identifier)) { @@ -230,7 +228,7 @@ SerializationDiagnosticsContext getSerializationDiagnosticsContext(){ void recordRetryContext(RxDocumentServiceRequest request) { if(request.requestContext.retryContext != null) { - request.requestContext.retryContext.retryEndTime = ZonedDateTime.now(ZoneOffset.UTC); + request.requestContext.retryContext.retryEndTime = Instant.now(); this.retryContext = new RetryContext(request.requestContext.retryContext); } } @@ -238,8 +236,8 @@ void recordRetryContext(RxDocumentServiceRequest request) { static class StoreResponseStatistics { @JsonSerialize(using = StoreResult.StoreResultSerializer.class) StoreResult storeResult; - @JsonSerialize(using = ZonedDateTimeSerializer.class) - ZonedDateTime requestResponseTime; + @JsonSerialize(using = DiagnosticsInstantSerializer.class) + Instant requestResponseTime; ResourceType requestResourceType; OperationType requestOperationType; } @@ -282,8 +280,8 @@ public void serialize( generator.writeStartObject(); long requestLatency = statistics.getDuration().toMillis(); generator.writeNumberField("requestLatency", requestLatency); - generator.writeStringField("requestStartTimeUTC", ZonedDateTimeSerializer.formatDateTime(statistics.requestStartTimeUTC)); - generator.writeStringField("requestEndTimeUTC", ZonedDateTimeSerializer.formatDateTime(statistics.requestEndTimeUTC)); + generator.writeStringField("requestStartTimeUTC", DiagnosticsInstantSerializer.formatDateTime(statistics.requestStartTimeUTC)); + generator.writeStringField("requestEndTimeUTC", DiagnosticsInstantSerializer.formatDateTime(statistics.requestEndTimeUTC)); generator.writeObjectField("connectionMode", statistics.connectionMode); generator.writeObjectField("responseStatisticsList", statistics.responseStatisticsList); int supplementalResponseStatisticsListCount = statistics.supplementalResponseStatisticsList.size(); @@ -328,10 +326,10 @@ public void serialize( } private static class AddressResolutionStatistics { - @JsonSerialize(using = ZonedDateTimeSerializer.class) - ZonedDateTime startTime; - @JsonSerialize(using = ZonedDateTimeSerializer.class) - ZonedDateTime endTime; + @JsonSerialize(using = DiagnosticsInstantSerializer.class) + Instant startTime; + @JsonSerialize(using = DiagnosticsInstantSerializer.class) + Instant endTime; String targetEndpoint; } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ChangeFeedOptions.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ChangeFeedOptions.java index dfc0adad7df6..e7e3d417754c 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ChangeFeedOptions.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ChangeFeedOptions.java @@ -5,7 +5,7 @@ import com.azure.cosmos.models.PartitionKey; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.Map; /** @@ -15,7 +15,7 @@ public final class ChangeFeedOptions { private String partitionKeyRangeId; private boolean startFromBeginning; - private OffsetDateTime startDateTime; + private Instant startDateTime; private Integer maxItemCount; private String requestContinuation; private PartitionKey partitionkey; @@ -101,23 +101,23 @@ public ChangeFeedOptions setStartFromBeginning(boolean startFromBeginning) { } /** - * Gets the zoned date time to start looking for changes after. + * Gets the instant time to start looking for changes after. * - * @return a zoned date time to start looking for changes after, if set or null + * @return a instant time to start looking for changes after, if set or null * otherwise */ - public OffsetDateTime getStartDateTime() { + public Instant getStartDateTime() { return startDateTime; } /** - * Sets the zoned date time (exclusive) to start looking for changes after. If + * Sets the instant time (exclusive) to start looking for changes after. If * this is specified, startFromBeginning is ignored. * - * @param startDateTime a zoned date time to start looking for changes after. + * @param startDateTime a instant time to start looking for changes after. * @return the ChangeFeedOptions. */ - public ChangeFeedOptions setStartDateTime(OffsetDateTime startDateTime) { + public ChangeFeedOptions setStartDateTime(Instant startDateTime) { this.startDateTime = startDateTime; return this; } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ChangeFeedQueryImpl.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ChangeFeedQueryImpl.java index ad152b8a213b..736919da2e8e 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ChangeFeedQueryImpl.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ChangeFeedQueryImpl.java @@ -10,6 +10,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.time.ZoneOffset; import java.util.HashMap; import java.util.Map; import java.util.function.BiFunction; @@ -95,7 +96,7 @@ private RxDocumentServiceRequest createDocumentServiceRequest(String continuatio } if(options.getStartDateTime() != null){ - String dateTimeInHttpFormat = Utils.zonedDateTimeAsUTCRFC1123(options.getStartDateTime()); + String dateTimeInHttpFormat = Utils.zonedDateTimeAsUTCRFC1123(options.getStartDateTime().atOffset(ZoneOffset.UTC)); headers.put(HttpConstants.HttpHeaders.IF_MODIFIED_SINCE, dateTimeInHttpFormat); } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ZonedDateTimeSerializer.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/DiagnosticsInstantSerializer.java similarity index 60% rename from sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ZonedDateTimeSerializer.java rename to sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/DiagnosticsInstantSerializer.java index ff9f8c409e80..5fdb768907e8 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ZonedDateTimeSerializer.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/DiagnosticsInstantSerializer.java @@ -4,34 +4,35 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializer; import java.io.IOException; -import java.time.ZonedDateTime; +import java.time.Instant; +import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.util.Locale; -public class ZonedDateTimeSerializer extends StdSerializer { +public class DiagnosticsInstantSerializer extends InstantSerializer { private static final long serialVersionUID = 1477047422582342157L; private static final DateTimeFormatter RESPONSE_TIME_FORMATTER = - DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss" + ".SSS").withLocale(Locale.US); + DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss" + ".SSS").withLocale(Locale.US).withZone(ZoneOffset.UTC); - public ZonedDateTimeSerializer() { - super(ZonedDateTime.class); + public DiagnosticsInstantSerializer() { + super(); } @Override - public void serialize(ZonedDateTime zonedDateTime, + public void serialize(Instant instant, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { - jsonGenerator.writeObject(formatDateTime(zonedDateTime)); + jsonGenerator.writeObject(formatDateTime(instant)); } - public static String formatDateTime(ZonedDateTime dateTime) { + public static String formatDateTime(Instant dateTime) { if (dateTime == null) { return null; } - return dateTime.format(RESPONSE_TIME_FORMATTER); + return RESPONSE_TIME_FORMATTER.format(dateTime); } } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/IRetryPolicy.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/IRetryPolicy.java index 005f59bc9b06..26aee94303ba 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/IRetryPolicy.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/IRetryPolicy.java @@ -6,7 +6,7 @@ import reactor.core.publisher.Mono; import java.time.Duration; -import java.time.ZonedDateTime; +import java.time.Instant; import java.util.List; // TODO update documentation @@ -36,9 +36,9 @@ public interface IRetryPolicy { Duration getRetryLatency(); - ZonedDateTime getStartTime(); + Instant getStartTime(); - ZonedDateTime getEndTime(); + Instant getEndTime(); void addStatusAndSubStatusCode(Integer index, int statusCode, int subStatusCode); diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/MetadataDiagnosticsContext.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/MetadataDiagnosticsContext.java index aa91eba983f4..fed73f9478fb 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/MetadataDiagnosticsContext.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/MetadataDiagnosticsContext.java @@ -10,7 +10,7 @@ import java.io.IOException; import java.time.Duration; -import java.time.ZonedDateTime; +import java.time.Instant; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -28,11 +28,11 @@ public void addMetaDataDiagnostic(MetadataDiagnostics metaDataDiagnostic) { @JsonSerialize(using = MetaDataDiagnosticSerializer.class) public static class MetadataDiagnostics { - public volatile ZonedDateTime startTimeUTC; - public volatile ZonedDateTime endTimeUTC; + public volatile Instant startTimeUTC; + public volatile Instant endTimeUTC; public volatile MetadataType metaDataName; - public MetadataDiagnostics(ZonedDateTime startTimeUTC, ZonedDateTime endTimeUTC, MetadataType metaDataName) { + public MetadataDiagnostics(Instant startTimeUTC, Instant endTimeUTC, MetadataType metaDataName) { this.startTimeUTC = startTimeUTC; this.endTimeUTC = endTimeUTC; this.metaDataName = metaDataName; @@ -54,8 +54,8 @@ public void serialize(MetadataDiagnostics metaDataDiagnostic, JsonGenerator json Duration.ZERO : Duration.between(metaDataDiagnostic.startTimeUTC, metaDataDiagnostic.endTimeUTC); jsonGenerator.writeStartObject(); jsonGenerator.writeObjectField("metaDataName", metaDataDiagnostic.metaDataName); - jsonGenerator.writeStringField("startTimeUTC", ZonedDateTimeSerializer.formatDateTime(metaDataDiagnostic.startTimeUTC)); - jsonGenerator.writeStringField("endTimeUTC", ZonedDateTimeSerializer.formatDateTime(metaDataDiagnostic.endTimeUTC)); + jsonGenerator.writeStringField("startTimeUTC", DiagnosticsInstantSerializer.formatDateTime(metaDataDiagnostic.startTimeUTC)); + jsonGenerator.writeStringField("endTimeUTC", DiagnosticsInstantSerializer.formatDateTime(metaDataDiagnostic.endTimeUTC)); if(durationinMS != null) { jsonGenerator.writeNumberField("durationinMS", durationinMS.toMillis()); } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RequestTimeline.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RequestTimeline.java index 5ec17ef60455..46a016532825 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RequestTimeline.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RequestTimeline.java @@ -12,7 +12,7 @@ import com.azure.cosmos.implementation.guava25.collect.ImmutableList; import java.time.Duration; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.Iterator; import static com.azure.cosmos.implementation.guava25.base.Preconditions.checkNotNull; @@ -163,9 +163,9 @@ public static final class Event { private final String name; @JsonSerialize(using = ToStringSerializer.class) - private final OffsetDateTime startTime; + private final Instant startTime; - public Event(final String name, final OffsetDateTime from, final OffsetDateTime to) { + public Event(final String name, final Instant from, final Instant to) { checkNotNull(name, "expected non-null name"); @@ -188,7 +188,7 @@ public String getName() { return name; } - public OffsetDateTime getStartTime() { + public Instant getStartTime() { return startTime; } } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/Resource.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/Resource.java index 07a93a697fc8..39cfc2f4ab2a 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/Resource.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/Resource.java @@ -9,8 +9,6 @@ import java.nio.ByteBuffer; import java.time.Instant; -import java.time.OffsetDateTime; -import java.time.ZoneOffset; /** * Represents the base resource in the Azure Cosmos DB database service. @@ -167,12 +165,12 @@ public Resource setSelfLink(String selfLink) { * * @return the timestamp. */ - public OffsetDateTime getTimestamp() { + public Instant getTimestamp() { Long seconds = super.getLong(Constants.Properties.LAST_MODIFIED); if (seconds == null) { return null; } - return OffsetDateTime.ofInstant(Instant.ofEpochSecond(seconds.longValue()), ZoneOffset.UTC); + return Instant.ofEpochSecond(seconds.longValue()); } /** @@ -180,8 +178,8 @@ public OffsetDateTime getTimestamp() { * * @param timestamp the timestamp. */ - public Resource setTimestamp(OffsetDateTime timestamp) { - long seconds = timestamp.toEpochSecond(); + public Resource setTimestamp(Instant timestamp) { + long seconds = timestamp.getEpochSecond(); super.set(Constants.Properties.LAST_MODIFIED, seconds); return this; } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RetryContext.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RetryContext.java index b9acb7a7762d..1145e13705e4 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RetryContext.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RetryContext.java @@ -6,7 +6,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import java.time.Duration; -import java.time.ZonedDateTime; +import java.time.Instant; import java.util.List; public class RetryContext { @@ -17,9 +17,9 @@ public class RetryContext { public List genericRetrySpecificStatusAndSubStatusCodes; @JsonIgnore - public ZonedDateTime retryStartTime; + public Instant retryStartTime; @JsonIgnore - public ZonedDateTime retryEndTime; + public Instant retryEndTime; public int retryCount; diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RetryPolicyWithDiagnostics.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RetryPolicyWithDiagnostics.java index 3012ef8a9998..007fec17067f 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RetryPolicyWithDiagnostics.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RetryPolicyWithDiagnostics.java @@ -4,25 +4,25 @@ package com.azure.cosmos.implementation; import java.time.Duration; +import java.time.Instant; import java.time.ZoneOffset; -import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.List; public abstract class RetryPolicyWithDiagnostics implements IRetryPolicy{ private volatile int retriesCountForDiagnostics; - private volatile ZonedDateTime retryStartTime; - private volatile ZonedDateTime retryEndTime; + private volatile Instant retryStartTime; + private volatile Instant retryEndTime; private volatile List statusAndSubStatusCodes; @Override - public ZonedDateTime getStartTime() { + public Instant getStartTime() { return retryStartTime; } @Override - public ZonedDateTime getEndTime() { + public Instant getEndTime() { return retryEndTime; } @@ -65,13 +65,13 @@ public Duration getRetryLatency(){ @Override public void updateEndTime(){ - this.retryEndTime = ZonedDateTime.now(ZoneOffset.UTC); + this.retryEndTime = Instant.now(); } @Override public void captureStartTimeIfNotSet(){ if(this.retryStartTime == null) { - this.retryStartTime = ZonedDateTime.now(ZoneOffset.UTC);; + this.retryStartTime = Instant.now();; } } } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java index 793704e345cb..5431d4ca1334 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java @@ -49,8 +49,7 @@ import java.net.URI; import java.net.URLEncoder; import java.nio.ByteBuffer; -import java.time.ZoneOffset; -import java.time.ZonedDateTime; +import java.time.Instant; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -424,9 +423,9 @@ private Mono> createDatabaseInternal(Database databas validateResource(database); Map requestHeaders = this.getRequestHeaders(options, ResourceType.Database, OperationType.Create); - ZonedDateTime serializationStartTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationStartTimeUTC = Instant.now(); ByteBuffer byteBuffer = ModelBridgeInternal.serializeJsonToByteBuffer(database); - ZonedDateTime serializationEndTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationEndTimeUTC = Instant.now(); SerializationDiagnosticsContext.SerializationDiagnostics serializationDiagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( serializationStartTimeUTC, serializationEndTimeUTC, @@ -616,9 +615,9 @@ private Mono> createCollectionInternal(Stri String path = Utils.joinPath(databaseLink, Paths.COLLECTIONS_PATH_SEGMENT); Map requestHeaders = this.getRequestHeaders(options, ResourceType.DocumentCollection, OperationType.Create); - ZonedDateTime serializationStartTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationStartTimeUTC = Instant.now(); ByteBuffer byteBuffer = ModelBridgeInternal.serializeJsonToByteBuffer(collection); - ZonedDateTime serializationEndTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationEndTimeUTC = Instant.now(); SerializationDiagnosticsContext.SerializationDiagnostics serializationDiagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( serializationStartTimeUTC, serializationEndTimeUTC, @@ -667,9 +666,9 @@ private Mono> replaceCollectionInternal(Doc String path = Utils.joinPath(collection.getSelfLink(), null); Map requestHeaders = this.getRequestHeaders(options, ResourceType.DocumentCollection, OperationType.Replace); - ZonedDateTime serializationStartTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationStartTimeUTC = Instant.now(); ByteBuffer byteBuffer = ModelBridgeInternal.serializeJsonToByteBuffer(collection); - ZonedDateTime serializationEndTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationEndTimeUTC = Instant.now(); SerializationDiagnosticsContext.SerializationDiagnostics serializationDiagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( serializationStartTimeUTC, serializationEndTimeUTC, @@ -1018,9 +1017,9 @@ private void addPartitionKeyInformation(RxDocumentServiceRequest request, cosmosItemProperties = new CosmosItemProperties(contentAsByteBuffer); } - ZonedDateTime serializationStartTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationStartTime = Instant.now(); partitionKeyInternal = extractPartitionKeyValueFromDocument(cosmosItemProperties, partitionKeyDefinition); - ZonedDateTime serializationEndTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationEndTime = Instant.now(); SerializationDiagnosticsContext.SerializationDiagnostics serializationDiagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( serializationStartTime, serializationEndTime, @@ -1076,9 +1075,9 @@ private Mono getCreateDocumentRequest(DocumentClientRe throw new IllegalArgumentException("document"); } - ZonedDateTime serializationStartTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationStartTimeUTC = Instant.now(); ByteBuffer content = BridgeInternal.serializeJsonToByteBuffer(document, mapper); - ZonedDateTime serializationEndTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationEndTimeUTC = Instant.now(); SerializationDiagnosticsContext.SerializationDiagnostics serializationDiagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( serializationStartTimeUTC, serializationEndTimeUTC, @@ -1347,9 +1346,9 @@ private Mono> replaceDocumentInternal(String document logger.debug("Replacing a Document. documentLink: [{}]", documentLink); final String path = Utils.joinPath(documentLink, null); final Map requestHeaders = getRequestHeaders(options, ResourceType.Document, OperationType.Replace); - ZonedDateTime serializationStartTimeUTC = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationStartTimeUTC = Instant.now(); ByteBuffer content = serializeJsonToByteBuffer(document); - ZonedDateTime serializationEndTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationEndTime = Instant.now(); SerializationDiagnosticsContext.SerializationDiagnostics serializationDiagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( serializationStartTimeUTC, serializationEndTime, diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxGatewayStoreModel.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxGatewayStoreModel.java index 5460d32de0ce..c41395e57dbc 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxGatewayStoreModel.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxGatewayStoreModel.java @@ -24,7 +24,7 @@ import java.net.URI; import java.net.URISyntaxException; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; @@ -263,7 +263,7 @@ private Mono toDocumentServiceResponse(Mono readCollectionAsync(MetadataDiagnosticsContext if (retryPolicyInstance != null){ retryPolicyInstance.onBeforeSendRequest(request); } - ZonedDateTime addressCallStartTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant addressCallStartTime = Instant.now(); Mono responseObs = this.storeModel.processMessage(request); return responseObs.map(response -> { if(metaDataDiagnosticsContext != null) { - ZonedDateTime addressCallEndTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant addressCallEndTime = Instant.now(); MetadataDiagnosticsContext.MetadataDiagnostics metaDataDiagnostic = new MetadataDiagnosticsContext.MetadataDiagnostics(addressCallStartTime, addressCallEndTime, MetadataDiagnosticsContext.MetadataType.CONTAINER_LOOK_UP); diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/caches/RxPartitionKeyRangeCache.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/caches/RxPartitionKeyRangeCache.java index 30f09c477084..5b626421b704 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/caches/RxPartitionKeyRangeCache.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/caches/RxPartitionKeyRangeCache.java @@ -26,8 +26,8 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.time.Instant; import java.time.ZoneOffset; -import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -227,12 +227,12 @@ private Mono> getPartitionKeyRange(MetadataDiagnosticsCo if (properties != null) { feedOptions.setProperties(properties); } - ZonedDateTime addressCallStartTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant addressCallStartTime = Instant.now(); return client.readPartitionKeyRanges(coll.getSelfLink(), feedOptions) // maxConcurrent = 1 to makes it in the right getOrder .flatMap(p -> { if(metaDataDiagnosticsContext != null) { - ZonedDateTime addressCallEndTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant addressCallEndTime = Instant.now(); MetadataDiagnosticsContext.MetadataDiagnostics metaDataDiagnostic = new MetadataDiagnosticsContext.MetadataDiagnostics(addressCallStartTime, addressCallEndTime, MetadataDiagnosticsContext.MetadataType.PARTITION_KEY_RANGE_LOOK_UP); diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/Lease.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/Lease.java index d5a9082c4750..df8079438b6f 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/Lease.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/Lease.java @@ -4,7 +4,7 @@ import com.azure.cosmos.ChangeFeedProcessor; -import java.time.ZonedDateTime; +import java.time.Instant; import java.util.Map; /** @@ -94,7 +94,7 @@ public interface Lease { * * @param timestamp the timestamp of the lease. */ - void setTimestamp(ZonedDateTime timestamp); + void setTimestamp(Instant timestamp); /** * Sets the lease ID. diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ProcessorSettings.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ProcessorSettings.java index 5f96aa53a634..0d9126515cb3 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ProcessorSettings.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ProcessorSettings.java @@ -5,7 +5,7 @@ import com.azure.cosmos.CosmosAsyncContainer; import java.time.Duration; -import java.time.OffsetDateTime; +import java.time.Instant; /** * Implementation for the partition processor properties. @@ -16,7 +16,7 @@ public class ProcessorSettings { private Integer maxItemCount; private Duration feedPollDelay; private String startContinuation; - private OffsetDateTime startTime; + private Instant startTime; // private STRING sessionToken; public CosmosAsyncContainer getCollectionSelfLink() { @@ -75,11 +75,11 @@ public ProcessorSettings withStartFromBeginning(boolean startFromBeginning) { return this; } - public OffsetDateTime getStartTime() { + public Instant getStartTime() { return this.startTime; } - public ProcessorSettings withStartTime(OffsetDateTime startTime) { + public ProcessorSettings withStartTime(Instant startTime) { this.startTime = startTime; return this; } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ServiceItemLease.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ServiceItemLease.java index 03560133a78c..e6c35d867116 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ServiceItemLease.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/ServiceItemLease.java @@ -11,6 +11,7 @@ import com.fasterxml.jackson.databind.ser.std.StdSerializer; import java.io.IOException; +import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Date; @@ -121,16 +122,12 @@ public void setOwner(String owner) { } @Override - public void setTimestamp(ZonedDateTime timestamp) { + public void setTimestamp(Instant timestamp) { this.withTimestamp(timestamp); } public void setTimestamp(Date date) { - this.withTimestamp(date.toInstant().atZone(ZoneId.systemDefault())); - } - - public void setTimestamp(Date date, ZoneId zoneId) { - this.withTimestamp(date.toInstant().atZone(zoneId)); + this.withTimestamp(date.toInstant()); } public void setTimestamp(String timestamp) { @@ -178,7 +175,7 @@ public String getTimestamp() { return this.timestamp; } - public ServiceItemLease withTimestamp(ZonedDateTime timestamp) { + public ServiceItemLease withTimestamp(Instant timestamp) { this.timestamp = timestamp.toString(); return this; } @@ -203,7 +200,7 @@ public static ServiceItemLease fromDocument(CosmosItemProperties document) { String leaseTimestamp = ModelBridgeInternal.getStringFromJsonSerializable(document,PROPERTY_NAME_TIMESTAMP); if (leaseTimestamp != null) { - return lease.withTimestamp(ZonedDateTime.parse(leaseTimestamp)); + return lease.withTimestamp(ZonedDateTime.parse(leaseTimestamp).toInstant()); } else { return lease; } @@ -218,7 +215,7 @@ public void setServiceItemLease(Lease lease) { String leaseTimestamp = lease.getTimestamp(); if (leaseTimestamp != null) { - this.setTimestamp(ZonedDateTime.parse(leaseTimestamp)); + this.setTimestamp(ZonedDateTime.parse(leaseTimestamp).toInstant()); } else { this.setTimestamp(lease.getTimestamp()); } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/AutoCheckpointer.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/AutoCheckpointer.java index 16233d0aea2e..1e47fbb8b4f6 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/AutoCheckpointer.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/AutoCheckpointer.java @@ -13,8 +13,8 @@ import reactor.core.publisher.Mono; import java.time.Duration; +import java.time.Instant; import java.time.ZoneId; -import java.time.ZonedDateTime; import java.util.List; /** @@ -25,7 +25,7 @@ class AutoCheckpointer implements ChangeFeedObserver { private final CheckpointFrequency checkpointFrequency; private final ChangeFeedObserver observer; private volatile int processedDocCount; - private volatile ZonedDateTime lastCheckpointTime; + private volatile Instant lastCheckpointTime; public AutoCheckpointer(CheckpointFrequency checkpointFrequency, ChangeFeedObserver observer) { if (checkpointFrequency == null) { @@ -38,7 +38,7 @@ public AutoCheckpointer(CheckpointFrequency checkpointFrequency, ChangeFeedObser this.checkpointFrequency = checkpointFrequency; this.observer = observer; - this.lastCheckpointTime = ZonedDateTime.now(ZoneId.of("UTC")); + this.lastCheckpointTime = Instant.now(); } @Override @@ -70,7 +70,7 @@ private Mono afterProcessChanges(ChangeFeedObserverContext context) { }) .doOnSuccess((Void) -> { this.processedDocCount = 0; - this.lastCheckpointTime = ZonedDateTime.now(ZoneId.of("UTC")); + this.lastCheckpointTime = Instant.now(); }) .then(); } @@ -86,7 +86,7 @@ private boolean isCheckpointNeeded() { return true; } - Duration delta = Duration.between(this.lastCheckpointTime, ZonedDateTime.now(ZoneId.of("UTC"))); + Duration delta = Duration.between(this.lastCheckpointTime, Instant.now()); return delta.compareTo(this.checkpointFrequency.getTimeInterval()) >= 0; } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/DocumentServiceLeaseUpdaterImpl.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/DocumentServiceLeaseUpdaterImpl.java index e7ab2765acb8..9254b872e512 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/DocumentServiceLeaseUpdaterImpl.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/DocumentServiceLeaseUpdaterImpl.java @@ -17,8 +17,7 @@ import org.slf4j.LoggerFactory; import reactor.core.publisher.Mono; -import java.time.ZoneId; -import java.time.ZonedDateTime; +import java.time.Instant; import java.util.function.Function; import static com.azure.cosmos.implementation.changefeed.implementation.ChangeFeedHelper.HTTP_STATUS_CODE_CONFLICT; @@ -50,7 +49,7 @@ public Mono updateLease(final Lease cachedLease, String itemId, Partition return Mono.empty(); } - localLease.setTimestamp(ZonedDateTime.now(ZoneId.of("UTC"))); + localLease.setTimestamp(Instant.now()); cachedLease.setServiceItemLease(localLease); diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/EqualPartitionsBalancingStrategy.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/EqualPartitionsBalancingStrategy.java index 156195145874..1ef59da61b55 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/EqualPartitionsBalancingStrategy.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/EqualPartitionsBalancingStrategy.java @@ -8,8 +8,8 @@ import org.slf4j.LoggerFactory; import java.time.Duration; +import java.time.Instant; import java.time.ZoneId; -import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -172,8 +172,8 @@ private boolean isExpired(Lease lease) { } - ZonedDateTime leaseExpireTime = ZonedDateTime.parse(lease.getTimestamp()).plus(this.leaseExpirationInterval); - this.logger.debug("Current lease timestamp: {}, current time: {}", leaseExpireTime, ZonedDateTime.now(ZoneId.of("UTC"))); - return leaseExpireTime.isBefore(ZonedDateTime.now(ZoneId.of("UTC"))); + Instant leaseExpireTime = Instant.parse(lease.getTimestamp()).plus(this.leaseExpirationInterval); + this.logger.debug("Current lease timestamp: {}, current time: {}", leaseExpireTime, Instant.now()); + return leaseExpireTime.isBefore(Instant.now()); } } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/LeaseRenewerImpl.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/LeaseRenewerImpl.java index 90fc0c7b92df..ed2910eccaa5 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/LeaseRenewerImpl.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/LeaseRenewerImpl.java @@ -12,7 +12,7 @@ import reactor.core.publisher.Mono; import java.time.Duration; -import java.time.ZonedDateTime; +import java.time.Instant; /** * Implementation for the {@link LeaseRenewer}. @@ -40,11 +40,11 @@ public Mono run(CancellationToken cancellationToken) { return Mono.empty(); } - ZonedDateTime stopTimer = ZonedDateTime.now().plus(this.leaseRenewInterval); + Instant stopTimer = Instant.now().plus(this.leaseRenewInterval); return Mono.just(value) .delayElement(Duration.ofMillis(100)) .repeat( () -> { - ZonedDateTime currentTime = ZonedDateTime.now(); + Instant currentTime = Instant.now(); return !cancellationToken.isCancellationRequested() && currentTime.isBefore(stopTimer); }).last(); }) diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/PartitionLoadBalancerImpl.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/PartitionLoadBalancerImpl.java index 43c2957cfb94..ac1183c28c6e 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/PartitionLoadBalancerImpl.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/PartitionLoadBalancerImpl.java @@ -16,7 +16,7 @@ import reactor.core.scheduler.Scheduler; import java.time.Duration; -import java.time.ZonedDateTime; +import java.time.Instant; import java.util.List; /** @@ -121,11 +121,11 @@ private Mono run(CancellationToken cancellationToken) { return Mono.empty(); } - ZonedDateTime stopTimer = ZonedDateTime.now().plus(this.leaseAcquireInterval); + Instant stopTimer = Instant.now().plus(this.leaseAcquireInterval); return Mono.just(value) .delayElement(Duration.ofMillis(100)) .repeat( () -> { - ZonedDateTime currentTime = ZonedDateTime.now(); + Instant currentTime = Instant.now(); return !cancellationToken.isCancellationRequested() && currentTime.isBefore(stopTimer); }).last(); }) diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/PartitionProcessorImpl.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/PartitionProcessorImpl.java index 567fc6d436e0..4b2615b1b67b 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/PartitionProcessorImpl.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/changefeed/implementation/PartitionProcessorImpl.java @@ -23,7 +23,7 @@ import reactor.core.publisher.Mono; import java.time.Duration; -import java.time.ZonedDateTime; +import java.time.Instant; import static java.time.temporal.ChronoUnit.MILLIS; @@ -78,11 +78,11 @@ public Mono run(CancellationToken cancellationToken) { return Flux.just(value); } - ZonedDateTime stopTimer = ZonedDateTime.now().plus(this.settings.getFeedPollDelay()); + Instant stopTimer = Instant.now().plus(this.settings.getFeedPollDelay()); return Mono.just(value) .delayElement(Duration.ofMillis(100)) .repeat( () -> { - ZonedDateTime currentTime = ZonedDateTime.now(); + Instant currentTime = Instant.now(); return !cancellationToken.isCancellationRequested() && currentTime.isBefore(stopTimer); }).last(); @@ -155,12 +155,12 @@ public Mono run(CancellationToken cancellationToken) { case TRANSIENT_ERROR: { // Retry on transient (429) errors if (clientException.getRetryAfterDuration().toMillis() > 0) { - ZonedDateTime stopTimer = ZonedDateTime.now().plus(clientException.getRetryAfterDuration().toMillis(), MILLIS); + Instant stopTimer = Instant.now().plus(clientException.getRetryAfterDuration().toMillis(), MILLIS); return Mono.just(clientException.getRetryAfterDuration().toMillis()) // set some seed value to be able to run // the repeat loop .delayElement(Duration.ofMillis(100)) .repeat(() -> { - ZonedDateTime currentTime = ZonedDateTime.now(); + Instant currentTime = Instant.now(); return !cancellationToken.isCancellationRequested() && currentTime.isBefore(stopTimer); }).flatMap(values -> Flux.empty()); } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/GatewayAddressCache.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/GatewayAddressCache.java index c5b508ae9417..4c4a26238bd4 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/GatewayAddressCache.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/GatewayAddressCache.java @@ -48,7 +48,6 @@ import java.time.Duration; import java.time.Instant; import java.time.ZoneOffset; -import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -300,7 +299,7 @@ public Mono> getServerAddressesViaGatewayAsync( httpHeaders.set(entry.getKey(), entry.getValue()); } - ZonedDateTime addressCallStartTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant addressCallStartTime = Instant.now(); HttpRequest httpRequest = new HttpRequest(HttpMethod.GET, targetEndpoint, targetEndpoint.getPort(), httpHeaders); Mono httpResponseMono = this.httpClient.send(httpRequest); @@ -310,7 +309,7 @@ public Mono> getServerAddressesViaGatewayAsync( dsr -> { MetadataDiagnosticsContext metadataDiagnosticsContext = BridgeInternal.getMetaDataDiagnosticContext(request.requestContext.cosmosDiagnostics); if (metadataDiagnosticsContext != null) { - ZonedDateTime addressCallEndTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant addressCallEndTime = Instant.now(); MetadataDiagnostics metaDataDiagnostic = new MetadataDiagnostics(addressCallStartTime, addressCallEndTime, MetadataType.SERVER_ADDRESS_LOOKUP); @@ -489,7 +488,7 @@ public Mono> getMasterAddressesViaGatewayAsync( HttpRequest httpRequest; httpRequest = new HttpRequest(HttpMethod.GET, targetEndpoint, targetEndpoint.getPort(), defaultHttpHeaders); - ZonedDateTime addressCallStartTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant addressCallStartTime = Instant.now(); Mono httpResponseMono = this.httpClient.send(httpRequest); Mono dsrObs = HttpClientUtils.parseResponseAsync(httpResponseMono, httpRequest); @@ -497,7 +496,7 @@ public Mono> getMasterAddressesViaGatewayAsync( dsr -> { MetadataDiagnosticsContext metadataDiagnosticsContext = BridgeInternal.getMetaDataDiagnosticContext(request.requestContext.cosmosDiagnostics); if (metadataDiagnosticsContext != null) { - ZonedDateTime addressCallEndTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant addressCallEndTime = Instant.now(); MetadataDiagnostics metaDataDiagnostic = new MetadataDiagnostics(addressCallStartTime, addressCallEndTime, MetadataType.MASTER_ADDRESS_LOOK_UP); diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdClientChannelPool.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdClientChannelPool.java index bf4b6f89c691..28eae2bf443c 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdClientChannelPool.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdClientChannelPool.java @@ -34,7 +34,7 @@ import java.net.SocketAddress; import java.nio.channels.ClosedChannelException; import java.time.Duration; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.Deque; import java.util.Queue; import java.util.concurrent.ConcurrentHashMap; @@ -565,7 +565,7 @@ private void addTaskToPendingAcquisitionQueue(Promise promise) { if (logger.isDebugEnabled()) { logger.debug("{}, {}, {}, {}, {}, {}", - OffsetDateTime.now(), + Instant.now(), this.remoteAddress(), this.channels(), this.channelsAcquired(), diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdObjectMapper.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdObjectMapper.java index 766a6ec3e9a8..8be8a7ed02da 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdObjectMapper.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdObjectMapper.java @@ -26,7 +26,7 @@ import java.io.IOException; import java.io.InputStream; import java.time.Duration; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.concurrent.ConcurrentHashMap; import static com.azure.cosmos.implementation.guava25.base.Preconditions.checkNotNull; @@ -41,7 +41,7 @@ public final class RntbdObjectMapper { .registerModule(new SimpleModule() .addSerializer(Duration.class, ToStringSerializer.instance) .addDeserializer(Duration.class, DurationDeserializer.INSTANCE) - .addSerializer(OffsetDateTime.class, ToStringSerializer.instance)) + .addSerializer(Instant.class, ToStringSerializer.instance)) .setFilterProvider(filterProvider) .registerModule(new AfterburnerModule()); diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdRequestArgs.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdRequestArgs.java index c5b238402106..b56c905de9ea 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdRequestArgs.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdRequestArgs.java @@ -17,7 +17,7 @@ import java.net.URI; import java.time.Duration; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.UUID; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -36,7 +36,7 @@ public final class RntbdRequestArgs { private final Sample sample; private final UUID activityId; - private final OffsetDateTime timeCreated; + private final Instant timeCreated; private final long nanoTimeCreated; private final Stopwatch lifetime; private final String origin; @@ -48,7 +48,7 @@ public final class RntbdRequestArgs { public RntbdRequestArgs(final RxDocumentServiceRequest serviceRequest, final URI physicalAddress) { this.sample = Timer.start(); this.activityId = serviceRequest.getActivityId(); - this.timeCreated = OffsetDateTime.now(); + this.timeCreated = Instant.now(); this.nanoTimeCreated = System.nanoTime(); this.lifetime = Stopwatch.createStarted(); this.origin = physicalAddress.getScheme() + "://" + physicalAddress.getAuthority(); @@ -97,7 +97,7 @@ public RxDocumentServiceRequest serviceRequest() { } @JsonProperty - public OffsetDateTime timeCreated() { + public Instant timeCreated() { return this.timeCreated; } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdRequestRecord.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdRequestRecord.java index 449b9dc25c03..e19703574d4b 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdRequestRecord.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/rntbd/RntbdRequestRecord.java @@ -19,7 +19,7 @@ import java.io.IOException; import java.time.Duration; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.UUID; import java.util.concurrent.CancellationException; import java.util.concurrent.CompletableFuture; @@ -54,18 +54,18 @@ public final class RntbdRequestRecord extends CompletableFuture { private volatile int responseLength; private volatile Stage stage; - private volatile OffsetDateTime timeCompleted; - private volatile OffsetDateTime timePipelined; - private volatile OffsetDateTime timeQueued; - private volatile OffsetDateTime timeSent; - private volatile OffsetDateTime timeReceived; + private volatile Instant timeCompleted; + private volatile Instant timePipelined; + private volatile Instant timeQueued; + private volatile Instant timeSent; + private volatile Instant timeReceived; public RntbdRequestRecord(final RntbdRequestArgs args, final RntbdRequestTimer timer) { checkNotNull(args, "expected non-null args"); checkNotNull(timer, "expected non-null timer"); - this.timeQueued = OffsetDateTime.now(); + this.timeQueued = Instant.now(); this.requestLength = -1; this.responseLength = -1; this.stage = Stage.QUEUED; @@ -111,7 +111,7 @@ public Stage stage() { public RntbdRequestRecord stage(final Stage value) { - final OffsetDateTime time = OffsetDateTime.now(); + final Instant time = Instant.now(); STAGE.updateAndGet(this, current -> { @@ -156,27 +156,27 @@ public RntbdRequestRecord stage(final Stage value) { return this; } - public OffsetDateTime timeCompleted() { + public Instant timeCompleted() { return this.timeCompleted; } - public OffsetDateTime timeCreated() { + public Instant timeCreated() { return this.args.timeCreated(); } - public OffsetDateTime timePipelined() { + public Instant timePipelined() { return this.timePipelined; } - public OffsetDateTime timeQueued() { + public Instant timeQueued() { return this.timeQueued; } - public OffsetDateTime timeReceived() { + public Instant timeReceived() { return this.timeReceived; } - public OffsetDateTime timeSent() { + public Instant timeSent() { return this.timeSent; } @@ -200,15 +200,15 @@ public Timeout newTimeout(final TimerTask task) { public RequestTimeline takeTimelineSnapshot() { - OffsetDateTime now = OffsetDateTime.now(); + Instant now = Instant.now(); - OffsetDateTime timeCreated = this.timeCreated(); - OffsetDateTime timeQueued = this.timeQueued(); - OffsetDateTime timePipelined = this.timePipelined(); - OffsetDateTime timeSent = this.timeSent(); - OffsetDateTime timeReceived = this.timeReceived(); - OffsetDateTime timeCompleted = this.timeCompleted(); - OffsetDateTime timeCompletedOrNow = timeCompleted == null ? now : timeCompleted; + Instant timeCreated = this.timeCreated(); + Instant timeQueued = this.timeQueued(); + Instant timePipelined = this.timePipelined(); + Instant timeSent = this.timeSent(); + Instant timeReceived = this.timeReceived(); + Instant timeCompleted = this.timeCompleted(); + Instant timeCompletedOrNow = timeCompleted == null ? now : timeCompleted; return RequestTimeline.of( new RequestTimeline.Event("created", diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/HttpRequest.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/HttpRequest.java index 4dd9cb0336ee..c5de722d7b5a 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/HttpRequest.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/HttpRequest.java @@ -10,7 +10,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; -import java.time.OffsetDateTime; +import java.time.Instant; /** * The outgoing Http request. @@ -228,7 +228,7 @@ public ReactorNettyRequestRecord getReactorNettyRequestRecord() { private ReactorNettyRequestRecord createReactorNettyRequestRecord(){ ReactorNettyRequestRecord reactorNettyRequestRecord = new ReactorNettyRequestRecord(); - reactorNettyRequestRecord.setTimeCreated(OffsetDateTime.now()); + reactorNettyRequestRecord.setTimeCreated(Instant.now()); return reactorNettyRequestRecord; } } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyClient.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyClient.java index 19e6ed1154eb..4cbcb58fd28b 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyClient.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyClient.java @@ -22,7 +22,7 @@ import reactor.netty.tcp.ProxyProvider; import java.nio.charset.Charset; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.Objects; import java.util.function.BiFunction; @@ -98,13 +98,13 @@ public Mono send(final HttpRequest request) { Objects.requireNonNull(this.httpClientConfig); if(request.getReactorNettyRequestRecord() == null) { ReactorNettyRequestRecord reactorNettyRequestRecord = new ReactorNettyRequestRecord(); - reactorNettyRequestRecord.setTimeCreated(OffsetDateTime.now()); + reactorNettyRequestRecord.setTimeCreated(Instant.now()); request.setReactorNettyRequestRecord(reactorNettyRequestRecord); } return this.httpClient .observe((connection, state) -> { - OffsetDateTime time = OffsetDateTime.now(); + Instant time = Instant.now(); if(state.equals(HttpClientState.CONNECTED) || state.equals(HttpClientState.ACQUIRED)){ request.getReactorNettyRequestRecord().setTimeConnected(time); } else if(state.equals(HttpClientState.CONFIGURED)){ diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyRequestRecord.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyRequestRecord.java index d27efbb0f2ef..bd6b0d1dffe1 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyRequestRecord.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyRequestRecord.java @@ -6,7 +6,7 @@ import com.azure.cosmos.implementation.RequestTimeline; import reactor.netty.http.client.HttpClientState; -import java.time.OffsetDateTime; +import java.time.Instant; /** * Represents the timeline of various events in the lifetime of a reactor netty request response. @@ -23,106 +23,106 @@ */ public final class ReactorNettyRequestRecord { - private volatile OffsetDateTime timeCreated; - private volatile OffsetDateTime timeConnected; - private volatile OffsetDateTime timeConfigured; - private volatile OffsetDateTime timeSent; - private volatile OffsetDateTime timeReceived; - private volatile OffsetDateTime timeCompleted; + private volatile Instant timeCreated; + private volatile Instant timeConnected; + private volatile Instant timeConfigured; + private volatile Instant timeSent; + private volatile Instant timeReceived; + private volatile Instant timeCompleted; /** - * Gets request created offsetDateTime. + * Gets request created instant. * @return */ - public OffsetDateTime timeCreated() { + public Instant timeCreated() { return this.timeCreated; } /** - * Get connection established offsetDateTime. + * Get connection established instant. * @return timeConnected */ - public OffsetDateTime timeConnected() { + public Instant timeConnected() { return this.timeConnected; } /** - * Get connection configured offsetDateTime. + * Get connection configured instant. * @return timeConfigured */ - public OffsetDateTime timeConfigured() { + public Instant timeConfigured() { return this.timeConfigured; } /** - * Gets request sent offsetDateTime. + * Gets request sent instant. * @return timeSent */ - public OffsetDateTime timeSent() { + public Instant timeSent() { return this.timeSent; } /** - * Gets response received offsetDateTime. + * Gets response received instant. * @return timeReceived */ - public OffsetDateTime timeReceived() { + public Instant timeReceived() { return this.timeReceived; } /** - * Gets request completed offsetDateTime. + * Gets request completed instant. * @return timeCompleted */ - public OffsetDateTime timeCompleted() { + public Instant timeCompleted() { return this.timeCompleted; } /** - * Sets request created offsetDateTime. + * Sets request created instant. * @param timeCreated */ - public void setTimeCreated(OffsetDateTime timeCreated) { + public void setTimeCreated(Instant timeCreated) { this.timeCreated = timeCreated; } /** - * Sets connection established offsetDateTime. + * Sets connection established instant. * @param timeConnected */ - public void setTimeConnected(OffsetDateTime timeConnected) { + public void setTimeConnected(Instant timeConnected) { this.timeConnected = timeConnected; } /** - * Sets connection configured offsetDateTime. + * Sets connection configured instant. * @param timeConfigured */ - public void setTimeConfigured(OffsetDateTime timeConfigured) { + public void setTimeConfigured(Instant timeConfigured) { this.timeConfigured = timeConfigured; } /** - * Sets request sent offsetDateTime. + * Sets request sent instant. * @param timeSent */ - public void setTimeSent(OffsetDateTime timeSent) { + public void setTimeSent(Instant timeSent) { this.timeSent = timeSent; } /** - * Sets response received offsetDateTime. + * Sets response received instant. * @param timeReceived */ - public void setTimeReceived(OffsetDateTime timeReceived) { + public void setTimeReceived(Instant timeReceived) { this.timeReceived = timeReceived; } /** - * Sets request completed offsetDateTime. + * Sets request completed instant. * @param timeCompleted */ - public void setTimeCompleted(OffsetDateTime timeCompleted) { + public void setTimeCompleted(Instant timeCompleted) { this.timeCompleted = timeCompleted; } @@ -132,15 +132,15 @@ public void setTimeCompleted(OffsetDateTime timeCompleted) { */ public RequestTimeline takeTimelineSnapshot() { - OffsetDateTime now = OffsetDateTime.now(); + Instant now = Instant.now(); - OffsetDateTime timeCreated = this.timeCreated(); - OffsetDateTime timeConnected = this.timeConnected(); - OffsetDateTime timeConfigured = this.timeConfigured(); - OffsetDateTime timeSent = this.timeSent(); - OffsetDateTime timeReceived = this.timeReceived(); - OffsetDateTime timeCompleted = this.timeCompleted(); - OffsetDateTime timeCompletedOrNow = timeCompleted == null ? now : timeCompleted; + Instant timeCreated = this.timeCreated(); + Instant timeConnected = this.timeConnected(); + Instant timeConfigured = this.timeConfigured(); + Instant timeSent = this.timeSent(); + Instant timeReceived = this.timeReceived(); + Instant timeCompleted = this.timeCompleted(); + Instant timeCompletedOrNow = timeCompleted == null ? now : timeCompleted; return RequestTimeline.of( new RequestTimeline.Event("connectionCreated", diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/ChangeFeedProcessorOptions.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/ChangeFeedProcessorOptions.java index 4a4a4a2bdd6b..2c85b0812f02 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/ChangeFeedProcessorOptions.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/ChangeFeedProcessorOptions.java @@ -5,7 +5,7 @@ import com.azure.cosmos.ChangeFeedProcessor; import java.time.Duration; -import java.time.OffsetDateTime; +import java.time.Instant; /** * Specifies the options associated with {@link ChangeFeedProcessor}. @@ -24,7 +24,7 @@ public final class ChangeFeedProcessorOptions { private String leasePrefix; private int maxItemCount; private String startContinuation; - private OffsetDateTime startTime; + private Instant startTime; private boolean startFromBeginning; private int minScaleCount; private int maxScaleCount; @@ -214,7 +214,7 @@ public ChangeFeedProcessorOptions setStartContinuation(String startContinuation) * * @return the time (exclusive) to start looking for changes after. */ - public OffsetDateTime getStartTime() { + public Instant getStartTime() { return this.startTime; } @@ -230,7 +230,7 @@ public OffsetDateTime getStartTime() { * @param startTime the time (exclusive) to start looking for changes after. * @return the current ChangeFeedProcessorOptions instance. */ - public ChangeFeedProcessorOptions setStartTime(OffsetDateTime startTime) { + public ChangeFeedProcessorOptions setStartTime(Instant startTime) { this.startTime = startTime; return this; } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosAsyncItemResponse.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosAsyncItemResponse.java index ece871e18398..4187e14b3b0d 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosAsyncItemResponse.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosAsyncItemResponse.java @@ -11,8 +11,7 @@ import com.azure.cosmos.implementation.Utils; import java.time.Duration; -import java.time.ZoneOffset; -import java.time.ZonedDateTime; +import java.time.Instant; import java.util.Map; /** @@ -46,9 +45,9 @@ public T getItem() { SerializationDiagnosticsContext serializationDiagnosticsContext = BridgeInternal.getSerializationDiagnosticsContext(this.getDiagnostics()); if (item == null && this.itemClassType == CosmosItemProperties.class) { - ZonedDateTime serializationStartTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationStartTime = Instant.now(); item =(T) getProperties(); - ZonedDateTime serializationEndTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationEndTime = Instant.now(); SerializationDiagnosticsContext.SerializationDiagnostics diagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( serializationStartTime, serializationEndTime, @@ -61,9 +60,9 @@ public T getItem() { if (item == null) { synchronized (this) { if (item == null && !Utils.isEmpty(responseBodyAsByteArray)) { - ZonedDateTime serializationStartTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationStartTime = Instant.now(); item = Utils.parse(responseBodyAsByteArray, itemClassType); - ZonedDateTime serializationEndTime = ZonedDateTime.now(ZoneOffset.UTC); + Instant serializationEndTime = Instant.now(); SerializationDiagnosticsContext.SerializationDiagnostics diagnostics = new SerializationDiagnosticsContext.SerializationDiagnostics( serializationStartTime, serializationEndTime, diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosConflictProperties.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosConflictProperties.java index 592686ba9109..8e44d12e19ca 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosConflictProperties.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosConflictProperties.java @@ -6,7 +6,7 @@ import com.azure.cosmos.implementation.OperationKind; import com.azure.cosmos.implementation.Resource; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.List; import java.util.stream.Collectors; @@ -90,7 +90,7 @@ public String getResourceId() { * * @return the timestamp. */ - public OffsetDateTime getTimestamp() { + public Instant getTimestamp() { return this.conflict.getTimestamp(); } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerProperties.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerProperties.java index 1439b69b5999..833424c635ed 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerProperties.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerProperties.java @@ -5,7 +5,7 @@ import com.azure.cosmos.implementation.DocumentCollection; import com.azure.cosmos.implementation.Resource; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -252,7 +252,7 @@ public String getResourceId() { * * @return the timestamp. */ - public OffsetDateTime getTimestamp() { + public Instant getTimestamp() { return this.documentCollection.getTimestamp(); } diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerResponse.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerResponse.java index ef3ce39d856b..28f67981617b 100644 --- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerResponse.java +++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerResponse.java @@ -9,6 +9,7 @@ import com.azure.cosmos.implementation.SerializationDiagnosticsContext; import com.azure.cosmos.implementation.apachecommons.lang.StringUtils; +import java.time.Instant; import java.time.ZoneOffset; import java.time.ZonedDateTime; @@ -26,9 +27,9 @@ public class CosmosContainerResponse extends CosmosResponse 0) //Write from a client and do point read through second client and ensure TS matches. { - OffsetDateTime sourceTimestamp = writeResource.getTimestamp(); + Instant sourceTimestamp = writeResource.getTimestamp(); Thread.sleep(1000); //Timestamp is in granularity of seconds. Resource updatedResource = null; if (resourceToWorkWith instanceof User) { @@ -137,7 +137,7 @@ void validateStrongConsistency(Document documentToWorkWith) throws InterruptedEx int numberOfTestIteration = 5; Document writeDocument = documentToWorkWith; while (numberOfTestIteration-- > 0) { - OffsetDateTime sourceTimestamp = writeDocument.getTimestamp(); + Instant sourceTimestamp = writeDocument.getTimestamp(); Thread.sleep(1000);//Timestamp is in granularity of seconds. RequestOptions options = new RequestOptions(); options.setPartitionKey(new PartitionKey(ModelBridgeInternal.getObjectFromJsonSerializable(documentToWorkWith, "mypk"))); @@ -231,12 +231,12 @@ void validateSessionContainerAfterCollectionCreateReplace(boolean useGateway) { boolean validateConsistentPrefix(Resource resourceToWorkWith) throws InterruptedException { int numberOfTestIteration = 5; - OffsetDateTime lastReadDateTime = resourceToWorkWith.getTimestamp(); + Instant lastReadDateTime = resourceToWorkWith.getTimestamp(); boolean readLagging = false; Resource writeResource = resourceToWorkWith; while (numberOfTestIteration-- > 0) { //Write from a client and do point read through second client and ensure TS monotonically increases. - OffsetDateTime sourceTimestamp = writeResource.getTimestamp(); + Instant sourceTimestamp = writeResource.getTimestamp(); Thread.sleep(1000); //Timestamp is in granularity of seconds. Resource updatedResource = null; if (resourceToWorkWith instanceof User) { @@ -276,12 +276,12 @@ boolean validateConsistentPrefix(Resource resourceToWorkWith) throws Interrupted boolean validateReadSession(Resource resourceToWorkWith) throws InterruptedException { int numberOfTestIteration = 5; - OffsetDateTime lastReadDateTime = OffsetDateTime.MIN; + Instant lastReadDateTime = Instant.MIN; boolean readLagging = false; Resource writeResource = resourceToWorkWith; while (numberOfTestIteration-- > 0) { - OffsetDateTime sourceTimestamp = writeResource.getTimestamp(); + Instant sourceTimestamp = writeResource.getTimestamp(); Thread.sleep(1000); Resource updatedResource = null; if (resourceToWorkWith instanceof Document) { @@ -312,12 +312,12 @@ boolean validateReadSession(Resource resourceToWorkWith) throws InterruptedExcep boolean validateWriteSession(Resource resourceToWorkWith) throws InterruptedException { int numberOfTestIteration = 5; - OffsetDateTime lastReadDateTime = OffsetDateTime.MIN; + Instant lastReadDateTime = Instant.MIN; boolean readLagging = false; Resource writeResource = resourceToWorkWith; while (numberOfTestIteration-- > 0) { - OffsetDateTime sourceTimestamp = writeResource.getTimestamp(); + Instant sourceTimestamp = writeResource.getTimestamp(); Thread.sleep(1000); Resource updatedResource = null; if (resourceToWorkWith instanceof Document) { diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/ResourceResponseValidator.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/ResourceResponseValidator.java index 0df20ed0b700..b4823ba9f6c9 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/ResourceResponseValidator.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/ResourceResponseValidator.java @@ -13,7 +13,6 @@ import org.assertj.core.api.Condition; import java.time.Instant; -import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -104,9 +103,9 @@ public Builder withTimestampIsAfterOrEqualTo(Instant time) { public void validate(ResourceResponse resourceResponse) { assertThat(resourceResponse.getResource()).isNotNull(); assertThat(resourceResponse.getResource().getTimestamp()).isNotNull(); - OffsetDateTime d = resourceResponse.getResource().getTimestamp(); + Instant d = resourceResponse.getResource().getTimestamp(); System.out.println(d.toString()); - assertThat(d.toInstant()).isAfterOrEqualTo(time); + assertThat(d).isAfterOrEqualTo(time); } }); return this; @@ -119,8 +118,8 @@ public Builder withTimestampIsBeforeOrEqualTo(Instant time) { public void validate(ResourceResponse resourceResponse) { assertThat(resourceResponse.getResource()).isNotNull(); assertThat(resourceResponse.getResource().getTimestamp()).isNotNull(); - OffsetDateTime d = resourceResponse.getResource().getTimestamp(); - assertThat(d.toInstant()).isBeforeOrEqualTo(time); + Instant d = resourceResponse.getResource().getTimestamp(); + assertThat(d).isBeforeOrEqualTo(time); } }); return this; diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ChangeFeedProcessorTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ChangeFeedProcessorTest.java index 9c4b91ab534e..b27e42e5eeeb 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ChangeFeedProcessorTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ChangeFeedProcessorTest.java @@ -38,7 +38,8 @@ import reactor.core.scheduler.Schedulers; import java.time.Duration; -import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -158,7 +159,7 @@ public void readFeedDocumentsStartFromCustomDate() throws InterruptedException { .setFeedPollDelay(Duration.ofSeconds(1)) .setLeasePrefix("TEST") .setMaxItemCount(10) - .setStartTime(OffsetDateTime.now().minusDays(1)) + .setStartTime(ZonedDateTime.now(ZoneOffset.UTC).minusDays(1).toInstant()) .setMinScaleCount(1) .setMaxScaleCount(3) ) diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ChangeFeedTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ChangeFeedTest.java index e61a65f58a0e..35be2170ddba 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ChangeFeedTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ChangeFeedTest.java @@ -29,7 +29,7 @@ import reactor.core.publisher.Mono; import java.lang.reflect.Method; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -164,11 +164,11 @@ public void changeFeed_fromStartDate() throws Exception { String partitionKey = partitionKeyToDocuments.keySet().iterator().next(); changeFeedOption.setPartitionKey(new PartitionKey(partitionKey)); - OffsetDateTime befTime = OffsetDateTime.now(); + Instant befTime = Instant.now(); // Waiting for at-least a second to ensure that new document is created after we took the time stamp waitAtleastASecond(befTime); - OffsetDateTime dateTimeBeforeCreatingDoc = OffsetDateTime.now(); + Instant dateTimeBeforeCreatingDoc = Instant.now(); changeFeedOption.setStartDateTime(dateTimeBeforeCreatingDoc); // Waiting for at-least a second to ensure that new document is created after we took the time stamp @@ -288,8 +288,8 @@ private static Document getDocumentDefinition(String partitionKey) { return doc; } - private static void waitAtleastASecond(OffsetDateTime befTime) throws InterruptedException { - while (befTime.plusSeconds(1).isAfter(OffsetDateTime.now())) { + private static void waitAtleastASecond(Instant befTime) throws InterruptedException { + while (befTime.plusSeconds(1).isAfter(Instant.now())) { Thread.sleep(100); } } diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/CosmosAuthorizationTokenResolverTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/CosmosAuthorizationTokenResolverTest.java index 930752e221e4..9fa358a13b25 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/CosmosAuthorizationTokenResolverTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/CosmosAuthorizationTokenResolverTest.java @@ -45,7 +45,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -386,7 +386,7 @@ public void readChangeFeedWithAllPermission(ConnectionMode connectionMode) throw BridgeInternal.setProperty(document2, partitionKey, partitionKeyValue); try { asyncClientWithTokenResolver = buildClient(connectionMode, PermissionMode.ALL); - OffsetDateTime befTime = OffsetDateTime.now(); + Instant befTime = Instant.now(); Thread.sleep(1500); document1 = asyncClientWithTokenResolver diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/DocumentCrudTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/DocumentCrudTest.java index 81724f9cdd78..c4d2fbf5cb2c 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/DocumentCrudTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/DocumentCrudTest.java @@ -23,7 +23,7 @@ import reactor.core.publisher.Mono; import java.time.Duration; -import java.time.OffsetDateTime; +import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -173,7 +173,7 @@ public void readDocument(String documentId) throws InterruptedException { @Test(groups = { "simple" }, timeOut = TIMEOUT, dataProvider = "documentCrudArgProvider") public void timestamp(String documentId) throws Exception { - OffsetDateTime before = OffsetDateTime.now(); + Instant before = Instant.now(); CosmosItemProperties docDefinition = getDocumentDefinition(documentId); Thread.sleep(1000); container.createItem(docDefinition, new CosmosItemRequestOptions()).block(); @@ -187,7 +187,7 @@ public void timestamp(String documentId) throws Exception { CosmosItemProperties.class) .block()); Thread.sleep(1000); - OffsetDateTime after = OffsetDateTime.now(); + Instant after = Instant.now(); assertThat(readDocument.getTimestamp()).isAfterOrEqualTo(before); assertThat(readDocument.getTimestamp()).isBeforeOrEqualTo(after); diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ServiceItemLeaseTests.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ServiceItemLeaseTests.java index 9532a4cd1420..2142d61a9641 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ServiceItemLeaseTests.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/rx/ServiceItemLeaseTests.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.testng.annotations.Test; -import java.time.ZonedDateTime; +import java.time.Instant; import static org.assertj.core.api.Assertions.assertThat; @@ -17,7 +17,7 @@ public class ServiceItemLeaseTests { @Test(groups = { "unit" }, timeOut = TIMEOUT) public void serviceItemLeaseSerialization() throws JsonProcessingException { - ZonedDateTime timeNow = ZonedDateTime.now(); + Instant timeNow = Instant.now(); String timeNowValue = timeNow.toString(); Lease lease1 = new ServiceItemLease()