Skip to content
This repository was archived by the owner on Mar 3, 2026. It is now read-only.

Commit ffc2669

Browse files
committed
Remove Response.Body from BodyConverter.write
1 parent 12588d8 commit ffc2669

9 files changed

Lines changed: 27 additions & 36 deletions

File tree

jooby-core/src/main/java/jooby/BodyConverter.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55

66
import javax.annotation.Nonnull;
77

8-
import jooby.Response.Body;
9-
108
import com.google.common.annotations.Beta;
119
import com.google.inject.Key;
1210
import com.google.inject.TypeLiteral;
@@ -83,6 +81,6 @@ public interface BodyConverter {
8381
* @param writer The writing context.
8482
* @throws Exception If the body can't be write it.
8583
*/
86-
void write(@Nonnull Body body, @Nonnull BodyWriter writer) throws Exception;
84+
void write(@Nonnull Object body, @Nonnull BodyWriter writer) throws Exception;
8785

8886
}

jooby-core/src/main/java/jooby/TemplateProcessor.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import java.util.List;
44

5-
import jooby.Response.Body;
6-
75
import com.google.common.annotations.Beta;
86
import com.google.common.collect.ImmutableList;
97
import com.google.inject.TypeLiteral;
@@ -48,8 +46,8 @@ public final <T> T read(final TypeLiteral<T> type, final BodyReader reader) thro
4846
}
4947

5048
@Override
51-
public void write(final Body body, final BodyWriter writer) throws Exception {
52-
final Viewable viewable = (Viewable) body.content().get();
49+
public void write(final Object body, final BodyWriter writer) throws Exception {
50+
final Viewable viewable = (Viewable) body;
5351
render(viewable, writer);
5452
}
5553

jooby-core/src/main/java/jooby/internal/AssetBodyConverter.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import jooby.BodyReader;
1313
import jooby.BodyWriter;
1414
import jooby.MediaType;
15-
import jooby.Response.Body;
1615

1716
import com.google.common.collect.ImmutableList;
1817
import com.google.common.io.ByteStreams;
@@ -48,8 +47,8 @@ public <T> T read(final TypeLiteral<T> type, final BodyReader reader) throws Exc
4847
}
4948

