Skip to content

Commit 150e449

Browse files
author
Remi Damlencour
committed
https://github.com/lightbody/browsermob-proxy/issues/44
Add DTZ is Date Format according to HAR Spec 1.2
1 parent 7dda6e7 commit 150e449

File tree

5 files changed

+60
-12
lines changed

5 files changed

+60
-12
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<modelVersion>4.0.0</modelVersion>
33
<groupId>net.lightbody.bmp</groupId>
44
<artifactId>browsermob-proxy</artifactId>
5-
<version>2.0-beta-13-SNAPSHOT</version>
5+
<version>2.0-beta-15-SNAPSHOT</version>
66
<name>BrowserMob Proxy</name>
77
<description>A programmatic HTTP/S designed for performance and functional testing</description>
88
<url>http://bmp.lightbody.net</url>
@@ -65,7 +65,7 @@
6565
</program>
6666
</programs>
6767
</configuration>
68-
<executions>
68+
<executions>BET
6969
<execution>
7070
<id>make-assembly</id>
7171
<phase>install</phase>

src/main/java/net/lightbody/bmp/core/har/HarCookie.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package net.lightbody.bmp.core.har;
22

3-
import net.lightbody.bmp.core.json.ISO8601DateFormatter;
3+
import java.util.Date;
4+
5+
import net.lightbody.bmp.core.json.ISO8601WithTDZDateFormatter;
6+
47
import org.codehaus.jackson.annotate.JsonWriteNullProperties;
58
import org.codehaus.jackson.map.annotate.JsonSerialize;
69

7-
import java.util.Date;
8-
910
@JsonWriteNullProperties(value=false)
1011
public class HarCookie {
1112
private String name;
@@ -49,7 +50,7 @@ public void setDomain(String domain) {
4950
this.domain = domain;
5051
}
5152

52-
@JsonSerialize(using = ISO8601DateFormatter.class)
53+
@JsonSerialize(using = ISO8601WithTDZDateFormatter.class)
5354
public Date getExpires() {
5455
return expires;
5556
}

src/main/java/net/lightbody/bmp/core/har/HarEntry.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package net.lightbody.bmp.core.har;
22

3-
import net.lightbody.bmp.core.json.ISO8601DateFormatter;
3+
import net.lightbody.bmp.core.json.ISO8601WithTDZDateFormatter;
4+
45
import org.codehaus.jackson.annotate.JsonAutoDetect;
56
import org.codehaus.jackson.map.annotate.JsonSerialize;
67

@@ -36,7 +37,7 @@ public void setPageref(String pageref) {
3637
this.pageref = pageref;
3738
}
3839

39-
@JsonSerialize(using = ISO8601DateFormatter.class)
40+
@JsonSerialize(using = ISO8601WithTDZDateFormatter.class)
4041
public Date getStartedDateTime() {
4142
return startedDateTime;
4243
}

src/main/java/net/lightbody/bmp/core/har/HarPage.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package net.lightbody.bmp.core.har;
22

3-
import net.lightbody.bmp.core.json.ISO8601DateFormatter;
4-
import org.codehaus.jackson.map.annotate.JsonSerialize;
5-
63
import java.util.Date;
74

5+
import net.lightbody.bmp.core.json.ISO8601WithTDZDateFormatter;
6+
7+
import org.codehaus.jackson.map.annotate.JsonSerialize;
8+
89
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
910
public class HarPage {
1011
private String id;
@@ -29,7 +30,7 @@ public void setId(String id) {
2930
this.id = id;
3031
}
3132

32-
@JsonSerialize(using = ISO8601DateFormatter.class)
33+
@JsonSerialize(using = ISO8601WithTDZDateFormatter.class)
3334
public Date getStartedDateTime() {
3435
return startedDateTime;
3536
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package net.lightbody.bmp.core.json;
2+
3+
import org.codehaus.jackson.JsonGenerationException;
4+
import org.codehaus.jackson.JsonGenerator;
5+
import org.codehaus.jackson.JsonNode;
6+
import org.codehaus.jackson.map.JsonMappingException;
7+
import org.codehaus.jackson.map.SerializerProvider;
8+
import org.codehaus.jackson.map.ser.ScalarSerializerBase;
9+
10+
import java.io.IOException;
11+
import java.lang.reflect.Type;
12+
import java.text.DateFormat;
13+
import java.text.SimpleDateFormat;
14+
import java.util.Date;
15+
16+
17+
/**
18+
*
19+
* @author Damien Jubeau <damien.jubeau@dareboost.com>
20+
* Allows Date Format to be compliant with Har 1.2 Spec : ISO 8601 with Time Zone Designator
21+
* @see https://github.com/lightbody/browsermob-proxy/issues/44
22+
*
23+
*/
24+
public class ISO8601WithTDZDateFormatter extends ScalarSerializerBase<Date> {
25+
26+
public final static ISO8601WithTDZDateFormatter instance = new ISO8601WithTDZDateFormatter();
27+
private final DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
28+
29+
30+
public ISO8601WithTDZDateFormatter() {
31+
super(java.util.Date.class);
32+
}
33+
34+
@Override
35+
public void serialize(java.util.Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException {
36+
jgen.writeString(df.format(value));
37+
}
38+
39+
40+
@Override
41+
public JsonNode getSchema(SerializerProvider provider, Type typeHint) throws JsonMappingException {
42+
return createSchemaNode("string", true);
43+
}
44+
45+
}

0 commit comments

Comments
 (0)