Skip to content

Commit 63d11d6

Browse files
author
ingvord
committed
Close #189
1 parent 1a70d88 commit 63d11d6

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/main/java/org/tango/rest/TangoRestApi.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.tango.web.server.interceptors.TangoAttributeValueInterceptor;
2828
import org.tango.web.server.providers.*;
2929
import org.tango.web.server.v10.readers.CommandInOutBodyReader;
30+
import org.tango.web.server.writers.PlainTextWriter;
3031

3132
import javax.servlet.ServletContext;
3233
import javax.ws.rs.ApplicationPath;
@@ -97,6 +98,7 @@ public Set<Object> getSingletons() {
9798
singletons.add(new JsonpResponseWrapper());
9899

99100
singletons.add(new CommandInOutBodyReader());
101+
singletons.add(new PlainTextWriter());
100102

101103
return singletons;
102104
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.tango.web.server.writers;
2+
3+
import com.google.gson.Gson;
4+
5+
import javax.ws.rs.WebApplicationException;
6+
import javax.ws.rs.core.MediaType;
7+
import javax.ws.rs.core.MultivaluedMap;
8+
import javax.ws.rs.ext.MessageBodyWriter;
9+
import javax.ws.rs.ext.Provider;
10+
import java.io.IOException;
11+
import java.io.OutputStream;
12+
import java.lang.annotation.Annotation;
13+
import java.lang.reflect.Type;
14+
15+
/**
16+
* @author ingvord
17+
* @since 04.05.2020
18+
*/
19+
@Provider
20+
public class PlainTextWriter implements MessageBodyWriter<Object> {
21+
private final Gson gson = new Gson();
22+
23+
@Override
24+
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
25+
return mediaType.isCompatible(MediaType.TEXT_PLAIN_TYPE);
26+
}
27+
28+
@Override
29+
public void writeTo(Object o, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException {
30+
entityStream.write(gson.toJson(o).getBytes(mediaType.getParameters().getOrDefault("charset", "UTF-8")));
31+
}
32+
}

0 commit comments

Comments
 (0)