Output correct JSON strings for object keys; base decision to return text/json from HTTP API on Accepts header rather than Content-type
Change-Id: I14a71d7ec4ffd432691bfa795079e5c8a51037bb
Reviewed-on: http://fulliautomatix.ics.uci.edu:8443/85
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Zachary Heilbron <zheilbron@gmail.com>
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/RESTAPIServlet.java b/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/RESTAPIServlet.java
index 49d08f6..5c24d83 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/RESTAPIServlet.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/RESTAPIServlet.java
@@ -76,10 +76,10 @@
PrintWriter out = response.getWriter();
DisplayFormat format = DisplayFormat.HTML;
- String contentType = request.getContentType();
- if ((contentType == null) || (contentType.equals("text/plain"))) {
+ String accept = request.getHeader("Accept");
+ if ((accept == null) || (accept.contains("text/plain"))) {
format = DisplayFormat.TEXT;
- } else if (contentType.equals("application/json")) {
+ } else if (accept.contains("application/json")) {
format = DisplayFormat.JSON;
}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ACirclePrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ACirclePrinter.java
index 33123d7..35095a5 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ACirclePrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ACirclePrinter.java
@@ -31,12 +31,12 @@
@Override
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
- ps.print("{ circle: [");
+ ps.print("{ \"circle\": [");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
- ps.print(", { point: [");
+ ps.print(", { \"point\": [");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
- ps.print(",");
+ ps.print(", ");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
- ps.print("]}]}");
+ ps.print("] } ] }");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADatePrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADatePrinter.java
index a759963..0ed6155 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADatePrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADatePrinter.java
@@ -34,8 +34,8 @@
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
long chrononTime = AInt32SerializerDeserializer.getInt(b, s + 1) * CHRONON_OF_DAY;
- ps.print("{ date: ");
+ ps.print("{ \"date\": ");
ps.print(chrononTime);
ps.print("}");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADateTimePrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADateTimePrinter.java
index 7e734dc..4b74d88 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADateTimePrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADateTimePrinter.java
@@ -33,8 +33,8 @@
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
long chrononTime = AInt64SerializerDeserializer.getLong(b, s + 1);
- ps.print("{ datetime: ");
+ ps.print("{ \"datetime\": ");
ps.print(chrononTime);
ps.print("}");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADayTimeDurationPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADayTimeDurationPrinter.java
index 66c05d7..64fec3f 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADayTimeDurationPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADayTimeDurationPrinter.java
@@ -34,7 +34,7 @@
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
long milliseconds = AInt64SerializerDeserializer.getLong(b, s + 1);
- ps.print("{ day-time-duration: ");
+ ps.print("{ \"day-time-duration\": ");
ps.print(milliseconds);
ps.print("}");
}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADurationPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADurationPrinter.java
index 8bde759..b80093f 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADurationPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ADurationPrinter.java
@@ -35,11 +35,11 @@
int months = AInt32SerializerDeserializer.getInt(b, s + 1);
long milliseconds = AInt64SerializerDeserializer.getLong(b, s + 5);
- ps.print("{ duration: {");
- ps.print("months: ");
+ ps.print("{ \"duration\": { ");
+ ps.print("\"months\": ");
ps.print(months);
- ps.print("millis: ");
+ ps.print("\"millis\": ");
ps.print(milliseconds);
- ps.print("}}");
+ ps.print("} }");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt16Printer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt16Printer.java
index b97152c..8f676d2 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt16Printer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt16Printer.java
@@ -32,8 +32,8 @@
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
short i = AInt16SerializerDeserializer.getShort(b, s + 1);
- ps.println("{ int16: ");
+ ps.println("{ \"int16\": ");
ps.println(i);
ps.println("}");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt32Printer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt32Printer.java
index ae4b224..7ed3ee2 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt32Printer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt32Printer.java
@@ -33,8 +33,8 @@
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
int d = AInt32SerializerDeserializer.getInt(b, s + 1);
- ps.println("{ int32: ");
+ ps.println("{ \"int32\": ");
ps.println(d);
ps.println("}");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt64Printer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt64Printer.java
index 10f20a3..33af3eb 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt64Printer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt64Printer.java
@@ -30,8 +30,8 @@
@Override
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
long d = AInt64SerializerDeserializer.getLong(b, s + 1);
- ps.println("{ int64: ");
+ ps.println("{ \"int64\": ");
ps.println(d);
ps.println("}");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt8Printer.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt8Printer.java
index 7bcc5dc..6407f07 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt8Printer.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AInt8Printer.java
@@ -33,8 +33,8 @@
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
byte o = AInt8SerializerDeserializer.getByte(b, s + 1);
- ps.println("{ int8: ");
+ ps.println("{ \"int8\": ");
ps.println(o);
ps.println("}");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AIntervalPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AIntervalPrinter.java
index 6331caa..860188e 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AIntervalPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AIntervalPrinter.java
@@ -37,7 +37,7 @@
*/
@Override
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
- ps.print("{ interval: { start: ");
+ ps.print("{ \"interval\": { \"start\": ");
short typetag = AInt8SerializerDeserializer.getByte(b, s + 1 + 8 * 2);
@@ -46,17 +46,17 @@
if (typetag == ATypeTag.DATE.serialize()) {
timeInstancePrinter = ADatePrinter.INSTANCE;
((ADatePrinter) timeInstancePrinter).print(b, s + 4, 4, ps);
- ps.print(", end: ");
+ ps.print(", \"end\": ");
((ADatePrinter) timeInstancePrinter).print(b, s + 12, 4, ps);
} else if (typetag == ATypeTag.TIME.serialize()) {
timeInstancePrinter = ATimePrinter.INSTANCE;
((ATimePrinter) timeInstancePrinter).print(b, s + 4, 4, ps);
- ps.print(", end: ");
+ ps.print(", \"end\": ");
((ATimePrinter) timeInstancePrinter).print(b, s + 12, 4, ps);
} else if (typetag == ATypeTag.DATETIME.serialize()) {
timeInstancePrinter = ADateTimePrinter.INSTANCE;
((ADateTimePrinter) timeInstancePrinter).print(b, s, 8, ps);
- ps.print(", end: ");
+ ps.print(", \"end\": ");
((ADateTimePrinter) timeInstancePrinter).print(b, s + 8, 8, ps);
} else {
throw new AlgebricksException("Unsupport internal time types in interval: " + typetag);
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ALinePrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ALinePrinter.java
index 9a881fd..bcaa832 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ALinePrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ALinePrinter.java
@@ -31,15 +31,15 @@
@Override
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
- ps.print("{ line: ");
- ps.print(" [{ point: [");
+ ps.print("{ \"line\": ");
+ ps.print(" [ { \"point\": [");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
ps.print(", ");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
- ps.print("]}, { point: [");
+ ps.print("] }, { \"point\": [");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
ps.print(", ");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 25));
- ps.print("]}]}");
+ ps.print("] } ] }");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APoint3DPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APoint3DPrinter.java
index 3f8c4b6..6725090 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APoint3DPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APoint3DPrinter.java
@@ -31,12 +31,12 @@
@Override
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
- ps.print("{ point3d: [");
+ ps.print("{ \"point3d\": [");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
ps.print(", ");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
ps.print(", ");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
- ps.print("]}");
+ ps.print("] }");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APointPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APointPrinter.java
index 4f56e80..b2bfcf9 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APointPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APointPrinter.java
@@ -31,10 +31,10 @@
@Override
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
- ps.print("{ point: [");
+ ps.print("{ \"point\": [");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
ps.print(", ");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
- ps.print("]}");
+ ps.print("] }");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APolygonPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APolygonPrinter.java
index 82d715e..7cc4405 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APolygonPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/APolygonPrinter.java
@@ -35,22 +35,22 @@
short numberOfPoints = AInt16SerializerDeserializer.getShort(b, s + 1);
s += 3;
- ps.print("{ polygon: [");
+ ps.print("{ \"polygon\": [");
for (int i = 0; i < numberOfPoints; i++) {
if (i > 0)
ps.print(",");
- ps.print("{ point: [");
+ ps.print("{ \"point\": [");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s));
- ps.print(",");
+ ps.print(", ");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 8));
- ps.print("]}");
+ ps.print("] }");
s += 16;
}
- ps.print("]}");
+ ps.print("] }");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ARectanglePrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ARectanglePrinter.java
index ed34d08..ffdb92a 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ARectanglePrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ARectanglePrinter.java
@@ -31,15 +31,15 @@
@Override
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
- ps.print("{ rectangle: [");
- ps.print("{ point: [");
+ ps.print("{ \"rectangle\": [");
+ ps.print("{ \"point\": [");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
ps.print(", ");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
- ps.print("]}, { point: [");
+ ps.print("] }, { \"point\": [");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
ps.print(", ");
ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 25));
- ps.print("]}]}");
+ ps.print("] } ] }");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ATimePrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ATimePrinter.java
index eacf501..a3a94cf 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ATimePrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/ATimePrinter.java
@@ -33,9 +33,9 @@
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
int time = AInt32SerializerDeserializer.getInt(b, s + 1);
- ps.print("{ time: ");
+ ps.print("{ \"time\": ");
ps.print(time);
ps.print("}");
}
-}
\ No newline at end of file
+}
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AYearMonthDurationPrinter.java b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AYearMonthDurationPrinter.java
index 163dc52..d932f9f 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AYearMonthDurationPrinter.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/dataflow/data/nontagged/printers/json/AYearMonthDurationPrinter.java
@@ -39,7 +39,7 @@
int months = AInt32SerializerDeserializer.getInt(b, s + 1);
- ps.print("{ year-month-duration: ");
+ ps.print("{ \"year-month-duration\": ");
ps.print(months);
ps.print("}");
}