Skip to content

Commit 3c3830b

Browse files
committed
Created BodyWriter to use in HttpSender
1 parent 451812e commit 3c3830b

File tree

3 files changed

+14
-19
lines changed

3 files changed

+14
-19
lines changed

opamp-client/src/main/java/io/opentelemetry/opamp/client/internal/connectivity/http/HttpSender.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,18 @@
66
package io.opentelemetry.opamp.client.internal.connectivity.http;
77

88
import java.io.Closeable;
9+
import java.io.IOException;
910
import java.io.InputStream;
1011
import java.io.OutputStream;
1112
import java.util.concurrent.CompletableFuture;
12-
import java.util.function.Consumer;
1313

1414
public interface HttpSender {
1515

16-
CompletableFuture<Response> send(Consumer<OutputStream> writer, int contentLength);
16+
CompletableFuture<Response> send(BodyWriter writer, int contentLength);
17+
18+
interface BodyWriter {
19+
void writeTo(OutputStream outputStream) throws IOException;
20+
}
1721

1822
interface Response extends Closeable {
1923
int statusCode();

opamp-client/src/main/java/io/opentelemetry/opamp/client/internal/connectivity/http/OkHttpSender.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77

88
import java.io.IOException;
99
import java.io.InputStream;
10-
import java.io.OutputStream;
1110
import java.util.concurrent.CompletableFuture;
12-
import java.util.function.Consumer;
1311
import okhttp3.Call;
1412
import okhttp3.Callback;
1513
import okhttp3.MediaType;
@@ -40,7 +38,7 @@ private OkHttpSender(String url, OkHttpClient client) {
4038
}
4139

4240
@Override
43-
public CompletableFuture<Response> send(Consumer<OutputStream> writer, int contentLength) {
41+
public CompletableFuture<Response> send(BodyWriter writer, int contentLength) {
4442
CompletableFuture<Response> future = new CompletableFuture<>();
4543
okhttp3.Request.Builder builder = new okhttp3.Request.Builder().url(url);
4644
builder.addHeader("Content-Type", CONTENT_TYPE);
@@ -108,12 +106,11 @@ public void close() {
108106
}
109107

110108
private static class RawRequestBody extends RequestBody {
111-
private final Consumer<OutputStream> writer;
109+
private final BodyWriter writer;
112110
private final int contentLength;
113111
private final MediaType contentType;
114112

115-
private RawRequestBody(
116-
Consumer<OutputStream> writer, int contentLength, MediaType contentType) {
113+
private RawRequestBody(BodyWriter writer, int contentLength, MediaType contentType) {
117114
this.writer = writer;
118115
this.contentLength = contentLength;
119116
this.contentType = contentType;
@@ -131,8 +128,8 @@ public long contentLength() {
131128
}
132129

133130
@Override
134-
public void writeTo(@NotNull BufferedSink bufferedSink) {
135-
writer.accept(bufferedSink.outputStream());
131+
public void writeTo(@NotNull BufferedSink bufferedSink) throws IOException {
132+
writer.writeTo(bufferedSink.outputStream());
136133
}
137134
}
138135
}

opamp-client/src/main/java/io/opentelemetry/opamp/client/internal/request/service/HttpRequestService.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.util.Optional;
2121
import java.util.concurrent.ExecutionException;
2222
import java.util.concurrent.atomic.AtomicBoolean;
23-
import java.util.function.Consumer;
2423
import java.util.function.Supplier;
2524
import javax.annotation.Nullable;
2625
import opamp.proto.AgentToServer;
@@ -205,21 +204,16 @@ private Callback getCallback() {
205204
return Objects.requireNonNull(callback);
206205
}
207206

208-
private static class ByteArrayWriter implements Consumer<OutputStream> {
207+
private static class ByteArrayWriter implements HttpSender.BodyWriter {
209208
private final byte[] data;
210209

211210
private ByteArrayWriter(byte[] data) {
212211
this.data = data;
213212
}
214213

215-
@SuppressWarnings("ThrowSpecificExceptions")
216214
@Override
217-
public void accept(OutputStream outputStream) {
218-
try {
219-
outputStream.write(data);
220-
} catch (IOException e) {
221-
throw new RuntimeException(e);
222-
}
215+
public void writeTo(OutputStream outputStream) throws IOException {
216+
outputStream.write(data);
223217
}
224218
}
225219
}

0 commit comments

Comments
 (0)