Skip to content

Commit 06ce074

Browse files
authored
Merge pull request #500 from brendandburns/joda
Fix DateTime string generation.
2 parents a6de2c4 + efcad1e commit 06ce074

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

util/src/main/java/io/kubernetes/client/util/Yaml.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,14 @@ public CustomRepresenter() {
358358
this.representers.put(IntOrString.class, new RepresentIntOrString());
359359
this.representers.put(byte[].class, new RepresentByteArray());
360360
this.representers.put(Quantity.class, new RepresentQuantity());
361+
this.representers.put(DateTime.class, new RepresentDateTime());
362+
}
363+
364+
private class RepresentDateTime implements Represent {
365+
@Override
366+
public Node representData(Object data) {
367+
return CustomRepresenter.this.representData(data.toString());
368+
}
361369
}
362370

363371
private class RepresentIntOrString implements Represent {

util/src/test/java/io/kubernetes/client/util/YamlTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ public class YamlTest {
4343

4444
private static final URL EXPECTED_YAML_FILE = Resources.getResource("expected.yaml");
4545

46+
private static final URL CREATED_TIMESTAMP_FILE = Resources.getResource("test-pod.yaml");
47+
4648
private static final String[] kinds =
4749
new String[] {
4850
"Pod",
@@ -236,4 +238,19 @@ public void testDateTime() {
236238
assertNull("Unexpected exception: " + ex.toString(), ex);
237239
}
238240
}
241+
242+
@Test
243+
public void testDateTimeRoundTrip() {
244+
// There was an issue with dumping JODA DateTime as String.
245+
// This test verifies that its fixed.
246+
try {
247+
String data = Resources.toString(CREATED_TIMESTAMP_FILE, UTF_8);
248+
V1Pod pod = Yaml.loadAs(data, V1Pod.class);
249+
String output = Yaml.dump(pod);
250+
V1Pod pod2 = Yaml.loadAs(output, V1Pod.class);
251+
assertEquals(pod, pod2);
252+
} catch (Exception ex) {
253+
assertNull("Unexpected exception: " + ex.toString(), ex);
254+
}
255+
}
239256
}

util/src/test/resources/test-pod.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
creationTimestamp: "2018-12-23T01:09:18Z"
5+
generateName: test-776d6c86cc-
6+
labels:
7+
app: test
8+
app-version: "19911"
9+
pod-template-hash: "3328274277"
10+
name: test-776d6c86cc-4zwj5
11+
namespace: default

0 commit comments

Comments
 (0)