From 840b9f66508174b2979f805b948a63e094f61ea6 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Tue, 21 Jul 2020 15:08:27 +0900 Subject: [PATCH 1/2] Add a bunch of `final` keywords ... to the classes and methods we did not intend to allow extending or overriding. --- .../core/client/retry/RetryingClientBase.java | 2 +- .../client/AbstractEventLoopState.java | 8 ++--- .../client/AbstractWebClientBuilder.java | 4 +-- .../armeria/client/PooledChannel.java | 4 +-- .../AbstractCircuitBreakerClient.java | 2 +- .../AbstractCircuitBreakerClientBuilder.java | 6 ++-- .../circuitbreaker/CircuitBreakerConfig.java | 2 +- ...ractHealthCheckedEndpointGroupBuilder.java | 2 +- .../AbstractConcurrencyLimitingClient.java | 6 ++-- .../client/logging/AbstractLoggingClient.java | 2 +- .../AbstractMetricCollectingClient.java | 2 +- .../client/retry/AbstractRetryingClient.java | 6 ++-- .../retry/AbstractRetryingClientBuilder.java | 10 +++--- .../common/AbstractAggregatedHttpMessage.java | 4 +-- .../common/AbstractHttpHeadersBuilder.java | 2 +- .../common/AbstractRequestContextBuilder.java | 2 +- .../DefaultContextAwareExecutorService.java | 2 +- .../common/DefaultHttpHeadersBuilder.java | 2 +- .../armeria/common/HttpHeadersBase.java | 12 +++---- .../common/NonWrappingRequestContext.java | 16 ++++----- .../armeria/common/QueryParamsBase.java | 10 +++--- .../armeria/common/StringMultimap.java | 2 +- .../LengthLimitingContentPreviewer.java | 4 +-- .../logging/LoggingDecoratorBuilder.java | 26 +++++++------- .../common/stream/AbstractStreamMessage.java | 2 +- .../AbstractStreamMessageAndWriter.java | 2 +- .../common/stream/DefaultStreamMessage.java | 24 ++++++------- .../DefaultStreamMessageDuplicator.java | 16 ++++----- .../common/stream/DeferredStreamMessage.java | 28 +++++++-------- .../common/stream/FilteredStreamMessage.java | 18 +++++----- .../stream/PublisherBasedStreamMessage.java | 16 ++++----- .../stream/RegularFixedStreamMessage.java | 2 +- .../armeria/common/util/AbstractOption.java | 4 +-- .../common/util/AbstractOptionValue.java | 6 ++-- .../armeria/common/util/AbstractOptions.java | 4 +-- .../armeria/common/util/StartStopSupport.java | 8 ++--- .../client/DefaultDnsNameResolver.java | 2 +- .../common/AbstractContextAwareFuture.java | 14 ++++---- .../AbstractHttp2ConnectionHandler.java | 12 +++---- ...AbstractHttp2ConnectionHandlerBuilder.java | 36 +++++++++---------- .../internal/common/Http1ObjectEncoder.java | 4 +-- .../common/Http2KeepAliveHandler.java | 8 ++--- .../common/ReadSuppressingHandler.java | 2 +- .../server/annotation/AnnotatedService.java | 2 +- .../server/Http1ServerKeepAliveHandler.java | 2 +- .../server/docs/DocStringExtractor.java | 2 +- .../throttling/AbstractThrottlingService.java | 2 +- .../server/throttling/ThrottlingStrategy.java | 2 +- .../internal/common/Java9VersionSpecific.java | 6 ++-- .../server/mock/MockWebServerExtension.java | 8 ++--- .../client/retrofit2/AbstractSubscriber.java | 6 ++-- .../armeria/client/retrofit2/PipeBuffer.java | 2 +- .../testing/DynamicBehaviorHandler.java | 2 +- .../internal/testing/TemporaryFolder.java | 2 +- .../common/thrift/text/PairContext.java | 10 +++--- .../armeria/server/tomcat/TomcatService.java | 2 +- .../server/tomcat/UnmanagedTomcatService.java | 2 +- .../AbstractCuratorFrameworkBuilder.java | 2 +- 58 files changed, 199 insertions(+), 199 deletions(-) diff --git a/benchmarks/src/jmh/java/com/linecorp/armeria/core/client/retry/RetryingClientBase.java b/benchmarks/src/jmh/java/com/linecorp/armeria/core/client/retry/RetryingClientBase.java index 411822ba5bb..c0340323bf2 100644 --- a/benchmarks/src/jmh/java/com/linecorp/armeria/core/client/retry/RetryingClientBase.java +++ b/benchmarks/src/jmh/java/com/linecorp/armeria/core/client/retry/RetryingClientBase.java @@ -53,7 +53,7 @@ public void stop() { protected abstract WebClient newClient(); - protected String baseUrl() { + protected final String baseUrl() { return "h2c://127.0.0.1:" + server.activeLocalPort(SessionProtocol.HTTP); } diff --git a/core/src/main/java/com/linecorp/armeria/client/AbstractEventLoopState.java b/core/src/main/java/com/linecorp/armeria/client/AbstractEventLoopState.java index 094706f325a..c1a1cd94c0b 100644 --- a/core/src/main/java/com/linecorp/armeria/client/AbstractEventLoopState.java +++ b/core/src/main/java/com/linecorp/armeria/client/AbstractEventLoopState.java @@ -47,19 +47,19 @@ static AbstractEventLoopState of(List eventLoops, int maxNumEventLoop this.scheduler = scheduler; } - List eventLoops() { + final List eventLoops() { return eventLoops; } - DefaultEventLoopScheduler scheduler() { + final DefaultEventLoopScheduler scheduler() { return scheduler; } - long lastActivityTimeNanos() { + final long lastActivityTimeNanos() { return lastActivityTimeNanos; } - void setLastActivityTimeNanos() { + final void setLastActivityTimeNanos() { lastActivityTimeNanos = System.nanoTime(); } diff --git a/core/src/main/java/com/linecorp/armeria/client/AbstractWebClientBuilder.java b/core/src/main/java/com/linecorp/armeria/client/AbstractWebClientBuilder.java index 43851f4352a..61d8ac3df80 100644 --- a/core/src/main/java/com/linecorp/armeria/client/AbstractWebClientBuilder.java +++ b/core/src/main/java/com/linecorp/armeria/client/AbstractWebClientBuilder.java @@ -133,7 +133,7 @@ private static Scheme validateScheme(String scheme) { * {@link WebClient#builder(String)} or * {@link WebClient#builder(URI)} is not an HTTP scheme */ - protected WebClient buildWebClient() { + protected final WebClient buildWebClient() { final ClientOptions options = buildOptions(); final ClientBuilderParams params = clientBuilderParams(options); final ClientFactory factory = options.factory(); @@ -147,7 +147,7 @@ protected WebClient buildWebClient() { * {@link WebClient#builder(String)} or * {@link WebClient#builder(URI)} is not an HTTP scheme */ - protected ClientBuilderParams clientBuilderParams(ClientOptions options) { + protected final ClientBuilderParams clientBuilderParams(ClientOptions options) { requireNonNull(options, "options"); if (uri != null) { return ClientBuilderParams.of(uri, WebClient.class, options); diff --git a/core/src/main/java/com/linecorp/armeria/client/PooledChannel.java b/core/src/main/java/com/linecorp/armeria/client/PooledChannel.java index 816f84a8158..193784d7ce3 100644 --- a/core/src/main/java/com/linecorp/armeria/client/PooledChannel.java +++ b/core/src/main/java/com/linecorp/armeria/client/PooledChannel.java @@ -32,11 +32,11 @@ abstract class PooledChannel implements ReleasableHolder { } @Override - public Channel get() { + public final Channel get() { return channel; } - SessionProtocol protocol() { + final SessionProtocol protocol() { return protocol; } } diff --git a/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/AbstractCircuitBreakerClient.java b/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/AbstractCircuitBreakerClient.java index 86b7ca1f6a0..bbbecd122c4 100644 --- a/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/AbstractCircuitBreakerClient.java +++ b/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/AbstractCircuitBreakerClient.java @@ -120,7 +120,7 @@ final CircuitBreakerRule fromRuleWithContent() { } @Override - public O execute(ClientRequestContext ctx, I req) throws Exception { + public final O execute(ClientRequestContext ctx, I req) throws Exception { final CircuitBreaker circuitBreaker; try { circuitBreaker = mapping.get(ctx, req); diff --git a/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/AbstractCircuitBreakerClientBuilder.java b/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/AbstractCircuitBreakerClientBuilder.java index 293fc29b138..757bc55c44b 100644 --- a/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/AbstractCircuitBreakerClientBuilder.java +++ b/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/AbstractCircuitBreakerClientBuilder.java @@ -63,12 +63,12 @@ private AbstractCircuitBreakerClientBuilder( this.ruleWithContent = ruleWithContent; } - CircuitBreakerRule rule() { + final CircuitBreakerRule rule() { checkState(rule != null, "rule is not set."); return rule; } - CircuitBreakerRuleWithContent ruleWithContent() { + final CircuitBreakerRuleWithContent ruleWithContent() { checkState(ruleWithContent != null, "ruleWithContent is not set."); return ruleWithContent; } @@ -84,7 +84,7 @@ public AbstractCircuitBreakerClientBuilder mapping(CircuitBreakerMapping mapp return this; } - CircuitBreakerMapping mapping() { + final CircuitBreakerMapping mapping() { return mapping; } diff --git a/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/CircuitBreakerConfig.java b/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/CircuitBreakerConfig.java index fc1394ebaa4..14f812d72ff 100644 --- a/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/CircuitBreakerConfig.java +++ b/core/src/main/java/com/linecorp/armeria/client/circuitbreaker/CircuitBreakerConfig.java @@ -26,7 +26,7 @@ /** * Stores configurations of circuit breaker. */ -class CircuitBreakerConfig { +final class CircuitBreakerConfig { @Nullable private final String name; diff --git a/core/src/main/java/com/linecorp/armeria/client/endpoint/healthcheck/AbstractHealthCheckedEndpointGroupBuilder.java b/core/src/main/java/com/linecorp/armeria/client/endpoint/healthcheck/AbstractHealthCheckedEndpointGroupBuilder.java index efcb141c42a..5d23695f5df 100644 --- a/core/src/main/java/com/linecorp/armeria/client/endpoint/healthcheck/AbstractHealthCheckedEndpointGroupBuilder.java +++ b/core/src/main/java/com/linecorp/armeria/client/endpoint/healthcheck/AbstractHealthCheckedEndpointGroupBuilder.java @@ -188,7 +188,7 @@ public AbstractHealthCheckedEndpointGroupBuilder maxEndpointCount(int maxEndpoin /** * Returns a newly created {@link HealthCheckedEndpointGroup} based on the properties set so far. */ - public HealthCheckedEndpointGroup build() { + public final HealthCheckedEndpointGroup build() { final HealthCheckStrategy healthCheckStrategy; if (maxEndpointCount != null) { healthCheckStrategy = new PartialHealthCheckStrategyBuilder() diff --git a/core/src/main/java/com/linecorp/armeria/client/limit/AbstractConcurrencyLimitingClient.java b/core/src/main/java/com/linecorp/armeria/client/limit/AbstractConcurrencyLimitingClient.java index ac517ab347a..21d3b7b1438 100644 --- a/core/src/main/java/com/linecorp/armeria/client/limit/AbstractConcurrencyLimitingClient.java +++ b/core/src/main/java/com/linecorp/armeria/client/limit/AbstractConcurrencyLimitingClient.java @@ -113,12 +113,12 @@ static void validateMaxConcurrency(int maxConcurrency) { /** * Returns the number of the {@link Request}s that are being executed. */ - public int numActiveRequests() { + public final int numActiveRequests() { return numActiveRequests.get(); } @Override - public O execute(ClientRequestContext ctx, I req) throws Exception { + public final O execute(ClientRequestContext ctx, I req) throws Exception { return maxConcurrency == 0 ? unlimitedExecute(ctx, req) : limitedExecute(ctx, req); } @@ -161,7 +161,7 @@ private O unlimitedExecute(ClientRequestContext ctx, I req) throws Exception { } } - void drain() { + final void drain() { while (!pendingRequests.isEmpty()) { final int currentActiveRequests = numActiveRequests.get(); if (currentActiveRequests >= maxConcurrency) { diff --git a/core/src/main/java/com/linecorp/armeria/client/logging/AbstractLoggingClient.java b/core/src/main/java/com/linecorp/armeria/client/logging/AbstractLoggingClient.java index 3344b9c5eaa..3a4d076306d 100644 --- a/core/src/main/java/com/linecorp/armeria/client/logging/AbstractLoggingClient.java +++ b/core/src/main/java/com/linecorp/armeria/client/logging/AbstractLoggingClient.java @@ -124,7 +124,7 @@ abstract class AbstractLoggingClient } @Override - public O execute(ClientRequestContext ctx, I req) throws Exception { + public final O execute(ClientRequestContext ctx, I req) throws Exception { if (sampler.isSampled(ctx)) { ctx.log().whenRequestComplete().thenAccept(requestLogger); ctx.log().whenComplete().thenAccept(responseLogger); diff --git a/core/src/main/java/com/linecorp/armeria/client/metric/AbstractMetricCollectingClient.java b/core/src/main/java/com/linecorp/armeria/client/metric/AbstractMetricCollectingClient.java index dfd9cbd47a1..3d482c31e84 100644 --- a/core/src/main/java/com/linecorp/armeria/client/metric/AbstractMetricCollectingClient.java +++ b/core/src/main/java/com/linecorp/armeria/client/metric/AbstractMetricCollectingClient.java @@ -46,7 +46,7 @@ abstract class AbstractMetricCollectingClient delegate, @Nullable RetryRule retryR } @Override - public O execute(ClientRequestContext ctx, I req) throws Exception { + public final O execute(ClientRequestContext ctx, I req) throws Exception { final State state = new State(maxTotalAttempts, responseTimeoutMillisForEachAttempt, ctx.responseTimeoutMillis()); ctx.setAttr(STATE, state); @@ -165,7 +165,7 @@ protected final RetryRuleWithContent retryRuleWithContent() { return retryRuleWithContent; } - RetryRule fromRetryRuleWithContent() { + final RetryRule fromRetryRuleWithContent() { checkState(retryRuleWithContent != null, "retryRuleWithContent is not set."); return fromRetryRuleWithContent; } @@ -349,7 +349,7 @@ protected static ClientRequestContext newDerivedContext(ClientRequestContext ctx return derived; } - private static class State { + private static final class State { private final int maxTotalAttempts; private final long responseTimeoutMillisForEachAttempt; diff --git a/core/src/main/java/com/linecorp/armeria/client/retry/AbstractRetryingClientBuilder.java b/core/src/main/java/com/linecorp/armeria/client/retry/AbstractRetryingClientBuilder.java index 7ff0145d209..31b77647d77 100644 --- a/core/src/main/java/com/linecorp/armeria/client/retry/AbstractRetryingClientBuilder.java +++ b/core/src/main/java/com/linecorp/armeria/client/retry/AbstractRetryingClientBuilder.java @@ -67,12 +67,12 @@ private AbstractRetryingClientBuilder(@Nullable RetryRule retryRule, this.retryRuleWithContent = retryRuleWithContent; } - RetryRule retryRule() { + final RetryRule retryRule() { checkState(retryRule != null, "retryRule is not set."); return retryRule; } - RetryRuleWithContent retryRuleWithContent() { + final RetryRuleWithContent retryRuleWithContent() { checkState(retryRuleWithContent != null, "retryRuleWithContent is not set."); return retryRuleWithContent; } @@ -90,7 +90,7 @@ public AbstractRetryingClientBuilder maxTotalAttempts(int maxTotalAttempts) { return this; } - int maxTotalAttempts() { + final int maxTotalAttempts() { return maxTotalAttempts; } @@ -114,7 +114,7 @@ public AbstractRetryingClientBuilder responseTimeoutMillisForEachAttempt( return this; } - long responseTimeoutMillisForEachAttempt() { + final long responseTimeoutMillisForEachAttempt() { return responseTimeoutMillisForEachAttempt; } @@ -139,7 +139,7 @@ public String toString() { return toStringHelper().toString(); } - ToStringHelper toStringHelper() { + final ToStringHelper toStringHelper() { return MoreObjects.toStringHelper(this).omitNullValues() .add("retryRule", retryRule) .add("retryRuleWithContent", retryRuleWithContent) diff --git a/core/src/main/java/com/linecorp/armeria/common/AbstractAggregatedHttpMessage.java b/core/src/main/java/com/linecorp/armeria/common/AbstractAggregatedHttpMessage.java index 821eb29226e..2bb170f0f80 100644 --- a/core/src/main/java/com/linecorp/armeria/common/AbstractAggregatedHttpMessage.java +++ b/core/src/main/java/com/linecorp/armeria/common/AbstractAggregatedHttpMessage.java @@ -27,12 +27,12 @@ abstract class AbstractAggregatedHttpMessage implements AggregatedHttpMessage { } @Override - public HttpData content() { + public final HttpData content() { return content; } @Override - public HttpHeaders trailers() { + public final HttpHeaders trailers() { return trailers; } } diff --git a/core/src/main/java/com/linecorp/armeria/common/AbstractHttpHeadersBuilder.java b/core/src/main/java/com/linecorp/armeria/common/AbstractHttpHeadersBuilder.java index 91fcea34b53..7c17c855ac7 100644 --- a/core/src/main/java/com/linecorp/armeria/common/AbstractHttpHeadersBuilder.java +++ b/core/src/main/java/com/linecorp/armeria/common/AbstractHttpHeadersBuilder.java @@ -47,7 +47,7 @@ public final MediaType contentType() { return getters != null ? getters.contentType() : null; } - public SELF contentType(MediaType contentType) { + public final SELF contentType(MediaType contentType) { setters().contentType(contentType); return self(); } diff --git a/core/src/main/java/com/linecorp/armeria/common/AbstractRequestContextBuilder.java b/core/src/main/java/com/linecorp/armeria/common/AbstractRequestContextBuilder.java index 6fa8703416a..fbc094d5943 100644 --- a/core/src/main/java/com/linecorp/armeria/common/AbstractRequestContextBuilder.java +++ b/core/src/main/java/com/linecorp/armeria/common/AbstractRequestContextBuilder.java @@ -507,7 +507,7 @@ public AbstractRequestContextBuilder timedOut(boolean timedOut) { } @SuppressWarnings("ComparableImplementedButEqualsNotOverridden") - private static class FakeChannel implements Channel { + private static final class FakeChannel implements Channel { private final ChannelId id = DefaultChannelId.newInstance(); private final EventLoop eventLoop; diff --git a/core/src/main/java/com/linecorp/armeria/common/DefaultContextAwareExecutorService.java b/core/src/main/java/com/linecorp/armeria/common/DefaultContextAwareExecutorService.java index 909e3176389..611c911e73f 100644 --- a/core/src/main/java/com/linecorp/armeria/common/DefaultContextAwareExecutorService.java +++ b/core/src/main/java/com/linecorp/armeria/common/DefaultContextAwareExecutorService.java @@ -38,7 +38,7 @@ class DefaultContextAwareExecutorService implements ContextAwareExecutorService } @Override - public RequestContext context() { + public final RequestContext context() { return context; } diff --git a/core/src/main/java/com/linecorp/armeria/common/DefaultHttpHeadersBuilder.java b/core/src/main/java/com/linecorp/armeria/common/DefaultHttpHeadersBuilder.java index 9833245581b..bc93e506abc 100644 --- a/core/src/main/java/com/linecorp/armeria/common/DefaultHttpHeadersBuilder.java +++ b/core/src/main/java/com/linecorp/armeria/common/DefaultHttpHeadersBuilder.java @@ -15,7 +15,7 @@ */ package com.linecorp.armeria.common; -class DefaultHttpHeadersBuilder +final class DefaultHttpHeadersBuilder extends AbstractHttpHeadersBuilder implements HttpHeadersBuilder { diff --git a/core/src/main/java/com/linecorp/armeria/common/HttpHeadersBase.java b/core/src/main/java/com/linecorp/armeria/common/HttpHeadersBase.java index 5318e30d183..2d9b2f03a39 100644 --- a/core/src/main/java/com/linecorp/armeria/common/HttpHeadersBase.java +++ b/core/src/main/java/com/linecorp/armeria/common/HttpHeadersBase.java @@ -96,28 +96,28 @@ class HttpHeadersBase } @Override - int hashName(CharSequence name) { + final int hashName(CharSequence name) { return AsciiString.hashCode(name); } @Override - boolean nameEquals(AsciiString a, CharSequence b) { + final boolean nameEquals(AsciiString a, CharSequence b) { return a.contentEqualsIgnoreCase(b); } @Override - AsciiString normalizeName(CharSequence name) { + final AsciiString normalizeName(CharSequence name) { return HttpHeaderNames.of(name); } @Override - boolean isFirstGroup(AsciiString name) { + final boolean isFirstGroup(AsciiString name) { // Pseudo headers must come first during iteration. return !name.isEmpty() && name.byteAt(0) == ':'; } @Override - void validateValue(String value) { + final void validateValue(String value) { if (!Flags.validateHeaders()) { return; } @@ -268,7 +268,7 @@ final void endOfStream(boolean endOfStream) { } @Override - public int hashCode() { + public final int hashCode() { final int hashCode = super.hashCode(); return endOfStream ? ~hashCode : hashCode; } diff --git a/core/src/main/java/com/linecorp/armeria/common/NonWrappingRequestContext.java b/core/src/main/java/com/linecorp/armeria/common/NonWrappingRequestContext.java index f1a9e4ddb04..2389f32d0f4 100644 --- a/core/src/main/java/com/linecorp/armeria/common/NonWrappingRequestContext.java +++ b/core/src/main/java/com/linecorp/armeria/common/NonWrappingRequestContext.java @@ -81,12 +81,12 @@ protected NonWrappingRequestContext( } @Override - public HttpRequest request() { + public final HttpRequest request() { return req; } @Override - public RpcRequest rpcRequest() { + public final RpcRequest rpcRequest() { return rpcReq; } @@ -193,20 +193,20 @@ public V attr(AttributeKey key) { @Nullable @Override - public V ownAttr(AttributeKey key) { + public final V ownAttr(AttributeKey key) { requireNonNull(key, "key"); return attrs.ownAttr(key); } @Override - public void setAttr(AttributeKey key, @Nullable V value) { + public final void setAttr(AttributeKey key, @Nullable V value) { requireNonNull(key, "key"); attrs.setAttr(key, value); } @Nullable @Override - public V setAttrIfAbsent(AttributeKey key, V value) { + public final V setAttrIfAbsent(AttributeKey key, V value) { requireNonNull(key, "key"); requireNonNull(value, "value"); return attrs.setAttrIfAbsent(key, value); @@ -214,8 +214,8 @@ public V setAttrIfAbsent(AttributeKey key, V value) { @Nullable @Override - public V computeAttrIfAbsent(AttributeKey key, - Function, ? extends V> mappingFunction) { + public final V computeAttrIfAbsent(AttributeKey key, + Function, ? extends V> mappingFunction) { requireNonNull(key, "key"); requireNonNull(mappingFunction, "mappingFunction"); return attrs.computeAttrIfAbsent(key, mappingFunction); @@ -227,7 +227,7 @@ public Iterator, Object>> attrs() { } @Override - public Iterator, Object>> ownAttrs() { + public final Iterator, Object>> ownAttrs() { return attrs.ownAttrs(); } } diff --git a/core/src/main/java/com/linecorp/armeria/common/QueryParamsBase.java b/core/src/main/java/com/linecorp/armeria/common/QueryParamsBase.java index 856d0652d72..8c911e62a26 100644 --- a/core/src/main/java/com/linecorp/armeria/common/QueryParamsBase.java +++ b/core/src/main/java/com/linecorp/armeria/common/QueryParamsBase.java @@ -51,28 +51,28 @@ class QueryParamsBase } @Override - int hashName(String s) { + final int hashName(String s) { return s.hashCode(); } @Override - boolean nameEquals(String a, String b) { + final boolean nameEquals(String a, String b) { // Keys in URL parameters are case-sensitive - https://tools.ietf.org/html/rfc3986#page-39 return a.equals(b); } @Override - boolean isFirstGroup(String s) { + final boolean isFirstGroup(String s) { return true; } @Override - String normalizeName(String s) { + final String normalizeName(String s) { return s; } @Override - void validateValue(String value) {} + final void validateValue(String value) {} @Override public boolean equals(@Nullable Object o) { diff --git a/core/src/main/java/com/linecorp/armeria/common/StringMultimap.java b/core/src/main/java/com/linecorp/armeria/common/StringMultimap.java index 4f6e47996e6..19e181b3a59 100644 --- a/core/src/main/java/com/linecorp/armeria/common/StringMultimap.java +++ b/core/src/main/java/com/linecorp/armeria/common/StringMultimap.java @@ -637,7 +637,7 @@ final void set(Iterable> entries) } } - public StringMultimap setIfAbsent( + final StringMultimap setIfAbsent( Iterable> entries) { requireNonNull(entries, "entries"); final Set existingNames = names(); diff --git a/core/src/main/java/com/linecorp/armeria/common/logging/LengthLimitingContentPreviewer.java b/core/src/main/java/com/linecorp/armeria/common/logging/LengthLimitingContentPreviewer.java index af0296c068b..fddb7e9ed24 100644 --- a/core/src/main/java/com/linecorp/armeria/common/logging/LengthLimitingContentPreviewer.java +++ b/core/src/main/java/com/linecorp/armeria/common/logging/LengthLimitingContentPreviewer.java @@ -66,7 +66,7 @@ private static int inflateMaxLength(int maxLength, @Nullable Charset charset) { } @Override - public void onData(HttpData data) { + public final void onData(HttpData data) { requireNonNull(data, "data"); if (produced != null) { return; @@ -91,7 +91,7 @@ public void onData(HttpData data) { } @Override - public String produce() { + public final String produce() { if (produced != null) { return produced; } diff --git a/core/src/main/java/com/linecorp/armeria/common/logging/LoggingDecoratorBuilder.java b/core/src/main/java/com/linecorp/armeria/common/logging/LoggingDecoratorBuilder.java index 4e65de445a3..8043db2140c 100644 --- a/core/src/main/java/com/linecorp/armeria/common/logging/LoggingDecoratorBuilder.java +++ b/core/src/main/java/com/linecorp/armeria/common/logging/LoggingDecoratorBuilder.java @@ -87,7 +87,7 @@ public LoggingDecoratorBuilder logger(Logger logger) { * or {@code null} if not set and a default logger should be used. */ @Nullable - protected Logger logger() { + protected final Logger logger() { return logger; } @@ -107,7 +107,7 @@ public LoggingDecoratorBuilder requestLogLevel(LogLevel requestLogLevel) { * Returns the {@link LogLevel} to use when logging requests. */ @VisibleForTesting - LogLevel requestLogLevel() { + final LogLevel requestLogLevel() { return requestLogLevel; } @@ -129,7 +129,7 @@ public LoggingDecoratorBuilder successfulResponseLogLevel(LogLevel successfulRes * Returns the {@link LogLevel} to use when logging successful responses (e.g., no unhandled exception). */ @VisibleForTesting - LogLevel successfulResponseLogLevel() { + final LogLevel successfulResponseLogLevel() { return successfulResponseLogLevel; } @@ -150,7 +150,7 @@ public LoggingDecoratorBuilder failureResponseLogLevel(LogLevel failedResponseLo * Returns the {@link LogLevel} to use when logging failure responses (e.g., failed with an exception). */ @VisibleForTesting - LogLevel failedResponseLogLevel() { + final LogLevel failedResponseLogLevel() { return failedResponseLogLevel; } @@ -170,7 +170,7 @@ public LoggingDecoratorBuilder requestLogLevelMapper( /** * Returns the {@link LogLevel} to use when logging request logs. */ - protected Function requestLogLevelMapper() { + protected final Function requestLogLevelMapper() { return requestLogLevelMapper; } @@ -191,7 +191,7 @@ public LoggingDecoratorBuilder responseLogLevelMapper( /** * Returns the {@link LogLevel} to use when logging response logs. */ - protected Function responseLogLevelMapper() { + protected final Function responseLogLevelMapper() { return responseLogLevelMapper; } @@ -223,7 +223,7 @@ public LoggingDecoratorBuilder requestHeadersSanitizer( /** * Returns the {@link BiFunction} to use to sanitize request headers before logging. */ - protected BiFunction requestHeadersSanitizer() { + protected final BiFunction requestHeadersSanitizer() { return requestHeadersSanitizer; } @@ -255,7 +255,7 @@ public LoggingDecoratorBuilder responseHeadersSanitizer( /** * Returns the {@link BiFunction} to use to sanitize response headers before logging. */ - protected BiFunction responseHeadersSanitizer() { + protected final BiFunction responseHeadersSanitizer() { return responseHeadersSanitizer; } @@ -285,7 +285,7 @@ public LoggingDecoratorBuilder requestTrailersSanitizer( /** * Returns the {@link BiFunction} to use to sanitize request trailers before logging. */ - protected BiFunction requestTrailersSanitizer() { + protected final BiFunction requestTrailersSanitizer() { return requestTrailersSanitizer; } @@ -315,7 +315,7 @@ public LoggingDecoratorBuilder responseTrailersSanitizer( /** * Returns the {@link Function} to use to sanitize response trailers before logging. */ - protected BiFunction responseTrailersSanitizer() { + protected final BiFunction responseTrailersSanitizer() { return responseTrailersSanitizer; } @@ -401,7 +401,7 @@ public LoggingDecoratorBuilder requestContentSanitizer(Function reque /** * Returns the {@link BiFunction} to use to sanitize request content before logging. */ - protected BiFunction requestContentSanitizer() { + protected final BiFunction requestContentSanitizer() { return requestContentSanitizer; } @@ -432,7 +432,7 @@ public LoggingDecoratorBuilder responseContentSanitizer(Function resp /** * Returns the {@link BiFunction} to use to sanitize response content before logging. */ - protected BiFunction responseContentSanitizer() { + protected final BiFunction responseContentSanitizer() { return responseContentSanitizer; } @@ -510,7 +510,7 @@ public LoggingDecoratorBuilder responseCauseSanitizer( /** * Returns the {@link BiFunction} to use to sanitize response cause before logging. */ - protected BiFunction responseCauseSanitizer() { + protected final BiFunction responseCauseSanitizer() { return responseCauseSanitizer; } diff --git a/core/src/main/java/com/linecorp/armeria/common/stream/AbstractStreamMessage.java b/core/src/main/java/com/linecorp/armeria/common/stream/AbstractStreamMessage.java index e503644507b..9386a20a998 100644 --- a/core/src/main/java/com/linecorp/armeria/common/stream/AbstractStreamMessage.java +++ b/core/src/main/java/com/linecorp/armeria/common/stream/AbstractStreamMessage.java @@ -137,7 +137,7 @@ private static void handleLateSubscriber(Subscriber lateSubscriber, Throwable } } - T prepareObjectForNotification(SubscriptionImpl subscription, T o) { + final T prepareObjectForNotification(SubscriptionImpl subscription, T o) { onRemoval(o); if (!subscription.withPooledObjects()) { o = PooledObjects.copyAndClose(o); diff --git a/core/src/main/java/com/linecorp/armeria/common/stream/AbstractStreamMessageAndWriter.java b/core/src/main/java/com/linecorp/armeria/common/stream/AbstractStreamMessageAndWriter.java index 8694e4e7c1e..de251423179 100644 --- a/core/src/main/java/com/linecorp/armeria/common/stream/AbstractStreamMessageAndWriter.java +++ b/core/src/main/java/com/linecorp/armeria/common/stream/AbstractStreamMessageAndWriter.java @@ -66,7 +66,7 @@ public boolean tryWrite(T obj) { } @Override - public CompletableFuture whenConsumed() { + public final CompletableFuture whenConsumed() { final AwaitDemandFuture f = new AwaitDemandFuture(); if (!isOpen()) { f.completeExceptionally(ClosedStreamException.get()); diff --git a/core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessage.java b/core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessage.java index 65ff7d0ebd3..5fa6240718c 100644 --- a/core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessage.java +++ b/core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessage.java @@ -104,17 +104,17 @@ public DefaultStreamMessage() { } @Override - public boolean isOpen() { + public final boolean isOpen() { return state == State.OPEN; } @Override - public boolean isEmpty() { + public final boolean isEmpty() { return !isOpen() && !wroteAny; } @Override - SubscriptionImpl subscribe(SubscriptionImpl subscription) { + final SubscriptionImpl subscribe(SubscriptionImpl subscription) { if (!subscriptionUpdater.compareAndSet(this, null, subscription)) { final SubscriptionImpl oldSubscription = this.subscription; assert oldSubscription != null; @@ -150,12 +150,12 @@ private void subscribe(SubscriptionImpl subscription, Subscriber subscri } @Override - public void abort() { + public final void abort() { abort0(AbortedStreamException.get()); } @Override - public void abort(Throwable cause) { + public final void abort(Throwable cause) { requireNonNull(cause, "cause"); abort0(cause); } @@ -204,18 +204,18 @@ private void abort0(Throwable cause, SubscriptionImpl subscription) { } @Override - void addObject(T obj) { + final void addObject(T obj) { wroteAny = true; addObjectOrEvent(obj); } @Override - long demand() { + final long demand() { return demand; } @Override - void request(long n) { + final void request(long n) { final SubscriptionImpl subscription = this.subscription; // A user cannot access subscription without subscribing. assert subscription != null; @@ -241,7 +241,7 @@ private void doRequest(long n) { } @Override - void cancel() { + final void cancel() { if (setState(State.OPEN, State.CLEANUP) || setState(State.CLOSED, State.CLEANUP)) { // It the state was CLOSED, close() or close(cause) has been called before cancel() or abort() // is called. We just ignore the previously pushed event and deal with CANCELLED_CLOSE. @@ -296,7 +296,7 @@ private void notifySubscriberOfCloseEvent0(SubscriptionImpl subscription, CloseE } @Override - void addObjectOrEvent(Object obj) { + final void addObjectOrEvent(Object obj) { queue.add(obj); notifySubscriber(); } @@ -438,14 +438,14 @@ private void handleCloseEvent(SubscriptionImpl subscription, CloseEvent o) { } @Override - public void close() { + public final void close() { if (setState(State.OPEN, State.CLOSED)) { addObjectOrEvent(SUCCESSFUL_CLOSE); } } @Override - public void close(Throwable cause) { + public final void close(Throwable cause) { requireNonNull(cause, "cause"); if (cause instanceof CancelledSubscriptionException) { throw new IllegalArgumentException("cause: " + cause + " (must use Subscription.cancel())"); diff --git a/core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessageDuplicator.java b/core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessageDuplicator.java index 79e7ba76ad9..a09c5fc044c 100644 --- a/core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessageDuplicator.java +++ b/core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessageDuplicator.java @@ -108,28 +108,28 @@ public StreamMessage duplicate() { * Returns the default {@link EventExecutor} which will be used when a user subscribes to a child * stream using {@link StreamMessage#subscribe(Subscriber, SubscriptionOption...)}. */ - protected EventExecutor duplicatorExecutor() { + protected final EventExecutor duplicatorExecutor() { return executor; } @Override - public void close() { + public final void close() { processor.close(); } @Override - public void abort() { + public final void abort() { abort(AbortedStreamException.get()); } @Override - public void abort(Throwable cause) { + public final void abort(Throwable cause) { requireNonNull(cause, "cause"); processor.abort(cause); } @VisibleForTesting - static class StreamMessageProcessor implements Subscriber { + static final class StreamMessageProcessor implements Subscriber { private enum State { DUPLICABLE, @@ -452,7 +452,7 @@ private void doCleanup(Throwable cause) { } } - private static class ChildStreamMessage implements StreamMessage { + private static final class ChildStreamMessage implements StreamMessage { @SuppressWarnings("rawtypes") private static final AtomicReferenceFieldUpdater @@ -578,7 +578,7 @@ private void abort0(Throwable cause) { } } - static class DownstreamSubscription implements Subscription { + static final class DownstreamSubscription implements Subscription { private static final int REQUEST_REMOVAL_THRESHOLD = 50; @@ -867,7 +867,7 @@ public String toString() { * can be done by multiple threads. */ @VisibleForTesting - static class SignalQueue { + static final class SignalQueue { private static final AtomicIntegerFieldUpdater lastRemovalRequestedOffsetUpdater = AtomicIntegerFieldUpdater.newUpdater(SignalQueue.class, "lastRemovalRequestedOffset"); diff --git a/core/src/main/java/com/linecorp/armeria/common/stream/DeferredStreamMessage.java b/core/src/main/java/com/linecorp/armeria/common/stream/DeferredStreamMessage.java index 6ad769bef16..7fe97fd7226 100644 --- a/core/src/main/java/com/linecorp/armeria/common/stream/DeferredStreamMessage.java +++ b/core/src/main/java/com/linecorp/armeria/common/stream/DeferredStreamMessage.java @@ -94,7 +94,7 @@ public class DeferredStreamMessage extends AbstractStreamMessage { * @throws IllegalStateException if the upstream has been set already or * if {@link #close()} or {@link #close(Throwable)} was called already. */ - protected void delegate(StreamMessage upstream) { + protected final void delegate(StreamMessage upstream) { requireNonNull(upstream, "upstream"); if (!upstreamUpdater.compareAndSet(this, null, upstream)) { @@ -126,7 +126,7 @@ protected void delegate(StreamMessage upstream) { * @throws IllegalStateException if the upstream has been set already or * if {@link #close()} or {@link #close(Throwable)} was called already. */ - public void close() { + public final void close() { final DefaultStreamMessage m = new DefaultStreamMessage<>(); m.close(); delegate(m); @@ -138,7 +138,7 @@ public void close() { * @throws IllegalStateException if the delegate has been set already or * if {@link #close()} or {@link #close(Throwable)} was called already. */ - public void close(Throwable cause) { + public final void close(Throwable cause) { requireNonNull(cause, "cause"); final DefaultStreamMessage m = new DefaultStreamMessage<>(); m.close(cause); @@ -146,17 +146,17 @@ public void close(Throwable cause) { } @Override - public boolean isOpen() { - final StreamMessage delegate = this.upstream; - if (delegate != null) { - return delegate.isOpen(); + public final boolean isOpen() { + final StreamMessage upstream = this.upstream; + if (upstream != null) { + return upstream.isOpen(); } return !whenComplete().isDone(); } @Override - public boolean isEmpty() { + public final boolean isEmpty() { final StreamMessage upstream = this.upstream; if (upstream != null) { return upstream.isEmpty(); @@ -166,12 +166,12 @@ public boolean isEmpty() { } @Override - long demand() { + final long demand() { return pendingDemand; } @Override - void request(long n) { + final void request(long n) { final SubscriptionImpl downstreamSubscription = this.downstreamSubscription; assert downstreamSubscription != null; @@ -192,7 +192,7 @@ private void doRequest(long n) { } @Override - void cancel() { + final void cancel() { final SubscriptionImpl downstreamSubscription = this.downstreamSubscription; assert downstreamSubscription != null; @@ -227,7 +227,7 @@ private void doCancel() { } @Override - SubscriptionImpl subscribe(SubscriptionImpl subscription) { + final SubscriptionImpl subscribe(SubscriptionImpl subscription) { if (!downstreamSubscriptionUpdater.compareAndSet(this, null, subscription)) { final SubscriptionImpl oldSubscription = downstreamSubscription; assert oldSubscription != null; @@ -284,12 +284,12 @@ private void safeOnSubscribeToUpstream() { } @Override - public void abort() { + public final void abort() { abort(AbortedStreamException.get()); } @Override - public void abort(Throwable cause) { + public final void abort(Throwable cause) { requireNonNull(cause, "cause"); if (!abortCauseUpdater.compareAndSet(this, null, cause)) { return; diff --git a/core/src/main/java/com/linecorp/armeria/common/stream/FilteredStreamMessage.java b/core/src/main/java/com/linecorp/armeria/common/stream/FilteredStreamMessage.java index b76225ada15..778d49fa2ec 100644 --- a/core/src/main/java/com/linecorp/armeria/common/stream/FilteredStreamMessage.java +++ b/core/src/main/java/com/linecorp/armeria/common/stream/FilteredStreamMessage.java @@ -104,28 +104,28 @@ protected Throwable beforeError(Subscriber subscriber, Throwable caus } @Override - public boolean isOpen() { + public final boolean isOpen() { return delegate.isOpen(); } @Override - public boolean isEmpty() { + public final boolean isEmpty() { return delegate.isEmpty(); } @Override - public CompletableFuture whenComplete() { + public final CompletableFuture whenComplete() { return delegate.whenComplete(); } @Override - public void subscribe(Subscriber subscriber, EventExecutor executor) { + public final void subscribe(Subscriber subscriber, EventExecutor executor) { subscribe(subscriber, executor, false, false); } @Override - public void subscribe(Subscriber subscriber, EventExecutor executor, - SubscriptionOption... options) { + public final void subscribe(Subscriber subscriber, EventExecutor executor, + SubscriptionOption... options) { requireNonNull(subscriber, "subscriber"); requireNonNull(executor, "executor"); requireNonNull(options, "options"); @@ -152,17 +152,17 @@ private SubscriptionOption[] filteringSubscriptionOptions(boolean notifyCancella } @Override - public EventExecutor defaultSubscriberExecutor() { + public final EventExecutor defaultSubscriberExecutor() { return delegate.defaultSubscriberExecutor(); } @Override - public void abort() { + public final void abort() { delegate.abort(); } @Override - public void abort(Throwable cause) { + public final void abort(Throwable cause) { delegate.abort(requireNonNull(cause, "cause")); } diff --git a/core/src/main/java/com/linecorp/armeria/common/stream/PublisherBasedStreamMessage.java b/core/src/main/java/com/linecorp/armeria/common/stream/PublisherBasedStreamMessage.java index 516b46b6963..4459de6023a 100644 --- a/core/src/main/java/com/linecorp/armeria/common/stream/PublisherBasedStreamMessage.java +++ b/core/src/main/java/com/linecorp/armeria/common/stream/PublisherBasedStreamMessage.java @@ -78,23 +78,23 @@ protected final Publisher delegate() { } @Override - public boolean isOpen() { + public final boolean isOpen() { return !completionFuture.isDone(); } @Override - public boolean isEmpty() { + public final boolean isEmpty() { return !isOpen() && !publishedAny; } @Override - public void subscribe(Subscriber subscriber, EventExecutor executor) { + public final void subscribe(Subscriber subscriber, EventExecutor executor) { subscribe0(subscriber, executor, false); } @Override - public void subscribe(Subscriber subscriber, EventExecutor executor, - SubscriptionOption... options) { + public final void subscribe(Subscriber subscriber, EventExecutor executor, + SubscriptionOption... options) { requireNonNull(options, "options"); final boolean notifyCancellation = containsNotifyCancellation(options); @@ -141,12 +141,12 @@ private static void failLateSubscriber(EventExecutor executor, } @Override - public void abort() { + public final void abort() { abort0(AbortedStreamException.get()); } @Override - public void abort(Throwable cause) { + public final void abort(Throwable cause) { requireNonNull(cause, "cause"); abort0(cause); } @@ -171,7 +171,7 @@ private void abort0(Throwable cause) { } @Override - public CompletableFuture whenComplete() { + public final CompletableFuture whenComplete() { return completionFuture; } diff --git a/core/src/main/java/com/linecorp/armeria/common/stream/RegularFixedStreamMessage.java b/core/src/main/java/com/linecorp/armeria/common/stream/RegularFixedStreamMessage.java index e97243eb8ff..b63ad3aa6b4 100644 --- a/core/src/main/java/com/linecorp/armeria/common/stream/RegularFixedStreamMessage.java +++ b/core/src/main/java/com/linecorp/armeria/common/stream/RegularFixedStreamMessage.java @@ -148,7 +148,7 @@ private void doNotify(SubscriptionImpl subscription) { } @Override - public boolean isEmpty() { + public final boolean isEmpty() { return false; } } diff --git a/core/src/main/java/com/linecorp/armeria/common/util/AbstractOption.java b/core/src/main/java/com/linecorp/armeria/common/util/AbstractOption.java index 1ae882bb6b9..35c44a25660 100644 --- a/core/src/main/java/com/linecorp/armeria/common/util/AbstractOption.java +++ b/core/src/main/java/com/linecorp/armeria/common/util/AbstractOption.java @@ -147,14 +147,14 @@ protected AbstractOption(String name, V defaultValue, /** * Returns the name of this option. */ - public String name() { + public final String name() { return name; } /** * Returns the default value of this option. */ - public V defaultValue() { + public final V defaultValue() { return defaultValue; } diff --git a/core/src/main/java/com/linecorp/armeria/common/util/AbstractOptionValue.java b/core/src/main/java/com/linecorp/armeria/common/util/AbstractOptionValue.java index d6b66f6558b..ca69bed95d5 100644 --- a/core/src/main/java/com/linecorp/armeria/common/util/AbstractOptionValue.java +++ b/core/src/main/java/com/linecorp/armeria/common/util/AbstractOptionValue.java @@ -46,19 +46,19 @@ protected AbstractOptionValue(U option, V value) { /** * Returns the option that this option value holder belongs to. */ - public U option() { + public final U option() { return option; } /** * Returns the value of this option value holder has. */ - public V value() { + public final V value() { return value; } @Override - public String toString() { + public final String toString() { return option.toString() + '=' + value; } } diff --git a/core/src/main/java/com/linecorp/armeria/common/util/AbstractOptions.java b/core/src/main/java/com/linecorp/armeria/common/util/AbstractOptions.java index e41b2ea614d..f3e5c940d57 100644 --- a/core/src/main/java/com/linecorp/armeria/common/util/AbstractOptions.java +++ b/core/src/main/java/com/linecorp/armeria/common/util/AbstractOptions.java @@ -134,7 +134,7 @@ public final V get(AbstractOption option) { * Returns an immutable {@link Iterator} of user-specified options. */ @Override - public Iterator iterator() { + public final Iterator iterator() { return Iterators.unmodifiableIterator(valueMap.values().iterator()); } @@ -146,7 +146,7 @@ public final Map asMap() { } @Override - public String toString() { + public final String toString() { return getClass().getSimpleName() + Iterators.toString(valueMap.values().iterator()); } } diff --git a/core/src/main/java/com/linecorp/armeria/common/util/StartStopSupport.java b/core/src/main/java/com/linecorp/armeria/common/util/StartStopSupport.java index 6f4ccb11141..0db57e7e3f7 100644 --- a/core/src/main/java/com/linecorp/armeria/common/util/StartStopSupport.java +++ b/core/src/main/java/com/linecorp/armeria/common/util/StartStopSupport.java @@ -311,22 +311,22 @@ private synchronized UnmodifiableFuture stop0(@Nullable U arg, boolean rol } @Override - public boolean isClosing() { + public final boolean isClosing() { return closeable.isClosing(); } @Override - public boolean isClosed() { + public final boolean isClosed() { return closeable.isClosed(); } @Override - public CompletableFuture whenClosed() { + public final CompletableFuture whenClosed() { return closeable.whenClosed(); } @Override - public CompletableFuture closeAsync() { + public final CompletableFuture closeAsync() { return closeable.closeAsync(); } diff --git a/core/src/main/java/com/linecorp/armeria/internal/client/DefaultDnsNameResolver.java b/core/src/main/java/com/linecorp/armeria/internal/client/DefaultDnsNameResolver.java index 59e081a8680..19a74a46f5b 100644 --- a/core/src/main/java/com/linecorp/armeria/internal/client/DefaultDnsNameResolver.java +++ b/core/src/main/java/com/linecorp/armeria/internal/client/DefaultDnsNameResolver.java @@ -46,7 +46,7 @@ import io.netty.util.concurrent.FutureListener; import io.netty.util.concurrent.Promise; -public class DefaultDnsNameResolver { +public final class DefaultDnsNameResolver { private static final Logger logger = LoggerFactory.getLogger(DefaultDnsNameResolver.class); diff --git a/core/src/main/java/com/linecorp/armeria/internal/common/AbstractContextAwareFuture.java b/core/src/main/java/com/linecorp/armeria/internal/common/AbstractContextAwareFuture.java index 6bf65293ecc..8774c7e587d 100644 --- a/core/src/main/java/com/linecorp/armeria/internal/common/AbstractContextAwareFuture.java +++ b/core/src/main/java/com/linecorp/armeria/internal/common/AbstractContextAwareFuture.java @@ -51,36 +51,36 @@ protected AbstractContextAwareFuture(RequestContext context) { } @Override - public RequestContext context() { + public final RequestContext context() { return context; } - protected Runnable makeContextAwareLoggingException(Runnable action) { + protected final Runnable makeContextAwareLoggingException(Runnable action) { requireNonNull(action, "action"); return () -> makeContextAwareLoggingException0(action); } - protected Consumer makeContextAwareLoggingException(Consumer action) { + protected final Consumer makeContextAwareLoggingException(Consumer action) { requireNonNull(action, "action"); return t -> makeContextAwareLoggingException0(() -> action.accept(t)); } - protected BiConsumer makeContextAwareLoggingException(BiConsumer action) { + protected final BiConsumer makeContextAwareLoggingException(BiConsumer action) { requireNonNull(action, "action"); return (t, u) -> makeContextAwareLoggingException0(() -> action.accept(t, u)); } - protected Supplier makeContextAwareLoggingException(Supplier supplier) { + protected final Supplier makeContextAwareLoggingException(Supplier supplier) { requireNonNull(supplier, "supplier"); return () -> makeContextAwareLoggingException0(supplier); } - protected Function makeContextAwareLoggingException(Function fn) { + protected final Function makeContextAwareLoggingException(Function fn) { requireNonNull(fn, "fn"); return t -> makeContextAwareLoggingException0(() -> fn.apply(t)); } - protected BiFunction makeContextAwareLoggingException(BiFunction fn) { + protected final BiFunction makeContextAwareLoggingException(BiFunction fn) { requireNonNull(fn, "fn"); return (t, u) -> makeContextAwareLoggingException0(() -> fn.apply(t, u)); } diff --git a/core/src/main/java/com/linecorp/armeria/internal/common/AbstractHttp2ConnectionHandler.java b/core/src/main/java/com/linecorp/armeria/internal/common/AbstractHttp2ConnectionHandler.java index f89ac7da6c1..49075516303 100644 --- a/core/src/main/java/com/linecorp/armeria/internal/common/AbstractHttp2ConnectionHandler.java +++ b/core/src/main/java/com/linecorp/armeria/internal/common/AbstractHttp2ConnectionHandler.java @@ -71,13 +71,13 @@ protected AbstractHttp2ConnectionHandler( /** * Returns {@code true} if {@link ChannelHandlerContext#close()} has been called. */ - public boolean isClosing() { + public final boolean isClosing() { return closing; } @Override - protected void onConnectionError(ChannelHandlerContext ctx, boolean outbound, - Throwable cause, Http2Exception http2Ex) { + protected final void onConnectionError(ChannelHandlerContext ctx, boolean outbound, + Throwable cause, Http2Exception http2Ex) { if (handlingConnectionError) { return; } @@ -100,8 +100,8 @@ private static Http2Exception filterHttp2Exception(Throwable cause, @Nullable Ht } @Override - public ChannelFuture goAway(ChannelHandlerContext ctx, int lastStreamId, long errorCode, ByteBuf debugData, - ChannelPromise promise) { + public final ChannelFuture goAway(ChannelHandlerContext ctx, int lastStreamId, long errorCode, + ByteBuf debugData, ChannelPromise promise) { if (!ctx.channel().isActive()) { // There's no point of sending a GOAWAY frame because the connection is over already. promise.unvoid().trySuccess(); @@ -113,7 +113,7 @@ public ChannelFuture goAway(ChannelHandlerContext ctx, int lastStreamId, long er } @Override - public void close(ChannelHandlerContext ctx, ChannelPromise promise) throws Exception { + public final void close(ChannelHandlerContext ctx, ChannelPromise promise) throws Exception { if (!closing) { closing = true; diff --git a/core/src/main/java/com/linecorp/armeria/internal/common/AbstractHttp2ConnectionHandlerBuilder.java b/core/src/main/java/com/linecorp/armeria/internal/common/AbstractHttp2ConnectionHandlerBuilder.java index 4dbae3797fb..d4678d94ac9 100644 --- a/core/src/main/java/com/linecorp/armeria/internal/common/AbstractHttp2ConnectionHandlerBuilder.java +++ b/core/src/main/java/com/linecorp/armeria/internal/common/AbstractHttp2ConnectionHandlerBuilder.java @@ -48,92 +48,92 @@ public final T build() { } @Override - public B initialSettings(Http2Settings settings) { + public final B initialSettings(Http2Settings settings) { return super.initialSettings(settings); } @Override - public B frameListener(Http2FrameListener frameListener) { + public final B frameListener(Http2FrameListener frameListener) { return super.frameListener(frameListener); } @Override - public B gracefulShutdownTimeoutMillis(long gracefulShutdownTimeoutMillis) { + public final B gracefulShutdownTimeoutMillis(long gracefulShutdownTimeoutMillis) { return super.gracefulShutdownTimeoutMillis(gracefulShutdownTimeoutMillis); } @Override - public B server(boolean isServer) { + public final B server(boolean isServer) { return super.server(isServer); } @Override - public B maxReservedStreams(int maxReservedStreams) { + public final B maxReservedStreams(int maxReservedStreams) { return super.maxReservedStreams(maxReservedStreams); } @Override - public B connection(Http2Connection connection) { + public final B connection(Http2Connection connection) { return super.connection(connection); } @Override - public B codec(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder) { + public final B codec(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder) { return super.codec(decoder, encoder); } @Override - public B validateHeaders(boolean validateHeaders) { + public final B validateHeaders(boolean validateHeaders) { return super.validateHeaders(validateHeaders); } @Override - public B frameLogger(Http2FrameLogger frameLogger) { + public final B frameLogger(Http2FrameLogger frameLogger) { return super.frameLogger(frameLogger); } @Override - public B encoderEnforceMaxConcurrentStreams(boolean encoderEnforceMaxConcurrentStreams) { + public final B encoderEnforceMaxConcurrentStreams(boolean encoderEnforceMaxConcurrentStreams) { return super.encoderEnforceMaxConcurrentStreams(encoderEnforceMaxConcurrentStreams); } @Override - public B encoderEnforceMaxQueuedControlFrames(int maxQueuedControlFrames) { + public final B encoderEnforceMaxQueuedControlFrames(int maxQueuedControlFrames) { return super.encoderEnforceMaxQueuedControlFrames(maxQueuedControlFrames); } @Override - public B headerSensitivityDetector(SensitivityDetector headerSensitivityDetector) { + public final B headerSensitivityDetector(SensitivityDetector headerSensitivityDetector) { return super.headerSensitivityDetector(headerSensitivityDetector); } @Override - public B encoderIgnoreMaxHeaderListSize(boolean ignoreMaxHeaderListSize) { + public final B encoderIgnoreMaxHeaderListSize(boolean ignoreMaxHeaderListSize) { return super.encoderIgnoreMaxHeaderListSize(ignoreMaxHeaderListSize); } @Override - public B promisedRequestVerifier(Http2PromisedRequestVerifier promisedRequestVerifier) { + public final B promisedRequestVerifier(Http2PromisedRequestVerifier promisedRequestVerifier) { return super.promisedRequestVerifier(promisedRequestVerifier); } @Override - public B decoderEnforceMaxConsecutiveEmptyDataFrames(int maxConsecutiveEmptyFrames) { + public final B decoderEnforceMaxConsecutiveEmptyDataFrames(int maxConsecutiveEmptyFrames) { return super.decoderEnforceMaxConsecutiveEmptyDataFrames(maxConsecutiveEmptyFrames); } @Override - public B autoAckSettingsFrame(boolean autoAckSettings) { + public final B autoAckSettingsFrame(boolean autoAckSettings) { return super.autoAckSettingsFrame(autoAckSettings); } @Override - public B autoAckPingFrame(boolean autoAckPingFrame) { + public final B autoAckPingFrame(boolean autoAckPingFrame) { return super.autoAckPingFrame(autoAckPingFrame); } @Override - public B decoupleCloseAndGoAway(boolean decoupleCloseAndGoAway) { + public final B decoupleCloseAndGoAway(boolean decoupleCloseAndGoAway) { return super.decoupleCloseAndGoAway(decoupleCloseAndGoAway); } } diff --git a/core/src/main/java/com/linecorp/armeria/internal/common/Http1ObjectEncoder.java b/core/src/main/java/com/linecorp/armeria/internal/common/Http1ObjectEncoder.java index 5991af35c1e..ba91e33535d 100644 --- a/core/src/main/java/com/linecorp/armeria/internal/common/Http1ObjectEncoder.java +++ b/core/src/main/java/com/linecorp/armeria/internal/common/Http1ObjectEncoder.java @@ -270,7 +270,7 @@ private void flushPendingWrites(PendingWrites pendingWrites) { } @Override - public ChannelFuture doWriteTrailers(int id, int streamId, HttpHeaders headers) { + public final ChannelFuture doWriteTrailers(int id, int streamId, HttpHeaders headers) { if (!isWritable(id)) { return newClosedSessionFuture(); } @@ -365,7 +365,7 @@ public final void close() { } @Override - public boolean isClosed() { + public final boolean isClosed() { return closed; } diff --git a/core/src/main/java/com/linecorp/armeria/internal/common/Http2KeepAliveHandler.java b/core/src/main/java/com/linecorp/armeria/internal/common/Http2KeepAliveHandler.java index 7b7e879124f..0aa9d680b83 100644 --- a/core/src/main/java/com/linecorp/armeria/internal/common/Http2KeepAliveHandler.java +++ b/core/src/main/java/com/linecorp/armeria/internal/common/Http2KeepAliveHandler.java @@ -77,14 +77,14 @@ protected Http2KeepAliveHandler(Channel channel, Http2FrameWriter frameWriter, S } @Override - protected ChannelFuture writePing(ChannelHandlerContext ctx) { + protected final ChannelFuture writePing(ChannelHandlerContext ctx) { lastPingPayload = random.nextLong(); final ChannelFuture future = frameWriter.writePing(ctx, false, lastPingPayload, ctx.newPromise()); ctx.flush(); return future; } - public void onPingAck(long data) { + public final void onPingAck(long data) { final long elapsed = getStopwatchElapsedInNanos(); if (!isGoodPingAck(data)) { return; @@ -102,7 +102,7 @@ public void onPingAck(long data) { } @Override - protected boolean pingResetsPreviousPing() { + protected final boolean pingResetsPreviousPing() { return true; } @@ -122,7 +122,7 @@ private boolean isGoodPingAck(long data) { } @VisibleForTesting - long lastPingPayload() { + final long lastPingPayload() { return lastPingPayload; } diff --git a/core/src/main/java/com/linecorp/armeria/internal/common/ReadSuppressingHandler.java b/core/src/main/java/com/linecorp/armeria/internal/common/ReadSuppressingHandler.java index 356ea8af957..3e4059080ba 100644 --- a/core/src/main/java/com/linecorp/armeria/internal/common/ReadSuppressingHandler.java +++ b/core/src/main/java/com/linecorp/armeria/internal/common/ReadSuppressingHandler.java @@ -34,7 +34,7 @@ public class ReadSuppressingHandler extends ChannelOutboundHandlerAdapter { protected ReadSuppressingHandler() {} @Override - public void read(ChannelHandlerContext ctx) throws Exception { + public final void read(ChannelHandlerContext ctx) throws Exception { if (ctx.channel().config().isAutoRead()) { super.read(ctx); } diff --git a/core/src/main/java/com/linecorp/armeria/internal/server/annotation/AnnotatedService.java b/core/src/main/java/com/linecorp/armeria/internal/server/annotation/AnnotatedService.java index 6add61eaf88..7ad041c1216 100644 --- a/core/src/main/java/com/linecorp/armeria/internal/server/annotation/AnnotatedService.java +++ b/core/src/main/java/com/linecorp/armeria/internal/server/annotation/AnnotatedService.java @@ -80,7 +80,7 @@ * This class is not supposed to be instantiated by a user. Please check out the documentation * Annotated HTTP Service to use this. */ -public class AnnotatedService implements HttpService { +public final class AnnotatedService implements HttpService { private static final Logger logger = LoggerFactory.getLogger(AnnotatedService.class); static final ServiceLoader responseConverterFunctionProviders = diff --git a/core/src/main/java/com/linecorp/armeria/server/Http1ServerKeepAliveHandler.java b/core/src/main/java/com/linecorp/armeria/server/Http1ServerKeepAliveHandler.java index 34a0e7cafce..b9d2a38b243 100644 --- a/core/src/main/java/com/linecorp/armeria/server/Http1ServerKeepAliveHandler.java +++ b/core/src/main/java/com/linecorp/armeria/server/Http1ServerKeepAliveHandler.java @@ -23,7 +23,7 @@ import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandlerContext; -class Http1ServerKeepAliveHandler extends KeepAliveHandler { +final class Http1ServerKeepAliveHandler extends KeepAliveHandler { Http1ServerKeepAliveHandler(Channel channel, Timer keepAliveTimer, long idleTimeoutMillis, long maxConnectionAgeMillis) { super(channel, "server", keepAliveTimer, idleTimeoutMillis, 0, maxConnectionAgeMillis); diff --git a/core/src/main/java/com/linecorp/armeria/server/docs/DocStringExtractor.java b/core/src/main/java/com/linecorp/armeria/server/docs/DocStringExtractor.java index 1afb1ec6d8f..aa5423c9a2c 100644 --- a/core/src/main/java/com/linecorp/armeria/server/docs/DocStringExtractor.java +++ b/core/src/main/java/com/linecorp/armeria/server/docs/DocStringExtractor.java @@ -63,7 +63,7 @@ protected DocStringExtractor(String defaultPath, String pathPropertyName) { * Extract all docstrings from files at the configured path, delegating to * {@link #getDocStringsFromFiles(Map)} for actual processing. */ - public Map getAllDocStrings(ClassLoader classLoader) { + public final Map getAllDocStrings(ClassLoader classLoader) { requireNonNull(classLoader, "classLoader"); return cached.computeIfAbsent(classLoader, this::getAllDocStrings0); } diff --git a/core/src/main/java/com/linecorp/armeria/server/throttling/AbstractThrottlingService.java b/core/src/main/java/com/linecorp/armeria/server/throttling/AbstractThrottlingService.java index 5fb5aeaa6d4..bf21db7aa27 100644 --- a/core/src/main/java/com/linecorp/armeria/server/throttling/AbstractThrottlingService.java +++ b/core/src/main/java/com/linecorp/armeria/server/throttling/AbstractThrottlingService.java @@ -53,7 +53,7 @@ protected AbstractThrottlingService(Service delegate, ThrottlingStrategy { try { diff --git a/core/src/main/java/com/linecorp/armeria/server/throttling/ThrottlingStrategy.java b/core/src/main/java/com/linecorp/armeria/server/throttling/ThrottlingStrategy.java index 2bbc8db9086..0aa00b6d4e7 100644 --- a/core/src/main/java/com/linecorp/armeria/server/throttling/ThrottlingStrategy.java +++ b/core/src/main/java/com/linecorp/armeria/server/throttling/ThrottlingStrategy.java @@ -145,7 +145,7 @@ protected ThrottlingStrategy(@Nullable String name) { /** * Returns the name of this {@link ThrottlingStrategy}. */ - public String name() { + public final String name() { return name; } } diff --git a/core/src/main/java9/com/linecorp/armeria/internal/common/Java9VersionSpecific.java b/core/src/main/java9/com/linecorp/armeria/internal/common/Java9VersionSpecific.java index 748bf4a2f4e..859849e77fd 100644 --- a/core/src/main/java9/com/linecorp/armeria/internal/common/Java9VersionSpecific.java +++ b/core/src/main/java9/com/linecorp/armeria/internal/common/Java9VersionSpecific.java @@ -28,7 +28,7 @@ /** * Implementation of {@link JavaVersionSpecific} using Java 9 APIs. */ -class Java9VersionSpecific extends JavaVersionSpecific { +final class Java9VersionSpecific extends JavaVersionSpecific { @Override String name() { @@ -36,14 +36,14 @@ String name() { } @Override - public final long currentTimeMicros() { + public long currentTimeMicros() { final Instant now = Clock.systemUTC().instant(); return TimeUnit.SECONDS.toMicros(now.getEpochSecond()) + TimeUnit.NANOSECONDS.toMicros( now.getNano()); } @Override - public final CompletableFuture newContextAwareFuture(RequestContext ctx) { + public CompletableFuture newContextAwareFuture(RequestContext ctx) { return new Java9ContextAwareFuture<>(requireNonNull(ctx, "ctx")); } } diff --git a/junit5/src/main/java/com/linecorp/armeria/testing/junit5/server/mock/MockWebServerExtension.java b/junit5/src/main/java/com/linecorp/armeria/testing/junit5/server/mock/MockWebServerExtension.java index e69d51b19e6..6a57a9fb2dd 100644 --- a/junit5/src/main/java/com/linecorp/armeria/testing/junit5/server/mock/MockWebServerExtension.java +++ b/junit5/src/main/java/com/linecorp/armeria/testing/junit5/server/mock/MockWebServerExtension.java @@ -82,7 +82,7 @@ public class MockWebServerExtension extends ServerExtension implements BeforeTes * Enqueues the {@link HttpResponse} to return to a client of this {@link MockWebServerExtension}. Multiple * calls will return multiple responses in order. */ - public MockWebServerExtension enqueue(HttpResponse response) { + public final MockWebServerExtension enqueue(HttpResponse response) { requireNonNull(response, "response"); mockResponses.add(response); return this; @@ -92,7 +92,7 @@ public MockWebServerExtension enqueue(HttpResponse response) { * Enqueues the {@link AggregatedHttpResponse} to return to a client of this {@link MockWebServerExtension}. * Multiple calls will return multiple responses in order. */ - public MockWebServerExtension enqueue(AggregatedHttpResponse response) { + public final MockWebServerExtension enqueue(AggregatedHttpResponse response) { requireNonNull(response, "response"); mockResponses.add(response.toHttpResponse()); return this; @@ -103,7 +103,7 @@ public MockWebServerExtension enqueue(AggregatedHttpResponse response) { * the requests, in order. Will block up to 10 seconds waiting for a request. */ @Nullable - public RecordedRequest takeRequest() { + public final RecordedRequest takeRequest() { return takeRequest(10, TimeUnit.SECONDS); } @@ -112,7 +112,7 @@ public RecordedRequest takeRequest() { * the requests, in order. Will block the given amount of time waiting for a request. */ @Nullable - public RecordedRequest takeRequest(int amount, TimeUnit unit) { + public final RecordedRequest takeRequest(int amount, TimeUnit unit) { requireNonNull(unit, "unit"); boolean interrupted = false; try { diff --git a/retrofit2/src/main/java/com/linecorp/armeria/client/retrofit2/AbstractSubscriber.java b/retrofit2/src/main/java/com/linecorp/armeria/client/retrofit2/AbstractSubscriber.java index 3354a4bf248..99854ef00ef 100644 --- a/retrofit2/src/main/java/com/linecorp/armeria/client/retrofit2/AbstractSubscriber.java +++ b/retrofit2/src/main/java/com/linecorp/armeria/client/retrofit2/AbstractSubscriber.java @@ -151,12 +151,12 @@ public final void onComplete() { } } - void request(long n) { + final void request(long n) { assert subscription != null; subscription.request(n); } - void safeOnFailure(IOException e) { + final void safeOnFailure(IOException e) { if (callbackCalled) { return; } @@ -164,7 +164,7 @@ void safeOnFailure(IOException e) { callbackExecutor.execute(() -> callback.onFailure(armeriaCall, e)); } - void safeOnResponse(BufferedSource content) { + final void safeOnResponse(BufferedSource content) { if (callbackCalled) { return; } diff --git a/retrofit2/src/main/java/com/linecorp/armeria/client/retrofit2/PipeBuffer.java b/retrofit2/src/main/java/com/linecorp/armeria/client/retrofit2/PipeBuffer.java index cc543cdf8bc..39786f87dec 100644 --- a/retrofit2/src/main/java/com/linecorp/armeria/client/retrofit2/PipeBuffer.java +++ b/retrofit2/src/main/java/com/linecorp/armeria/client/retrofit2/PipeBuffer.java @@ -23,7 +23,7 @@ import okio.Source; import okio.Timeout; -class PipeBuffer { +final class PipeBuffer { private final Buffer buffer = new Buffer(); private final PipeSource source = new PipeSource(); diff --git a/testing-internal/src/main/java/com/linecorp/armeria/internal/testing/DynamicBehaviorHandler.java b/testing-internal/src/main/java/com/linecorp/armeria/internal/testing/DynamicBehaviorHandler.java index 377d2e96c64..14e03a12af9 100644 --- a/testing-internal/src/main/java/com/linecorp/armeria/internal/testing/DynamicBehaviorHandler.java +++ b/testing-internal/src/main/java/com/linecorp/armeria/internal/testing/DynamicBehaviorHandler.java @@ -24,7 +24,7 @@ import io.netty.channel.ChannelPromise; @Sharable -public class DynamicBehaviorHandler extends ChannelDuplexHandler { +public final class DynamicBehaviorHandler extends ChannelDuplexHandler { @Nullable private volatile ThrowingBiConsumer channelReadCustomizer; diff --git a/testing-internal/src/main/java/com/linecorp/armeria/internal/testing/TemporaryFolder.java b/testing-internal/src/main/java/com/linecorp/armeria/internal/testing/TemporaryFolder.java index a86e55d73ab..59b45504c26 100644 --- a/testing-internal/src/main/java/com/linecorp/armeria/internal/testing/TemporaryFolder.java +++ b/testing-internal/src/main/java/com/linecorp/armeria/internal/testing/TemporaryFolder.java @@ -28,7 +28,7 @@ /** * A helper class to handle temporary folders in JUnit {@code Extension}s. */ -public class TemporaryFolder { +public final class TemporaryFolder { // Forked from CentralDogma 0.44.4 // https://github.com/line/centraldogma/blob/4dbc351addc92b509f77be784605b88c3d1b21f2/testing/common/src/main/java/com/linecorp/centraldogma/testing/internal/TemporaryFolder.java diff --git a/thrift0.13/src/main/java/com/linecorp/armeria/common/thrift/text/PairContext.java b/thrift0.13/src/main/java/com/linecorp/armeria/common/thrift/text/PairContext.java index 83afd389fbe..b0770f0d637 100644 --- a/thrift0.13/src/main/java/com/linecorp/armeria/common/thrift/text/PairContext.java +++ b/thrift0.13/src/main/java/com/linecorp/armeria/common/thrift/text/PairContext.java @@ -69,12 +69,12 @@ protected PairContext(@Nullable JsonNode json) { } @Override - protected void write() { + protected final void write() { lhs = !lhs; } @Override - protected void read() { + protected final void read() { lhs = !lhs; // every other time, do a read, since the read gets the name & value // at once. @@ -89,7 +89,7 @@ protected void read() { } @Override - protected JsonNode getCurrentChild() { + protected final JsonNode getCurrentChild() { assert currentChild != null; if (lhs) { return new TextNode(currentChild.getKey()); @@ -98,12 +98,12 @@ protected JsonNode getCurrentChild() { } @Override - protected boolean hasMoreChildren() { + protected final boolean hasMoreChildren() { assert children != null; return children.hasNext(); } - protected boolean isLhs() { + protected final boolean isLhs() { return lhs; } } diff --git a/tomcat9/src/main/java/com/linecorp/armeria/server/tomcat/TomcatService.java b/tomcat9/src/main/java/com/linecorp/armeria/server/tomcat/TomcatService.java index acf3ad1b8fe..49ee6be96f3 100644 --- a/tomcat9/src/main/java/com/linecorp/armeria/server/tomcat/TomcatService.java +++ b/tomcat9/src/main/java/com/linecorp/armeria/server/tomcat/TomcatService.java @@ -327,7 +327,7 @@ static String toString( abstract String hostName(); @Override - public HttpResponse serve(ServiceRequestContext ctx, HttpRequest req) throws Exception { + public final HttpResponse serve(ServiceRequestContext ctx, HttpRequest req) throws Exception { final Connector connector = connector(); if (connector == null) { // Tomcat is not configured / stopped. diff --git a/tomcat9/src/main/java/com/linecorp/armeria/server/tomcat/UnmanagedTomcatService.java b/tomcat9/src/main/java/com/linecorp/armeria/server/tomcat/UnmanagedTomcatService.java index 8d53bbea413..7472c67c8f9 100644 --- a/tomcat9/src/main/java/com/linecorp/armeria/server/tomcat/UnmanagedTomcatService.java +++ b/tomcat9/src/main/java/com/linecorp/armeria/server/tomcat/UnmanagedTomcatService.java @@ -23,7 +23,7 @@ import org.apache.catalina.connector.Connector; import org.apache.catalina.startup.Tomcat; -class UnmanagedTomcatService extends TomcatService { +final class UnmanagedTomcatService extends TomcatService { @Nullable private final String hostName; diff --git a/zookeeper3/src/main/java/com/linecorp/armeria/common/zookeeper/AbstractCuratorFrameworkBuilder.java b/zookeeper3/src/main/java/com/linecorp/armeria/common/zookeeper/AbstractCuratorFrameworkBuilder.java index cdfcdbb9b6d..905ff640b27 100644 --- a/zookeeper3/src/main/java/com/linecorp/armeria/common/zookeeper/AbstractCuratorFrameworkBuilder.java +++ b/zookeeper3/src/main/java/com/linecorp/armeria/common/zookeeper/AbstractCuratorFrameworkBuilder.java @@ -94,7 +94,7 @@ private static String validateZNodePath(String znodePath) { /** * Returns the znode Path. */ - protected String znodePath() { + protected final String znodePath() { return znodePath; } From 5758160b33653d02aa3c76ba076ce95d2d8c5ee7 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Tue, 21 Jul 2020 15:57:57 +0900 Subject: [PATCH 2/2] Remove `final` from `Java9VersionSpecific` as advised by @ikhoon --- .../linecorp/armeria/internal/common/Java9VersionSpecific.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java9/com/linecorp/armeria/internal/common/Java9VersionSpecific.java b/core/src/main/java9/com/linecorp/armeria/internal/common/Java9VersionSpecific.java index 859849e77fd..d333f9cf557 100644 --- a/core/src/main/java9/com/linecorp/armeria/internal/common/Java9VersionSpecific.java +++ b/core/src/main/java9/com/linecorp/armeria/internal/common/Java9VersionSpecific.java @@ -28,7 +28,7 @@ /** * Implementation of {@link JavaVersionSpecific} using Java 9 APIs. */ -final class Java9VersionSpecific extends JavaVersionSpecific { +class Java9VersionSpecific extends JavaVersionSpecific { @Override String name() {