ATEST-633
This commit is contained in:
+16
-3
@@ -81,6 +81,8 @@ public class JSONTableResponseStreamWriter implements ResponseStreamWriter {
|
||||
@Resource(name = QueryRestConfig.BEAN_NAME_DEFAULT_RESPONSE_AGGREGATIONS)
|
||||
private Set<Aggregation> defaultResponseAggregations;
|
||||
|
||||
// In case ArchiverAppliance had several events within the 10ms mapping interval, return these
|
||||
// aggregations
|
||||
private Set<String> defaultResponseAggregationsStr;
|
||||
|
||||
@PostConstruct
|
||||
@@ -92,7 +94,7 @@ public class JSONTableResponseStreamWriter implements ResponseStreamWriter {
|
||||
|
||||
@Override
|
||||
public void respond(final List<Entry<DAQQueryElement, Stream<Triple<BackendQuery, ChannelName, ?>>>> results,
|
||||
final OutputStream out, final Response response) throws Exception {
|
||||
final OutputStream out, final Response response) throws Exception {
|
||||
respond(context, jsonFactory, mapper, defaultResponseAggregationsStr, results, out, response);
|
||||
}
|
||||
|
||||
@@ -103,7 +105,7 @@ public class JSONTableResponseStreamWriter implements ResponseStreamWriter {
|
||||
final OutputStream out, final Response response) throws Exception {
|
||||
AtomicReference<Exception> exception = new AtomicReference<>();
|
||||
JsonGenerator generator = factory.createGenerator(out, JsonEncoding.UTF8);
|
||||
|
||||
|
||||
try {
|
||||
if (results.size() > 1) {
|
||||
generator.writeStartArray();
|
||||
@@ -116,7 +118,9 @@ public class JSONTableResponseStreamWriter implements ResponseStreamWriter {
|
||||
/* make sure identifiers are available */
|
||||
includedFields.add(QueryField.channel.name());
|
||||
includedFields.add(QueryField.backend.name());
|
||||
includedFields.addAll(defaultResponseAggregationsStr);
|
||||
if (!containsAggregation(includedFields)) {
|
||||
includedFields.addAll(defaultResponseAggregationsStr);
|
||||
}
|
||||
|
||||
ObjectWriter writer = JSONResponseStreamWriter.configureWriter(includedFields, mapper);
|
||||
|
||||
@@ -211,4 +215,13 @@ public class JSONTableResponseStreamWriter implements ResponseStreamWriter {
|
||||
throw exception.get();
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean containsAggregation(Set<String> includedFields) {
|
||||
for (Aggregation aggregation : Aggregation.values()) {
|
||||
if (includedFields.contains(aggregation.name())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user