JAVA-1595: Restore code for Jetty ReactiveStreams HTTP Client article
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user