Skip to content

Commit afcdbd2

Browse files
authored
XPack: core/ccr/Security-cli migration to java-time (#38415)
part of the migrating joda time work. refactoring x-pack plugins usages of joda to java-time refers #27330
1 parent 68cb7b9 commit afcdbd2

File tree

9 files changed

+55
-48
lines changed

9 files changed

+55
-48
lines changed

x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/AutoFollowStatsMonitoringDocTests.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.elasticsearch.common.Strings;
1010
import org.elasticsearch.common.bytes.BytesReference;
1111
import org.elasticsearch.common.collect.Tuple;
12+
import org.elasticsearch.common.time.DateFormatter;
1213
import org.elasticsearch.common.xcontent.XContentBuilder;
1314
import org.elasticsearch.common.xcontent.XContentHelper;
1415
import org.elasticsearch.common.xcontent.XContentType;
@@ -19,11 +20,10 @@
1920
import org.elasticsearch.xpack.core.monitoring.exporter.MonitoringDoc;
2021
import org.elasticsearch.xpack.core.monitoring.exporter.MonitoringTemplateUtils;
2122
import org.elasticsearch.xpack.monitoring.exporter.BaseMonitoringDocTestCase;
22-
import org.joda.time.DateTime;
23-
import org.joda.time.DateTimeZone;
2423
import org.junit.Before;
2524

2625
import java.io.IOException;
26+
import java.time.ZoneOffset;
2727
import java.util.Collections;
2828
import java.util.List;
2929
import java.util.Map;
@@ -38,7 +38,7 @@
3838
import static org.hamcrest.Matchers.nullValue;
3939

4040
public class AutoFollowStatsMonitoringDocTests extends BaseMonitoringDocTestCase<AutoFollowStatsMonitoringDoc> {
41-
41+
private static final DateFormatter DATE_TIME_FORMATTER = DateFormatter.forPattern("strict_date_time").withZone(ZoneOffset.UTC);
4242
private AutoFollowStats autoFollowStats;
4343

4444
@Before
@@ -94,7 +94,7 @@ public void testToXContent() throws IOException {
9494
equalTo(
9595
"{"
9696
+ "\"cluster_uuid\":\"_cluster\","
97-
+ "\"timestamp\":\"" + new DateTime(timestamp, DateTimeZone.UTC).toString() + "\","
97+
+ "\"timestamp\":\"" + DATE_TIME_FORMATTER.formatMillis(timestamp) + "\","
9898
+ "\"interval_ms\":" + intervalMillis + ","
9999
+ "\"type\":\"ccr_auto_follow_stats\","
100100
+ "\"source_node\":{"
@@ -103,7 +103,7 @@ public void testToXContent() throws IOException {
103103
+ "\"transport_address\":\"_addr\","
104104
+ "\"ip\":\"_ip\","
105105
+ "\"name\":\"_name\","
106-
+ "\"timestamp\":\"" + new DateTime(nodeTimestamp, DateTimeZone.UTC).toString() + "\""
106+
+ "\"timestamp\":\"" + DATE_TIME_FORMATTER.formatMillis(nodeTimestamp) + "\""
107107
+ "},"
108108
+ "\"ccr_auto_follow_stats\":{"
109109
+ "\"number_of_failed_follow_indices\":" + autoFollowStats.getNumberOfFailedFollowIndices() + ","

x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/FollowStatsMonitoringDocTests.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.elasticsearch.common.Strings;
1111
import org.elasticsearch.common.bytes.BytesReference;
1212
import org.elasticsearch.common.collect.Tuple;
13+
import org.elasticsearch.common.time.DateFormatter;
1314
import org.elasticsearch.common.xcontent.XContentBuilder;
1415
import org.elasticsearch.common.xcontent.XContentHelper;
1516
import org.elasticsearch.common.xcontent.XContentType;
@@ -19,11 +20,10 @@
1920
import org.elasticsearch.xpack.core.monitoring.exporter.MonitoringDoc;
2021
import org.elasticsearch.xpack.core.monitoring.exporter.MonitoringTemplateUtils;
2122
import org.elasticsearch.xpack.monitoring.exporter.BaseMonitoringDocTestCase;
22-
import org.joda.time.DateTime;
23-
import org.joda.time.DateTimeZone;
2423
import org.junit.Before;
2524

2625
import java.io.IOException;
26+
import java.time.ZoneOffset;
2727
import java.util.Collections;
2828
import java.util.Map;
2929
import java.util.NavigableMap;
@@ -40,7 +40,7 @@
4040
import static org.mockito.Mockito.mock;
4141

4242
public class FollowStatsMonitoringDocTests extends BaseMonitoringDocTestCase<FollowStatsMonitoringDoc> {
43-
43+
private static final DateFormatter DATE_TIME_FORMATTER = DateFormatter.forPattern("strict_date_time").withZone(ZoneOffset.UTC);
4444
private ShardFollowNodeTaskStatus status;
4545

4646
@Override
@@ -146,7 +146,7 @@ public void testToXContent() throws IOException {
146146
equalTo(
147147
"{"
148148
+ "\"cluster_uuid\":\"_cluster\","
149-
+ "\"timestamp\":\"" + new DateTime(timestamp, DateTimeZone.UTC).toString() + "\","
149+
+ "\"timestamp\":\"" + DATE_TIME_FORMATTER.formatMillis(timestamp) + "\","
150150
+ "\"interval_ms\":" + intervalMillis + ","
151151
+ "\"type\":\"ccr_stats\","
152152
+ "\"source_node\":{"
@@ -155,7 +155,7 @@ public void testToXContent() throws IOException {
155155
+ "\"transport_address\":\"_addr\","
156156
+ "\"ip\":\"_ip\","
157157
+ "\"name\":\"_name\","
158-
+ "\"timestamp\":\"" + new DateTime(nodeTimestamp, DateTimeZone.UTC).toString() + "\""
158+
+ "\"timestamp\":\"" + DATE_TIME_FORMATTER.formatMillis(nodeTimestamp) + "\""
159159
+ "},"
160160
+ "\"ccr_stats\":{"
161161
+ "\"remote_cluster\":\"leader_cluster\","

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/scheduler/Cron.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66
package org.elasticsearch.xpack.core.scheduler;
77

88
import org.elasticsearch.ElasticsearchParseException;
9+
import org.elasticsearch.common.time.DateFormatter;
910
import org.elasticsearch.common.xcontent.ToXContentFragment;
1011
import org.elasticsearch.common.xcontent.XContentBuilder;
11-
import org.joda.time.DateTimeZone;
12-
import org.joda.time.format.DateTimeFormat;
13-
import org.joda.time.format.DateTimeFormatter;
1412

1513
import java.io.IOException;
14+
import java.time.ZoneOffset;
1615
import java.util.Calendar;
1716
import java.util.HashMap;
1817
import java.util.Iterator;
@@ -199,8 +198,8 @@
199198
* @author Refactoring from CronTrigger to CronExpression by Aaron Craven
200199
*/
201200
public class Cron implements ToXContentFragment {
202-
protected static final TimeZone UTC = DateTimeZone.UTC.toTimeZone();
203-
protected static final DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-dd'T'HH:mm:ss");
201+
protected static final TimeZone UTC = TimeZone.getTimeZone(ZoneOffset.UTC);
202+
protected static final DateFormatter formatter = DateFormatter.forPattern("yyyy-MM-dd'T'HH:mm:ss");
204203

205204
private static final int SECOND = 0;
206205
private static final int MINUTE = 1;

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ssl/cert/CertificateInfo.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@
1010
import org.elasticsearch.common.io.stream.Writeable;
1111
import org.elasticsearch.common.xcontent.ToXContentObject;
1212
import org.elasticsearch.common.xcontent.XContentBuilder;
13-
import org.joda.time.DateTime;
14-
import org.joda.time.DateTimeZone;
1513

1614
import java.io.IOException;
1715
import java.security.cert.X509Certificate;
16+
import java.time.Instant;
17+
import java.time.ZoneOffset;
18+
import java.time.ZonedDateTime;
1819
import java.util.Objects;
1920

2021
/**
@@ -27,7 +28,7 @@ public class CertificateInfo implements ToXContentObject, Writeable {
2728
private final String subjectDn;
2829
private final String serialNumber;
2930
private final boolean hasPrivateKey;
30-
private final DateTime expiry;
31+
private final ZonedDateTime expiry;
3132

3233
public CertificateInfo(String path, String format, String alias, boolean hasPrivateKey, X509Certificate certificate) {
3334
Objects.requireNonNull(certificate, "Certificate cannot be null");
@@ -37,7 +38,7 @@ public CertificateInfo(String path, String format, String alias, boolean hasPriv
3738
this.subjectDn = Objects.requireNonNull(certificate.getSubjectDN().getName());
3839
this.serialNumber = certificate.getSerialNumber().toString(16);
3940
this.hasPrivateKey = hasPrivateKey;
40-
this.expiry = new DateTime(certificate.getNotAfter(), DateTimeZone.UTC);
41+
this.expiry = certificate.getNotAfter().toInstant().atZone(ZoneOffset.UTC);
4142
}
4243

4344
public CertificateInfo(StreamInput in) throws IOException {
@@ -47,7 +48,7 @@ public CertificateInfo(StreamInput in) throws IOException {
4748
this.subjectDn = in.readString();
4849
this.serialNumber = in.readString();
4950
this.hasPrivateKey = in.readBoolean();
50-
this.expiry = new DateTime(in.readLong(), DateTimeZone.UTC);
51+
this.expiry = Instant.ofEpochMilli(in.readLong()).atZone(ZoneOffset.UTC);
5152
}
5253

5354
@Override
@@ -58,7 +59,7 @@ public void writeTo(StreamOutput out) throws IOException {
5859
out.writeString(subjectDn);
5960
out.writeString(serialNumber);
6061
out.writeBoolean(hasPrivateKey);
61-
out.writeLong(expiry.getMillis());
62+
out.writeLong(expiry.toInstant().toEpochMilli());
6263
}
6364

6465
public String path() {
@@ -81,7 +82,7 @@ public String serialNumber() {
8182
return serialNumber;
8283
}
8384

84-
public DateTime expiry() {
85+
public ZonedDateTime expiry() {
8586
return expiry;
8687
}
8788

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PostDataFlushResponseTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@
88
import org.elasticsearch.common.io.stream.Writeable;
99
import org.elasticsearch.test.AbstractWireSerializingTestCase;
1010
import org.elasticsearch.xpack.core.ml.action.FlushJobAction.Response;
11-
import org.joda.time.DateTime;
11+
12+
import java.time.ZonedDateTime;
13+
import java.util.Date;
1214

1315
public class PostDataFlushResponseTests extends AbstractWireSerializingTestCase<Response> {
1416

1517
@Override
1618
protected Response createTestInstance() {
17-
return new Response(randomBoolean(), new DateTime(randomDateTimeZone()).toDate());
19+
return new Response(randomBoolean(), Date.from(ZonedDateTime.now(randomZone()).toInstant()));
1820
}
1921

2022
@Override

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/calendars/ScheduledEventTests.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
import org.elasticsearch.xpack.core.ml.job.config.Operator;
1616
import org.elasticsearch.xpack.core.ml.job.config.RuleAction;
1717
import org.elasticsearch.xpack.core.ml.job.config.RuleCondition;
18-
import org.joda.time.DateTime;
1918

2019
import java.io.IOException;
21-
import java.time.Instant;
20+
import java.time.Clock;
2221
import java.time.ZoneOffset;
2322
import java.time.ZonedDateTime;
2423
import java.util.EnumSet;
@@ -29,7 +28,7 @@
2928
public class ScheduledEventTests extends AbstractSerializingTestCase<ScheduledEvent> {
3029

3130
public static ScheduledEvent createScheduledEvent(String calendarId) {
32-
ZonedDateTime start = ZonedDateTime.ofInstant(Instant.ofEpochMilli(new DateTime(randomDateTimeZone()).getMillis()), ZoneOffset.UTC);
31+
ZonedDateTime start = Clock.systemUTC().instant().atZone(ZoneOffset.UTC);
3332
return new ScheduledEvent(randomAlphaOfLength(10), start, start.plusSeconds(randomIntBetween(1, 10000)),
3433
calendarId, null);
3534
}
@@ -120,4 +119,4 @@ public void testLenientParser() throws IOException {
120119
ScheduledEvent.LENIENT_PARSER.apply(parser, null);
121120
}
122121
}
123-
}
122+
}

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/job/process/autodetect/state/DataCountsTests.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import org.elasticsearch.common.io.stream.Writeable;
99
import org.elasticsearch.common.xcontent.XContentParser;
1010
import org.elasticsearch.test.AbstractSerializingTestCase;
11-
import org.joda.time.DateTime;
1211

12+
import java.time.ZonedDateTime;
1313
import java.util.Date;
1414

1515
import static org.hamcrest.Matchers.greaterThan;
@@ -21,9 +21,13 @@ public static DataCounts createTestInstance(String jobId) {
2121
randomIntBetween(1, 1_000_000), randomIntBetween(1, 1_000_000), randomIntBetween(1, 1_000_000),
2222
randomIntBetween(1, 1_000_000), randomIntBetween(1, 1_000_000), randomIntBetween(1, 1_000_000),
2323
randomIntBetween(1, 1_000_000), randomIntBetween(1, 1_000_000), randomIntBetween(1, 1_000_000),
24-
new DateTime(randomDateTimeZone()).toDate(), new DateTime(randomDateTimeZone()).toDate(),
25-
new DateTime(randomDateTimeZone()).toDate(), new DateTime(randomDateTimeZone()).toDate(),
26-
new DateTime(randomDateTimeZone()).toDate());
24+
dateWithRandomTimeZone(), dateWithRandomTimeZone(),
25+
dateWithRandomTimeZone(), dateWithRandomTimeZone(),
26+
dateWithRandomTimeZone());
27+
}
28+
29+
private static Date dateWithRandomTimeZone() {
30+
return Date.from(ZonedDateTime.now(randomZone()).toInstant());
2731
}
2832

2933
@Override

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ssl/SSLServiceTests.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.elasticsearch.test.junit.annotations.Network;
2929
import org.elasticsearch.xpack.core.XPackSettings;
3030
import org.elasticsearch.xpack.core.ssl.cert.CertificateInfo;
31-
import org.joda.time.DateTime;
3231
import org.junit.Before;
3332
import org.mockito.ArgumentCaptor;
3433

@@ -49,6 +48,7 @@
4948
import java.security.PrivilegedActionException;
5049
import java.security.PrivilegedExceptionAction;
5150
import java.security.cert.Certificate;
51+
import java.time.ZonedDateTime;
5252
import java.util.ArrayList;
5353
import java.util.Arrays;
5454
import java.util.Collections;
@@ -563,7 +563,7 @@ public void testReadCertificateInformation() throws Exception {
563563
assertThat(cert.format(), equalTo("PEM"));
564564
assertThat(cert.serialNumber(), equalTo("580db8ad52bb168a4080e1df122a3f56"));
565565
assertThat(cert.subjectDn(), equalTo("CN=ad-ELASTICSEARCHAD-CA, DC=ad, DC=test, DC=elasticsearch, DC=com"));
566-
assertThat(cert.expiry(), equalTo(DateTime.parse("2029-08-27T16:32:42Z")));
566+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2029-08-27T16:32:42Z")));
567567
assertThat(cert.hasPrivateKey(), equalTo(false));
568568

569569
cert = iterator.next();
@@ -572,7 +572,7 @@ public void testReadCertificateInformation() throws Exception {
572572
assertThat(cert.format(), equalTo("jks"));
573573
assertThat(cert.serialNumber(), equalTo("580db8ad52bb168a4080e1df122a3f56"));
574574
assertThat(cert.subjectDn(), equalTo("CN=ad-ELASTICSEARCHAD-CA, DC=ad, DC=test, DC=elasticsearch, DC=com"));
575-
assertThat(cert.expiry(), equalTo(DateTime.parse("2029-08-27T16:32:42Z")));
575+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2029-08-27T16:32:42Z")));
576576
assertThat(cert.hasPrivateKey(), equalTo(false));
577577

578578
cert = iterator.next();
@@ -581,7 +581,7 @@ public void testReadCertificateInformation() throws Exception {
581581
assertThat(cert.format(), equalTo("jks"));
582582
assertThat(cert.serialNumber(), equalTo("3151a81eec8d4e34c56a8466a8510bcfbe63cc31"));
583583
assertThat(cert.subjectDn(), equalTo("CN=samba4"));
584-
assertThat(cert.expiry(), equalTo(DateTime.parse("2021-02-14T17:49:11.000Z")));
584+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2021-02-14T17:49:11.000Z")));
585585
assertThat(cert.hasPrivateKey(), equalTo(false));
586586

587587
cert = iterator.next();
@@ -590,7 +590,7 @@ public void testReadCertificateInformation() throws Exception {
590590
assertThat(cert.format(), equalTo("jks"));
591591
assertThat(cert.serialNumber(), equalTo("d3850b2b1995ad5f"));
592592
assertThat(cert.subjectDn(), equalTo("CN=OpenLDAP, OU=Elasticsearch, O=Elastic, L=Mountain View, ST=CA, C=US"));
593-
assertThat(cert.expiry(), equalTo(DateTime.parse("2027-07-23T16:41:14Z")));
593+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2027-07-23T16:41:14Z")));
594594
assertThat(cert.hasPrivateKey(), equalTo(false));
595595

596596
cert = iterator.next();
@@ -599,7 +599,7 @@ public void testReadCertificateInformation() throws Exception {
599599
assertThat(cert.format(), equalTo("jks"));
600600
assertThat(cert.serialNumber(), equalTo("b9d497f2924bbe29"));
601601
assertThat(cert.subjectDn(), equalTo("CN=Elasticsearch Test Client, OU=elasticsearch, O=org"));
602-
assertThat(cert.expiry(), equalTo(DateTime.parse("2019-09-22T18:52:55Z")));
602+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2019-09-22T18:52:55Z")));
603603
assertThat(cert.hasPrivateKey(), equalTo(false));
604604

605605
cert = iterator.next();
@@ -608,7 +608,7 @@ public void testReadCertificateInformation() throws Exception {
608608
assertThat(cert.format(), equalTo("jks"));
609609
assertThat(cert.serialNumber(), equalTo("c0ea4216e8ff0fd8"));
610610
assertThat(cert.subjectDn(), equalTo("CN=testnode-client-profile"));
611-
assertThat(cert.expiry(), equalTo(DateTime.parse("2019-09-22T18:52:56Z")));
611+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2019-09-22T18:52:56Z")));
612612
assertThat(cert.hasPrivateKey(), equalTo(false));
613613

614614
cert = iterator.next();
@@ -617,7 +617,7 @@ public void testReadCertificateInformation() throws Exception {
617617
assertThat(cert.format(), equalTo("jks"));
618618
assertThat(cert.serialNumber(), equalTo("223c736a"));
619619
assertThat(cert.subjectDn(), equalTo("CN=Elasticsearch Test Node"));
620-
assertThat(cert.expiry(), equalTo(DateTime.parse("2045-10-02T09:43:18.000Z")));
620+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2045-10-02T09:43:18.000Z")));
621621
assertThat(cert.hasPrivateKey(), equalTo(true));
622622

623623
cert = iterator.next();
@@ -626,7 +626,7 @@ public void testReadCertificateInformation() throws Exception {
626626
assertThat(cert.format(), equalTo("jks"));
627627
assertThat(cert.serialNumber(), equalTo("7268203b"));
628628
assertThat(cert.subjectDn(), equalTo("CN=Elasticsearch Test Node"));
629-
assertThat(cert.expiry(), equalTo(DateTime.parse("2045-10-02T09:36:10.000Z")));
629+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2045-10-02T09:36:10.000Z")));
630630
assertThat(cert.hasPrivateKey(), equalTo(true));
631631

632632
cert = iterator.next();
@@ -635,7 +635,7 @@ public void testReadCertificateInformation() throws Exception {
635635
assertThat(cert.format(), equalTo("jks"));
636636
assertThat(cert.serialNumber(), equalTo("b8b96c37e332cccb"));
637637
assertThat(cert.subjectDn(), equalTo("CN=Elasticsearch Test Node, OU=elasticsearch, O=org"));
638-
assertThat(cert.expiry(), equalTo(DateTime.parse("2019-09-22T18:52:57.000Z")));
638+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2019-09-22T18:52:57.000Z")));
639639
assertThat(cert.hasPrivateKey(), equalTo(true));
640640

641641
cert = iterator.next();
@@ -644,7 +644,7 @@ public void testReadCertificateInformation() throws Exception {
644644
assertThat(cert.format(), equalTo("PKCS12"));
645645
assertThat(cert.serialNumber(), equalTo("b8b96c37e332cccb"));
646646
assertThat(cert.subjectDn(), equalTo("CN=Elasticsearch Test Node, OU=elasticsearch, O=org"));
647-
assertThat(cert.expiry(), equalTo(DateTime.parse("2019-09-22T18:52:57Z")));
647+
assertThat(cert.expiry(), equalTo(ZonedDateTime.parse("2019-09-22T18:52:57Z")));
648648
assertThat(cert.hasPrivateKey(), equalTo(true));
649649

650650
assertFalse(iterator.hasNext());

0 commit comments

Comments
 (0)