Skip to content

Commit be341f5

Browse files
committed
Update JSON.java to exclude managedFields messages
1 parent 4237364 commit be341f5

File tree

2 files changed

+83
-9
lines changed

2 files changed

+83
-9
lines changed

kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import com.google.gson.JsonElement;
2323
import io.gsonfire.GsonFireBuilder;
2424
import io.gsonfire.TypeSelector;
25-
25+
import io.kubernetes.client.gson.V1MetadataExclusionStrategy;
2626
import io.kubernetes.client.gson.V1StatusPreProcessor;
2727
import io.kubernetes.client.openapi.models.V1Status;
2828
import okio.ByteString;
@@ -78,13 +78,12 @@ public class JSON {
7878

7979
@SuppressWarnings("unchecked")
8080
public static GsonBuilder createGson() {
81-
GsonFireBuilder fireBuilder = new GsonFireBuilder()
82-
;
81+
GsonFireBuilder fireBuilder = new GsonFireBuilder();
8382
GsonBuilder builder =
8483
fireBuilder
8584
.registerPreProcessor(V1Status.class, new V1StatusPreProcessor())
8685
.createGsonBuilder();
87-
return builder;
86+
return builder.setExclusionStrategies(new V1MetadataExclusionStrategy());
8887
}
8988

9089
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {

scripts/patches/json.diff

Lines changed: 80 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,87 @@
11
diff --git a/kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java b/kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java
2-
index 42b65fbb3..0aade725e 100644
2+
index 4406c2199..f56413a25 100644
33
--- a/kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java
44
+++ b/kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java
5-
@@ -872,7 +872,6 @@ public class JSON {
6-
// backward-compatibility for ISO8601 timestamp format
7-
return OffsetDateTime.parse(date, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
5+
@@ -23,6 +23,8 @@ import com.google.gson.JsonElement;
6+
import io.gsonfire.GsonFireBuilder;
7+
import io.gsonfire.TypeSelector;
8+
9+
+import io.kubernetes.client.gson.V1StatusPreProcessor;
10+
+import io.kubernetes.client.openapi.models.V1Status;
11+
import okio.ByteString;
12+
13+
import java.io.IOException;
14+
@@ -34,6 +36,9 @@ import java.text.ParsePosition;
15+
import java.time.LocalDate;
16+
import java.time.OffsetDateTime;
17+
import java.time.format.DateTimeFormatter;
18+
+import java.time.format.DateTimeFormatterBuilder;
19+
+import java.time.format.DateTimeParseException;
20+
+import java.time.temporal.ChronoField;
21+
import java.util.Date;
22+
import java.util.Locale;
23+
import java.util.Map;
24+
@@ -48,9 +53,19 @@ import java.util.HashMap;
25+
public class JSON {
26+
private static Gson gson;
27+
private static boolean isLenientOnJson = false;
28+
+
29+
+ private static final DateTimeFormatter RFC3339MICRO_FORMATTER =
30+
+ new DateTimeFormatterBuilder()
31+
+ .parseDefaulting(ChronoField.OFFSET_SECONDS, 0)
32+
+ .append(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"))
33+
+ .optionalStart()
34+
+ .appendFraction(ChronoField.NANO_OF_SECOND, 6, 6, true)
35+
+ .optionalEnd()
36+
+ .appendLiteral("Z")
37+
+ .toFormatter();
38+
private static DateTypeAdapter dateTypeAdapter = new DateTypeAdapter();
39+
private static SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter();
40+
- private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter();
41+
+ private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter(RFC3339MICRO_FORMATTER);
42+
private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter();
43+
private static ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter();
44+
45+
@@ -58,7 +73,10 @@ public class JSON {
46+
public static GsonBuilder createGson() {
47+
GsonFireBuilder fireBuilder = new GsonFireBuilder()
48+
;
49+
- GsonBuilder builder = fireBuilder.createGsonBuilder();
50+
+ GsonBuilder builder =
51+
+ fireBuilder
52+
+ .registerPreProcessor(V1Status.class, new V1StatusPreProcessor())
53+
+ .createGsonBuilder();
54+
- return builder;
55+
+ return builder.setExclusionStrategies(new V1MetadataExclusionStrategy());
56+
}
57+
58+
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
59+
@@ -721,11 +739,14 @@ public class JSON {
60+
61+
@Override
62+
public void write(JsonWriter out, byte[] value) throws IOException {
63+
+ boolean oldHtmlSafe = out.isHtmlSafe();
64+
+ out.setHtmlSafe(false);
65+
if (value == null) {
66+
out.nullValue();
67+
} else {
68+
out.value(ByteString.of(value).base64());
69+
}
70+
+ out.setHtmlSafe(oldHtmlSafe);
71+
}
72+
73+
@Override
74+
@@ -781,7 +802,12 @@ public class JSON {
75+
if (date.endsWith("+0000")) {
76+
date = date.substring(0, date.length()-5) + "Z";
877
}
978
- return OffsetDateTime.parse(date, formatter);
79+
+ try {
80+
+ return OffsetDateTime.parse(date, formatter);
81+
+ } catch (DateTimeParseException e) {
82+
+ // backward-compatibility for ISO8601 timestamp format
83+
+ return OffsetDateTime.parse(date, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
84+
+ }
1085
}
1186
}
12-
}
87+
}

0 commit comments

Comments
 (0)