Skip to content

Commit b945400

Browse files
authored
utf8 helpers on payload (rsocket#355)
1 parent 8e8b328 commit b945400

15 files changed

Lines changed: 44 additions & 110 deletions

File tree

rsocket-core/src/main/java/io/rsocket/Frame.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,10 @@ public static Frame from(final ByteBuf content) {
266266
return frame;
267267
}
268268

269+
public String getDataUtf8() {
270+
return StandardCharsets.UTF_8.decode(getData()).toString();
271+
}
272+
269273
/* TODO:
270274
*
271275
* fromRequest(type, id, payload)

rsocket-core/src/main/java/io/rsocket/Payload.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,19 @@
1616
package io.rsocket;
1717

1818
import java.nio.ByteBuffer;
19+
import java.nio.charset.StandardCharsets;
1920

2021
/** Payload of a {@link Frame}. */
2122
public interface Payload {
2223
ByteBuffer getMetadata();
2324

2425
ByteBuffer getData();
26+
27+
default String getMetadataUtf8() {
28+
return StandardCharsets.UTF_8.decode(getMetadata()).toString();
29+
}
30+
31+
default String getDataUtf8() {
32+
return StandardCharsets.UTF_8.decode(getData()).toString();
33+
}
2534
}

rsocket-core/src/main/java/io/rsocket/RSocketClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ private void handleMissingResponseProcessor(int streamId, FrameType type, Frame
472472
if (type == FrameType.ERROR) {
473473
// message for stream that has never existed, we have a problem with
474474
// the overall connection and must tear down
475-
String errorMessage = StandardCharsets.UTF_8.decode(frame.getData()).toString();
475+
String errorMessage = frame.getDataUtf8();
476476

477477
throw new IllegalStateException(
478478
"Client received error for non-existent stream: "

rsocket-core/src/main/java/io/rsocket/exceptions/Exceptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ private Exceptions() {}
2727
public static RuntimeException from(Frame frame) {
2828
final int errorCode = Frame.Error.errorCode(frame);
2929

30-
String message = StandardCharsets.UTF_8.decode(frame.getData()).toString();
30+
String message = frame.getDataUtf8();
3131
switch (errorCode) {
3232
case APPLICATION_ERROR:
3333
return new ApplicationException(message);

rsocket-core/src/test/java/io/rsocket/TestUtil.java

Lines changed: 0 additions & 52 deletions
This file was deleted.

rsocket-core/src/test/java/io/rsocket/util/PayloadImplTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import static org.hamcrest.MatcherAssert.*;
1717
import static org.hamcrest.Matchers.*;
1818

19-
import io.rsocket.TestUtil;
2019
import org.junit.Test;
2120

2221
public class PayloadImplTest {
@@ -39,8 +38,8 @@ public void testReuseWithExternalMark() throws Exception {
3938
}
4039

4140
public void assertDataAndMetadata(PayloadImpl p) {
42-
assertThat("Unexpected data.", TestUtil.byteToString(p.getData()), equalTo(DATA_VAL));
41+
assertThat("Unexpected data.", p.getDataUtf8(), equalTo(DATA_VAL));
4342
assertThat(
44-
"Unexpected metadata.", TestUtil.byteToString(p.getMetadata()), equalTo(METADATA_VAL));
43+
"Unexpected metadata.", p.getMetadataUtf8(), equalTo(METADATA_VAL));
4544
}
4645
}

rsocket-examples/src/main/java/io/rsocket/examples/transport/tcp/channel/ChannelEchoClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public static void main(String[] args) {
4545

4646
socket
4747
.requestChannel(Flux.interval(Duration.ofMillis(1000)).map(i -> new PayloadImpl("Hello")))
48-
.map(payload -> StandardCharsets.UTF_8.decode(payload.getData()).toString())
48+
.map(Payload::getDataUtf8)
4949
.doOnNext(System.out::println)
5050
.take(10)
5151
.thenEmpty(socket.close())
@@ -60,7 +60,7 @@ public Mono<RSocket> accept(ConnectionSetupPayload setupPayload, RSocket reactiv
6060
@Override
6161
public Flux<Payload> requestChannel(Publisher<Payload> payloads) {
6262
return Flux.from(payloads)
63-
.map(payload -> StandardCharsets.UTF_8.decode(payload.getData()).toString())
63+
.map(Payload::getDataUtf8)
6464
.map(s -> "Echo: " + s)
6565
.map(PayloadImpl::new);
6666
}

rsocket-examples/src/main/java/io/rsocket/examples/transport/tcp/duplex/DuplexClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public static void main(String[] args) {
3333
(setup, reactiveSocket) -> {
3434
reactiveSocket
3535
.requestStream(new PayloadImpl("Hello-Bidi"))
36-
.map(payload -> StandardCharsets.UTF_8.decode(payload.getData()).toString())
36+
.map(Payload::getDataUtf8)
3737
.log()
3838
.subscribe();
3939

rsocket-examples/src/main/java/io/rsocket/examples/transport/tcp/requestresponse/HelloWorldClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,21 @@ public Mono<Payload> requestResponse(Payload p) {
5858

5959
socket
6060
.requestResponse(new PayloadImpl("Hello"))
61-
.map(payload -> StandardCharsets.UTF_8.decode(payload.getData()).toString())
61+
.map(Payload::getDataUtf8)
6262
.onErrorReturn("error")
6363
.doOnNext(System.out::println)
6464
.block();
6565

6666
socket
6767
.requestResponse(new PayloadImpl("Hello"))
68-
.map(payload -> StandardCharsets.UTF_8.decode(payload.getData()).toString())
68+
.map(Payload::getDataUtf8)
6969
.onErrorReturn("error")
7070
.doOnNext(System.out::println)
7171
.block();
7272

7373
socket
7474
.requestResponse(new PayloadImpl("Hello"))
75-
.map(payload -> StandardCharsets.UTF_8.decode(payload.getData()).toString())
75+
.map(Payload::getDataUtf8)
7676
.onErrorReturn("error")
7777
.doOnNext(System.out::println)
7878
.block();

rsocket-examples/src/main/java/io/rsocket/examples/transport/tcp/stream/StreamingClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static void main(String[] args) {
3939

4040
socket
4141
.requestStream(new PayloadImpl("Hello"))
42-
.map(payload -> StandardCharsets.UTF_8.decode(payload.getData()).toString())
42+
.map(Payload::getDataUtf8)
4343
.doOnNext(System.out::println)
4444
.take(10)
4545
.thenEmpty(socket.close())

0 commit comments

Comments
 (0)