5049
@Override
51-
public void write(final Body body, final BodyWriter writer) throws Exception {
52-
Asset asset = (Asset) body.content().get();
50+
public void write(final Object body, final BodyWriter writer) throws Exception {
51+
Asset asset = (Asset) body;
5352
boolean text = mediaType.equals(MediaType.javascript) || mediaType.equals(MediaType.css)
5453
|| mediaType.equals(MediaType.json) || MediaType.text.matches(mediaType)
5554
|| mediaType.equals(MediaType.xml);

jooby-core/src/main/java/jooby/internal/FallbackBodyConverter.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import jooby.BodyReader;
99
import jooby.BodyWriter;
1010
import jooby.MediaType;
11-
import jooby.Response.Body;
1211
import jooby.Viewable;
1312

1413
import com.google.common.collect.ImmutableList;
@@ -26,8 +25,8 @@ public boolean canWrite(final Class<?> type) {
2625
}
2726

2827
@Override
29-
public void write(final Body body, final BodyWriter writer) throws Exception {
30-
try (InputStream in = (InputStream) body.content().get()) {
28+
public void write(final Object body, final BodyWriter writer) throws Exception {
29+
try (InputStream in = (InputStream) body) {
3130
writer.bytes(out -> ByteStreams.copy(in, out));
3231
}
3332
}
@@ -41,8 +40,8 @@ public boolean canWrite(final Class<?> type) {
4140
}
4241

4342
@Override
44-
public void write(final Body body, final BodyWriter writer) throws Exception {
45-
try (Reader in = (Reader) body.content().get()) {
43+
public void write(final Object body, final BodyWriter writer) throws Exception {
44+
try (Reader in = (Reader) body) {
4645
writer.text(out -> CharStreams.copy(in, out));
4746
}
4847
}
@@ -66,7 +65,7 @@ public boolean canWrite(final Class<?> type) {
6665
}
6766

6867
@Override
69-
public void write(final Body body, final BodyWriter writer) throws Exception {
68+
public void write(final Object body, final BodyWriter writer) throws Exception {
7069
throw new UnsupportedOperationException();
7170
}
7271
},
@@ -79,10 +78,9 @@ public boolean canWrite(final Class<?> type) {
7978
}
8079

8180
@Override
82-
public void write(final Body body, final BodyWriter writer) throws Exception {
83-
Object message = body.content().get();
84-
writer.text(out -> out.write(message instanceof Viewable ? ((Viewable) message).model()
85-
.toString() : message.toString()));
81+
public void write(final Object body, final BodyWriter writer) throws Exception {
82+
writer.text(out -> out.write(body instanceof Viewable ? ((Viewable) body).model()
83+
.toString() : body.toString()));
8684
}
8785
};
8886

jooby-core/src/main/java/jooby/internal/ForwardingBodyConverter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import jooby.BodyReader;
99
import jooby.BodyWriter;
1010
import jooby.MediaType;
11-
import jooby.Response.Body;
1211

1312
import com.google.common.collect.ImmutableList;
1413
import com.google.inject.TypeLiteral;
@@ -49,7 +48,7 @@ public <T> T read(final TypeLiteral<T> type, final BodyReader reader) throws Exc
4948
}
5049

5150
@Override
52-
public void write(final Body body, final BodyWriter writer) throws Exception {
51+
public void write(final Object body, final BodyWriter writer) throws Exception {
5352
converter.write(body, writer);
5453
}
5554

jooby-core/src/main/java/jooby/internal/ResponseImpl.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ private static BodyConverter noop(final List<MediaType> types) {
259259
return new BodyConverter() {
260260

261261
@Override
262-
public void write(final Body body, final BodyWriter writer) throws Exception {
262+
public void write(final Object body, final BodyWriter writer) throws Exception {
263263
writer.bytes(out -> out.close());
264264
}
265265

@@ -314,7 +314,13 @@ public void send(final Body body, final BodyConverter converter) throws Exceptio
314314
return new OutputStreamWriter(response.getOutputStream(), charset);
315315
};
316316

317-
converter.write(body, new BodyWriterImpl(charset, stream, writer));
317+
Optional<Object> content = body.content();
318+
if (content.isPresent()) {
319+
converter.write(content.get(), new BodyWriterImpl(charset, stream, writer));
320+
} else {
321+
// dump any pending header
322+
setHeaders.run();
323+
}
318324
}
319325

320326
@Override

jooby-core/src/main/java/jooby/internal/WebSocketImpl.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
import jooby.BodyConverter;
1515
import jooby.MediaType;
16-
import jooby.Response;
1716
import jooby.Variant;
1817
import jooby.WebSocket;
1918
import jooby.fn.ExSupplier;
@@ -142,11 +141,9 @@ public void writeFailed(final Throwable cause) {
142141
ExSupplier<Writer> reader = () -> {
143142
return new PrintWriter(stream(session, callback, true));
144143
};
145-
converter.get().write(Response.Body.ok(data),
146-
new BodyWriterImpl(Charsets.UTF_8, stream, reader));
144+
converter.get().write(data, new BodyWriterImpl(Charsets.UTF_8, stream, reader));
147145
} else {
148146
RemoteEndpoint remote = session.getRemote();
149-
150147
if (byte[].class == data.getClass() || Byte[].class == data.getClass()) {
151148
remote.sendBytes(ByteBuffer.wrap((byte[]) data), callback);
152149
} else if (ByteBuffer.class.isInstance(data)) {

jooby-jackson/src/main/java/jooby/JSON.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,6 @@
208208

209209
import java.util.List;
210210

211-
import jooby.Response.Body;
212-
213211
import com.fasterxml.jackson.databind.ObjectMapper;
214212
import com.google.inject.TypeLiteral;
215213

@@ -244,8 +242,8 @@ public <T> T read(final TypeLiteral<T> type, final BodyReader reader) throws Exc
244242
}
245243

246244
@Override
247-
public void write(final Body body, final BodyWriter writer) throws Exception {
248-
writer.text(out -> mapper.writeValue(out, body.content().get()));
245+
public void write(final Object body, final BodyWriter writer) throws Exception {
246+
writer.text(out -> mapper.writeValue(out, body));
249247
}
250248

251249
@Override

jooby-tests/src/test/java/jooby/TestBodyConverter.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import java.util.List;
44

5-
import jooby.Response.Body;
6-
75
import com.google.common.collect.ImmutableList;
86
import com.google.common.io.CharStreams;
97
import com.google.inject.TypeLiteral;
@@ -27,9 +25,9 @@ public <T> T read(final TypeLiteral<T> type, final BodyReader reader) throws Exc
2725
}
2826

2927
@Override
30-
public void write(final Body body, final BodyWriter writer)
28+
public void write(final Object body, final BodyWriter writer)
3129
throws Exception {
32-
writer.text(w -> w.write("{\"body\": \"" + body.content().get() + "\"}"));
30+
writer.text(w -> w.write("{\"body\": \"" + body + "\"}"));
3331
}
3432

3533
@Override

0 commit comments

Comments
 (0)