Skip to content

Commit 5137d32

Browse files
committed
Removed dependency on reactor core
1 parent cd34055 commit 5137d32

File tree

2 files changed

+23
-25
lines changed

2 files changed

+23
-25
lines changed

build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ dependencies {
5353
// Servlet
5454
compile 'javax.servlet:javax.servlet-api:3.1.0'
5555
compile 'javax.websocket:javax.websocket-api:1.1'
56-
compile 'io.projectreactor:reactor-core:3.0.5.RELEASE'
5756

5857
// GraphQL
5958
compile "com.graphql-java:graphql-java:$LIB_GRAPHQL_JAVA_VER"

src/main/java/graphql/servlet/AbstractGraphQLHttpServlet.java

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,40 +16,23 @@
1616
import graphql.servlet.core.GraphQLServletListener;
1717
import graphql.servlet.core.internal.GraphQLRequest;
1818
import graphql.servlet.core.internal.VariableMapper;
19-
import graphql.servlet.input.BatchInputPreProcessResult;
20-
import graphql.servlet.input.BatchInputPreProcessor;
21-
import graphql.servlet.input.GraphQLBatchedInvocationInput;
22-
import graphql.servlet.input.GraphQLInvocationInputFactory;
23-
import graphql.servlet.input.GraphQLSingleInvocationInput;
19+
import graphql.servlet.input.*;
2420
import org.reactivestreams.Publisher;
2521
import org.reactivestreams.Subscriber;
2622
import org.reactivestreams.Subscription;
2723
import org.slf4j.Logger;
2824
import org.slf4j.LoggerFactory;
29-
import reactor.core.publisher.Flux;
3025

3126
import javax.servlet.AsyncContext;
3227
import javax.servlet.AsyncEvent;
3328
import javax.servlet.AsyncListener;
3429
import javax.servlet.Servlet;
35-
import javax.servlet.ServletException;
3630
import javax.servlet.http.HttpServlet;
3731
import javax.servlet.http.HttpServletRequest;
3832
import javax.servlet.http.HttpServletResponse;
3933
import javax.servlet.http.Part;
40-
import java.io.BufferedInputStream;
41-
import java.io.ByteArrayOutputStream;
42-
import java.io.IOException;
43-
import java.io.InputStream;
44-
import java.io.Writer;
45-
import java.util.ArrayList;
46-
import java.util.Arrays;
47-
import java.util.HashMap;
48-
import java.util.Iterator;
49-
import java.util.List;
50-
import java.util.Map;
51-
import java.util.Objects;
52-
import java.util.Optional;
34+
import java.io.*;
35+
import java.util.*;
5336
import java.util.concurrent.CountDownLatch;
5437
import java.util.concurrent.atomic.AtomicReference;
5538
import java.util.function.BiConsumer;
@@ -358,13 +341,13 @@ private void doRequest(HttpServletRequest request, HttpServletResponse response,
358341
}
359342

360343
@Override
361-
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
344+
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
362345
init();
363346
doRequestAsync(req, resp, getHandler);
364347
}
365348

366349
@Override
367-
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
350+
protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
368351
init();
369352
doRequestAsync(req, resp, postHandler);
370353
}
@@ -402,7 +385,7 @@ private void query(GraphQLQueryInvoker queryInvoker, GraphQLObjectMapper graphQL
402385
} else {
403386
publisher = new SingleSubscriberPublisher<>();
404387
((SingleSubscriberPublisher<ExecutionResult>) publisher).offer(result);
405-
publisher = Flux.merge(publisher, (Publisher<DeferredExecutionResult>) result.getExtensions().get(GraphQL.DEFERRED_RESULTS));
388+
publisher = new MultiPublisher(publisher, (Publisher<DeferredExecutionResult>) result.getExtensions().get(GraphQL.DEFERRED_RESULTS));
406389
}
407390
publisher.subscribe(subscriber);
408391
if (isInAsyncThread) {
@@ -551,7 +534,6 @@ public void onStartAsync(AsyncEvent event) {
551534
}
552535
}
553536

554-
555537
private static class ExecutionResultSubscriber implements Subscriber<ExecutionResult> {
556538

557539
private final AtomicReference<Subscription> subscriptionRef;
@@ -598,4 +580,21 @@ public void await() throws InterruptedException {
598580
completedLatch.await();
599581
}
600582
}
583+
584+
private static class MultiPublisher<T> implements Publisher<T> {
585+
586+
private List<Publisher<T>> publishers;
587+
588+
@SafeVarargs
589+
MultiPublisher(Publisher<T>... publishers) {
590+
this.publishers = Arrays.asList(publishers);
591+
}
592+
593+
@Override
594+
public void subscribe(Subscriber<? super T> s) {
595+
publishers.forEach(publisher -> publisher.subscribe(s));
596+
}
597+
598+
}
599+
601600
}

0 commit comments

Comments
 (0)