From 1f6b5388367eb500ce80358f22787260aebbf962 Mon Sep 17 00:00:00 2001 From: Ryland Degnan Date: Thu, 21 Jul 2016 15:27:46 -0700 Subject: [PATCH] Make RequestHandler an interface --- .../io/reactivesocket/RequestHandler.java | 28 +++++++++---------- .../test/TestRequestHandler.java | 2 +- reactivesocket-transport-local/build.gradle | 1 - 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/reactivesocket-core/src/main/java/io/reactivesocket/RequestHandler.java b/reactivesocket-core/src/main/java/io/reactivesocket/RequestHandler.java index 4859bd62b..7ec27b261 100644 --- a/reactivesocket-core/src/main/java/io/reactivesocket/RequestHandler.java +++ b/reactivesocket-core/src/main/java/io/reactivesocket/RequestHandler.java @@ -18,42 +18,42 @@ import java.util.function.Function; -public abstract class RequestHandler { - private static final Function> NO_REQUEST_RESPONSE_HANDLER = +public interface RequestHandler { + Function> NO_REQUEST_RESPONSE_HANDLER = payload -> PublisherUtils.errorPayload(new RuntimeException("No 'requestResponse' handler")); - private static final Function> NO_REQUEST_STREAM_HANDLER = + Function> NO_REQUEST_STREAM_HANDLER = payload -> PublisherUtils.errorPayload(new RuntimeException("No 'requestStream' handler")); - private static final Function> NO_REQUEST_SUBSCRIPTION_HANDLER = + Function> NO_REQUEST_SUBSCRIPTION_HANDLER = payload -> PublisherUtils.errorPayload(new RuntimeException("No 'requestSubscription' handler")); - private static final Function> NO_FIRE_AND_FORGET_HANDLER = + Function> NO_FIRE_AND_FORGET_HANDLER = payload -> Publishers.error(new RuntimeException("No 'fireAndForget' handler")); - private static final Function, Publisher> NO_REQUEST_CHANNEL_HANDLER = + Function, Publisher> NO_REQUEST_CHANNEL_HANDLER = payloads -> PublisherUtils.errorPayload(new RuntimeException("No 'requestChannel' handler")); - private static final Function> NO_METADATA_PUSH_HANDLER = + Function> NO_METADATA_PUSH_HANDLER = payload -> Publishers.error(new RuntimeException("No 'metadataPush' handler")); - public abstract Publisher handleRequestResponse(final Payload payload); + Publisher handleRequestResponse(final Payload payload); - public abstract Publisher handleRequestStream(final Payload payload); + Publisher handleRequestStream(final Payload payload); - public abstract Publisher handleSubscription(final Payload payload); + Publisher handleSubscription(final Payload payload); - public abstract Publisher handleFireAndForget(final Payload payload); + Publisher handleFireAndForget(final Payload payload); /** * @note The initialPayload will also be part of the inputs publisher. * It is there to simplify routing logic. */ - public abstract Publisher handleChannel(Payload initialPayload, final Publisher inputs); + Publisher handleChannel(final Payload initialPayload, final Publisher inputs); - public abstract Publisher handleMetadataPush(final Payload payload); + Publisher handleMetadataPush(final Payload payload); - public static class Builder { + class Builder { private Function> handleRequestResponse = NO_REQUEST_RESPONSE_HANDLER; private Function> handleRequestStream = NO_REQUEST_STREAM_HANDLER; private Function> handleRequestSubscription = NO_REQUEST_SUBSCRIPTION_HANDLER; diff --git a/reactivesocket-test/src/main/java/io/reactivesocket/test/TestRequestHandler.java b/reactivesocket-test/src/main/java/io/reactivesocket/test/TestRequestHandler.java index 1f254e758..8b4d70321 100644 --- a/reactivesocket-test/src/main/java/io/reactivesocket/test/TestRequestHandler.java +++ b/reactivesocket-test/src/main/java/io/reactivesocket/test/TestRequestHandler.java @@ -22,7 +22,7 @@ import static rx.RxReactiveStreams.*; -public class TestRequestHandler extends RequestHandler { +public class TestRequestHandler implements RequestHandler { @Override public Publisher handleRequestResponse(Payload payload) { diff --git a/reactivesocket-transport-local/build.gradle b/reactivesocket-transport-local/build.gradle index 1c943599d..b76c8d8af 100644 --- a/reactivesocket-transport-local/build.gradle +++ b/reactivesocket-transport-local/build.gradle @@ -12,7 +12,6 @@ */ dependencies { - compile project(':reactivesocket-transport-tcp') compile project(':reactivesocket-core') testCompile project(':reactivesocket-test')