From 7d9eeb705aa3a1511760bf43dd20a72b0405d52a Mon Sep 17 00:00:00 2001 From: Idel Pivnitskiy Date: Fri, 23 Jun 2023 09:57:17 -0700 Subject: [PATCH] Provide default `fragment(String)` override for all request types (#2626) Motivation: Even though `HttpRequestMetaData#fragment()` has default implementation, because all request types override it with different return type, we must provide default implementations for these overrides too. Otherwise, the code is not backward compatible. Modifications: - Add `default` implementation for `fragment(String)` in `HttpRequest`, `StreamingHttpRequest`, `BlockingStreamingHttpRequest`; Result: Request interfaces are backward compatible. --- .../servicetalk/http/api/BlockingStreamingHttpRequest.java | 5 ++++- .../src/main/java/io/servicetalk/http/api/HttpRequest.java | 5 ++++- .../java/io/servicetalk/http/api/StreamingHttpRequest.java | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/servicetalk-http-api/src/main/java/io/servicetalk/http/api/BlockingStreamingHttpRequest.java b/servicetalk-http-api/src/main/java/io/servicetalk/http/api/BlockingStreamingHttpRequest.java index cffc89c17f..4434000f93 100644 --- a/servicetalk-http-api/src/main/java/io/servicetalk/http/api/BlockingStreamingHttpRequest.java +++ b/servicetalk-http-api/src/main/java/io/servicetalk/http/api/BlockingStreamingHttpRequest.java @@ -294,7 +294,10 @@ default BlockingStreamingHttpRequest transform(TrailersTransformer HttpRequest payloadBody(T pojo, HttpSerializer serializer) { HttpRequest setQueryParameters(String key, String... values); @Override - HttpRequest fragment(@Nullable String fragment); + default HttpRequest fragment(@Nullable String fragment) { + throw new UnsupportedOperationException("HttpRequest#fragment(String) is not supported by " + + getClass()); + } @Override HttpRequest version(HttpProtocolVersion version); diff --git a/servicetalk-http-api/src/main/java/io/servicetalk/http/api/StreamingHttpRequest.java b/servicetalk-http-api/src/main/java/io/servicetalk/http/api/StreamingHttpRequest.java index 1594ff5987..23ee24c9a2 100644 --- a/servicetalk-http-api/src/main/java/io/servicetalk/http/api/StreamingHttpRequest.java +++ b/servicetalk-http-api/src/main/java/io/servicetalk/http/api/StreamingHttpRequest.java @@ -285,7 +285,10 @@ StreamingHttpRequest transform(TrailersTransformer trailersTransfor StreamingHttpRequest method(HttpRequestMethod method); @Override - StreamingHttpRequest fragment(@Nullable String fragment); + default StreamingHttpRequest fragment(@Nullable String fragment) { + throw new UnsupportedOperationException("StreamingHttpRequest#fragment(String) is not supported by " + + getClass()); + } @Deprecated @Override