use of org.n52.janmayen.http.MediaType in project arctic-sea by 52North.
the class HttpUtils method writeObject.
private void writeObject(HttpServletRequest request, HttpServletResponse response, MediaType contentType, Writable writable, EncodingExceptionHandler owserHandler) throws IOException, HTTPException {
OutputStream out = null;
response.setContentType(writable.getEncodedContentType().toString());
try {
out = response.getOutputStream();
if (HTTPHeaders.supportsGzipEncoding(request) && writable.supportsGZip()) {
out = new GZIPOutputStream(out);
response.setHeader(HTTPHeaders.CONTENT_ENCODING, HTTPConstants.GZIP_ENCODING);
}
if (isCountingOutputStream) {
out = new CountingOutputStream(out);
}
if (writable.hasForcedHttpStatus()) {
response.setStatus(writable.getForcedHttpStatus().getCode());
}
writable.write(out, new ResponseProxy(response));
out.flush();
} catch (EncodingException e) {
Object writeOwsExceptionReport = owserHandler.handleEncodingException(request, response, e);
if (writeOwsExceptionReport != null) {
Writable owserWritable = getWritable(writeOwsExceptionReport, contentType);
try {
owserWritable.write(out, new ResponseProxy(response));
if (out != null) {
out.flush();
}
} catch (EncodingException ex) {
throw new HTTPException(HTTPStatus.INTERNAL_SERVER_ERROR, ex);
}
}
} finally {
if (out instanceof CountingOutputStream) {
Long bytesWritten = ((CountingOutputStream) out).getCount();
eventBus.submit(new CountingOutputStreamEvent(bytesWritten));
}
if (out != null) {
LOGGER.debug("Response status = " + response.getStatus());
out.close();
}
}
}
use of org.n52.janmayen.http.MediaType in project arctic-sea by 52North.
the class MediaTypeTest method wildCard.
@Test
public void wildCard() {
MediaType mt = MediaType.parse("*/*");
errors.checkThat(mt.getType(), is("*"));
errors.checkThat(mt.getSubtype(), is("*"));
errors.checkThat(mt.isWildcard(), is(true));
errors.checkThat(mt.isWildcardType(), is(true));
errors.checkThat(mt.isWildcardSubtype(), is(true));
errors.checkThat(mt.getParameters().size(), is(0));
}
use of org.n52.janmayen.http.MediaType in project arctic-sea by 52North.
the class MediaTypeTest method applicationXmlWithQuotedParameterAndEqualSignWithin.
@Test
public void applicationXmlWithQuotedParameterAndEqualSignWithin() {
MediaType mt = MediaType.parse(" application/xml; a=\"as = df\" ");
errors.checkThat(mt.getType(), is("application"));
errors.checkThat(mt.getSubtype(), is("xml"));
errors.checkThat(mt.getParameters().size(), is(1));
errors.checkThat(mt.getParameter("a").iterator().next(), is("as = df"));
}
use of org.n52.janmayen.http.MediaType in project arctic-sea by 52North.
the class MediaTypeTest method wildCardSubtype.
@Test
public void wildCardSubtype() {
MediaType mt = MediaType.parse("application/*");
errors.checkThat(mt.getType(), is("application"));
errors.checkThat(mt.getSubtype(), is("*"));
errors.checkThat(mt.isWildcard(), is(false));
errors.checkThat(mt.isWildcardType(), is(false));
errors.checkThat(mt.isWildcardSubtype(), is(true));
errors.checkThat(mt.getParameters().size(), is(0));
}
use of org.n52.janmayen.http.MediaType in project arctic-sea by 52North.
the class MediaTypeTest method applicationXmlWithQuotedParameterAndSpacesWithin.
@Test
public void applicationXmlWithQuotedParameterAndSpacesWithin() {
MediaType mt = MediaType.parse(" application/xml; a=\"as df\" ");
errors.checkThat(mt.getType(), is("application"));
errors.checkThat(mt.getSubtype(), is("xml"));
errors.checkThat(mt.getParameters().size(), is(1));
errors.checkThat(mt.getParameter("a").iterator().next(), is("as df"));
}
Aggregations