Remove BSON again.
This commit is contained in:
@ -43,8 +43,6 @@ import ch.psi.daq.queryrest.model.PropertyFilterMixin;
|
||||
import ch.psi.daq.queryrest.query.QueryManager;
|
||||
import ch.psi.daq.queryrest.query.QueryManagerImpl;
|
||||
import ch.psi.daq.queryrest.response.PolymorphicResponseMixIn;
|
||||
import ch.psi.daq.queryrest.response.bson.BSONResponseStreamWriter;
|
||||
import ch.psi.daq.queryrest.response.bson.BSONTableResponseStreamWriter;
|
||||
import ch.psi.daq.queryrest.response.csv.CSVResponseStreamWriter;
|
||||
import ch.psi.daq.queryrest.response.json.JSONResponseStreamWriter;
|
||||
import ch.psi.daq.queryrest.response.json.JSONTableResponseStreamWriter;
|
||||
@ -158,16 +156,6 @@ public class QueryRestConfig extends WebMvcConfigurerAdapter {
|
||||
return new JSONTableResponseStreamWriter();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public BSONResponseStreamWriter bsonResponseStreamWriter() {
|
||||
return new BSONResponseStreamWriter();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public BSONTableResponseStreamWriter bsonTableResponseStreamWriter() {
|
||||
return new BSONTableResponseStreamWriter();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public MsgPackResponseStreamWriter msgPackResponseStreamWriter() {
|
||||
return new MsgPackResponseStreamWriter();
|
||||
|
@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
|
||||
import ch.psi.daq.queryrest.response.bson.BSONHTTPResponse;
|
||||
import ch.psi.daq.queryrest.response.csv.CSVHTTPResponse;
|
||||
import ch.psi.daq.queryrest.response.json.JSONHTTPResponse;
|
||||
import ch.psi.daq.queryrest.response.msgpack.MsgPackHTTPResponse;
|
||||
@ -15,7 +14,6 @@ import ch.psi.daq.queryrest.response.msgpack.MsgPackHTTPResponse;
|
||||
property = "format")
|
||||
@JsonSubTypes({
|
||||
@Type(value = JSONHTTPResponse.class, name = JSONHTTPResponse.FORMAT),
|
||||
@Type(value = BSONHTTPResponse.class, name = BSONHTTPResponse.FORMAT),
|
||||
@Type(value = MsgPackHTTPResponse.class, name = MsgPackHTTPResponse.FORMAT),
|
||||
@Type(value = CSVHTTPResponse.class, name = CSVHTTPResponse.FORMAT)
|
||||
})
|
||||
|
@ -1,69 +0,0 @@
|
||||
package ch.psi.daq.queryrest.response.bson;
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Triple;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.http.MediaType;
|
||||
|
||||
import ch.psi.daq.domain.json.ChannelName;
|
||||
import ch.psi.daq.domain.query.DAQQueries;
|
||||
import ch.psi.daq.domain.query.DAQQueryElement;
|
||||
import ch.psi.daq.domain.query.backend.BackendQuery;
|
||||
import ch.psi.daq.domain.query.operation.Compression;
|
||||
import ch.psi.daq.domain.query.response.ResponseFormat;
|
||||
import ch.psi.daq.queryrest.query.QueryManager;
|
||||
import ch.psi.daq.queryrest.response.AbstractHTTPResponse;
|
||||
import ch.psi.daq.queryrest.response.ResponseStreamWriter;
|
||||
import ch.psi.daq.queryrest.response.json.JSONHTTPResponse;
|
||||
|
||||
public class BSONHTTPResponse extends AbstractHTTPResponse {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(BSONHTTPResponse.class);
|
||||
|
||||
public static final String FORMAT = "bson";
|
||||
public static final String CONTENT_TYPE = MediaType.APPLICATION_OCTET_STREAM_VALUE;
|
||||
|
||||
public BSONHTTPResponse() {
|
||||
super(ResponseFormat.BSON);
|
||||
}
|
||||
|
||||
public BSONHTTPResponse(Compression compression) {
|
||||
this();
|
||||
setCompression(compression);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void respond(ApplicationContext context, DAQQueries queries, HttpServletResponse response) throws Exception {
|
||||
OutputStream out = handleCompressionAndResponseHeaders(response, CONTENT_TYPE);
|
||||
|
||||
boolean hasMapping = JSONHTTPResponse.validateQueries(queries);
|
||||
|
||||
try {
|
||||
LOGGER.debug("Executing query '{}'", queries);
|
||||
|
||||
QueryManager queryManager = context.getBean(QueryManager.class);
|
||||
ResponseStreamWriter streamWriter;
|
||||
if (hasMapping) {
|
||||
streamWriter = context.getBean(BSONTableResponseStreamWriter.class);
|
||||
} else {
|
||||
streamWriter = context.getBean(BSONResponseStreamWriter.class);
|
||||
}
|
||||
|
||||
// execute query
|
||||
List<Entry<DAQQueryElement, Stream<Triple<BackendQuery, ChannelName, ?>>>> result =
|
||||
queryManager.getEvents(queries);
|
||||
// write the response back to the client using java 8 streams
|
||||
streamWriter.respond(result, out, this);
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("Failed to execute query '{}'.", queries, e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
package ch.psi.daq.queryrest.response.bson;
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.ServletResponse;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Triple;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import ch.psi.daq.domain.json.ChannelName;
|
||||
import ch.psi.daq.domain.query.DAQQueryElement;
|
||||
import ch.psi.daq.domain.query.backend.BackendQuery;
|
||||
import ch.psi.daq.domain.query.response.Response;
|
||||
import ch.psi.daq.queryrest.response.ResponseStreamWriter;
|
||||
import ch.psi.daq.queryrest.response.json.JSONResponseStreamWriter;
|
||||
|
||||
import de.undercouch.bson4jackson.BsonFactory;
|
||||
|
||||
/**
|
||||
* Takes a Java 8 stream and writes it to the output stream provided by the {@link ServletResponse}
|
||||
* of the current request.
|
||||
*/
|
||||
public class BSONResponseStreamWriter implements ResponseStreamWriter {
|
||||
|
||||
@Resource
|
||||
private BsonFactory bsonFactory;
|
||||
|
||||
@Resource
|
||||
private ObjectMapper mapper;
|
||||
|
||||
@Override
|
||||
public void respond(final List<Entry<DAQQueryElement, Stream<Triple<BackendQuery, ChannelName, ?>>>> results,
|
||||
final OutputStream out, final Response response) throws Exception {
|
||||
JSONResponseStreamWriter.respond(bsonFactory, mapper, results, out, response);
|
||||
}
|
||||
}
|
@ -1,64 +0,0 @@
|
||||
package ch.psi.daq.queryrest.response.bson;
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.ServletResponse;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Triple;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import ch.psi.daq.domain.json.ChannelName;
|
||||
import ch.psi.daq.domain.query.DAQQueryElement;
|
||||
import ch.psi.daq.domain.query.backend.BackendQuery;
|
||||
import ch.psi.daq.domain.query.operation.Aggregation;
|
||||
import ch.psi.daq.domain.query.response.Response;
|
||||
import ch.psi.daq.queryrest.config.QueryRestConfig;
|
||||
import ch.psi.daq.queryrest.response.ResponseStreamWriter;
|
||||
import ch.psi.daq.queryrest.response.json.JSONTableResponseStreamWriter;
|
||||
|
||||
import de.undercouch.bson4jackson.BsonFactory;
|
||||
|
||||
/**
|
||||
* Takes a Java 8 stream and writes it to the output stream provided by the {@link ServletResponse}
|
||||
* of the current request.
|
||||
*/
|
||||
public class BSONTableResponseStreamWriter implements ResponseStreamWriter {
|
||||
|
||||
@Resource
|
||||
private ApplicationContext context;
|
||||
|
||||
@Resource
|
||||
private BsonFactory bsonFactory;
|
||||
|
||||
@Resource
|
||||
private ObjectMapper mapper;
|
||||
|
||||
@Resource(name = QueryRestConfig.BEAN_NAME_DEFAULT_RESPONSE_AGGREGATIONS)
|
||||
private Set<Aggregation> defaultResponseAggregations;
|
||||
|
||||
private Set<String> defaultResponseAggregationsStr;
|
||||
|
||||
@PostConstruct
|
||||
public void afterPropertiesSet() {
|
||||
defaultResponseAggregationsStr =
|
||||
defaultResponseAggregations.stream().map(Aggregation::name)
|
||||
.collect(Collectors.toCollection(LinkedHashSet::new));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void respond(final List<Entry<DAQQueryElement, Stream<Triple<BackendQuery, ChannelName, ?>>>> results,
|
||||
final OutputStream out, final Response response) throws Exception {
|
||||
JSONTableResponseStreamWriter.respond(context, bsonFactory, mapper, defaultResponseAggregationsStr, results, out,
|
||||
response);
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package ch.psi.daq.test.queryrest.controller;
|
||||
|
||||
import org.junit.After;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import ch.psi.daq.domain.query.response.Response;
|
||||
import ch.psi.daq.queryrest.response.bson.BSONHTTPResponse;
|
||||
|
||||
import de.undercouch.bson4jackson.BsonFactory;
|
||||
|
||||
/**
|
||||
* Tests the {@link DaqController} implementation.
|
||||
*/
|
||||
public class BsonQueryRestControllerTableTest extends AbstractQueryRestControllerTableTest {
|
||||
|
||||
private ObjectMapper responseMapper = new ObjectMapper(new BsonFactory());
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {}
|
||||
|
||||
@Override
|
||||
protected ObjectMapper getResponseMapper(){
|
||||
return responseMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Response getResponse() {
|
||||
return new BSONHTTPResponse();
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package ch.psi.daq.test.queryrest.controller;
|
||||
|
||||
import org.junit.After;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import ch.psi.daq.domain.query.response.Response;
|
||||
import ch.psi.daq.queryrest.response.bson.BSONHTTPResponse;
|
||||
|
||||
import de.undercouch.bson4jackson.BsonFactory;
|
||||
|
||||
/**
|
||||
* Tests the {@link DaqController} implementation.
|
||||
*/
|
||||
public class BsonQueryRestControllerTest extends AbstractQueryRestControllerTest {
|
||||
|
||||
private ObjectMapper responseMapper = new ObjectMapper(new BsonFactory());
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {}
|
||||
|
||||
@Override
|
||||
protected ObjectMapper getResponseMapper(){
|
||||
return responseMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Response getResponse() {
|
||||
return new BSONHTTPResponse();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user