Skip to content

Instantly share code, notes, and snippets.

@vietj
Created August 10, 2020 14:37
Show Gist options
  • Save vietj/bedf568e14ab9f00cbbe0b26c6ba53ec to your computer and use it in GitHub Desktop.
Save vietj/bedf568e14ab9f00cbbe0b26c6ba53ec to your computer and use it in GitHub Desktop.
public class FrancescoTest {
private static final HttpClient client = null;
public static void main(String[] args) {
MessageFactory factory = new MessageFactory(builder -> {
builder.writeBinary(new CloudEvent() {
});
});
client.request(new RequestOptions(), factory);
}
interface CloudEvent {
}
interface MessageBuilder {
void writeBinary(CloudEvent event);
}
static class MessageFactory implements Handler<AsyncResult<HttpClientRequest>> {
final Handler<MessageBuilder> handler;
public MessageFactory(Handler<MessageBuilder> handler) {
this.handler = handler;
}
@Override
public void handle(AsyncResult<HttpClientRequest> ar) {
if (ar.succeeded()) {
HttpClientRequest request = ar.result();
MessageBuilder builder = new MessageBuilder() {
@Override
public void writeBinary(CloudEvent event) {
// Write to request
}
};
handler.handle(builder);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment