JAVA-1595: Restore code for Jetty ReactiveStreams HTTP Client article

This commit is contained in:
sampadawagde
2020-05-12 23:03:58 +05:30
parent c2f93b2164
commit 5ae337e1e2
8 changed files with 308 additions and 0 deletions
@@ -0,0 +1,35 @@
package com.baeldung.jetty.httpclient;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import org.eclipse.jetty.reactive.client.ReactiveResponse;
import org.reactivestreams.Subscriber;
import org.reactivestreams.Subscription;
public class BlockingSubscriber implements Subscriber<ReactiveResponse> {
BlockingQueue<ReactiveResponse> sink = new LinkedBlockingQueue<>(1);
@Override
public void onSubscribe(Subscription subscription) {
subscription.request(1);
}
@Override
public void onNext(ReactiveResponse response) {
sink.offer(response);
}
@Override
public void onError(Throwable failure) {
}
@Override
public void onComplete() {
}
public ReactiveResponse block() throws InterruptedException {
return sink.poll(5, TimeUnit.SECONDS);
}
}
@@ -0,0 +1,21 @@
package com.baeldung.jetty.httpclient;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.util.IO;
public class RequestHandler extends AbstractHandler {
@Override
public void handle(String target, Request jettyRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
jettyRequest.setHandled(true);
response.setContentType(request.getContentType());
IO.copy(request.getInputStream(), response.getOutputStream());
}
}