Skip to content

Commit 8f97528

Browse files
authored
Http Class Name Cleanup (Azure#18911)
Standardizes class names used in our HttpClient implementation packages
1 parent 420323d commit 8f97528

31 files changed

+359
-1031
lines changed

eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml

Lines changed: 148 additions & 136 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4-
import com.azure.core.http.jdk.httpclient.JdkHttpClientProvider;
5-
64
module com.azure.core.http.jdk.httpclient {
75
requires transitive com.azure.core;
86
requires java.net.http;
97

108
exports com.azure.core.http.jdk.httpclient;
119

1210
provides com.azure.core.http.HttpClientProvider
13-
with JdkHttpClientProvider;
11+
with com.azure.core.http.jdk.httpclient.JdkHttpClientProvider;
1412

1513
uses com.azure.core.http.HttpClientProvider;
1614
}

sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/NettyAsyncHttpClient.java

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import com.azure.core.http.HttpRequest;
99
import com.azure.core.http.HttpResponse;
1010
import com.azure.core.http.ProxyOptions;
11+
import com.azure.core.http.netty.implementation.NettyAsyncHttpResponse;
12+
import com.azure.core.http.netty.implementation.NettyAsyncHttpBufferedResponse;
1113
import com.azure.core.util.Context;
1214
import com.azure.core.util.FluxUtil;
1315
import io.netty.buffer.ByteBuf;
@@ -27,6 +29,8 @@
2729
import java.util.concurrent.atomic.AtomicBoolean;
2830
import java.util.function.BiFunction;
2931

32+
import static com.azure.core.http.netty.implementation.Utility.closeConnection;
33+
3034
/**
3135
* This class provides a Netty-based implementation for the {@link HttpClient} interface. Creating an instance of this
3236
* class can be achieved by using the {@link NettyAsyncHttpClientBuilder} class, which offers Netty-specific API for
@@ -42,13 +46,6 @@ class NettyAsyncHttpClient implements HttpClient {
4246

4347
final reactor.netty.http.client.HttpClient nettyClient;
4448

45-
/**
46-
* Creates default NettyAsyncHttpClient.
47-
*/
48-
NettyAsyncHttpClient() {
49-
this(reactor.netty.http.client.HttpClient.create(), false);
50-
}
51-
5249
/**
5350
* Creates NettyAsyncHttpClient with provided http client.
5451
*
@@ -148,25 +145,12 @@ private static BiFunction<HttpClientResponse, Connection, Publisher<HttpResponse
148145
.doFinally(ignored -> closeConnection(reactorNettyConnection));
149146

150147
return FluxUtil.collectBytesInByteBufferStream(body)
151-
.map(bytes -> new BufferedReactorNettyHttpResponse(reactorNettyResponse, restRequest, bytes));
148+
.map(bytes -> new NettyAsyncHttpBufferedResponse(reactorNettyResponse, restRequest, bytes));
152149

153150
} else {
154-
return Mono.just(new ReactorNettyHttpResponse(reactorNettyResponse, reactorNettyConnection, restRequest,
151+
return Mono.just(new NettyAsyncHttpResponse(reactorNettyResponse, reactorNettyConnection, restRequest,
155152
disableBufferCopy));
156153
}
157154
};
158155
}
159-
160-
static ByteBuffer deepCopyBuffer(ByteBuf byteBuf) {
161-
ByteBuffer buffer = ByteBuffer.allocate(byteBuf.readableBytes());
162-
byteBuf.readBytes(buffer);
163-
buffer.rewind();
164-
return buffer;
165-
}
166-
167-
static void closeConnection(Connection reactorNettyConnection) {
168-
if (!reactorNettyConnection.isDisposed()) {
169-
reactorNettyConnection.channel().eventLoop().execute(reactorNettyConnection::dispose);
170-
}
171-
}
172156
}

sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/NettyAsyncHttpClientBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ private static void removeReadTimeoutHandler(Connection connection) {
383383
static long getTimeoutMillis(Duration timeout) {
384384
// Timeout is null, use the 60 second default.
385385
if (timeout == null) {
386-
return TimeUnit.SECONDS.toMillis(60);
386+
return DEFAULT_TIMEOUT;
387387
}
388388

389389
// Timeout is less than or equal to zero, return no timeout.

sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/ReactorNettyClientProvider.java renamed to sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/NettyAsyncHttpClientProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
/**
1111
* An {@link HttpClientProvider} that provides an implementation of HttpClient based on Netty.
1212
*/
13-
public final class ReactorNettyClientProvider implements HttpClientProvider {
13+
public final class NettyAsyncHttpClientProvider implements HttpClientProvider {
1414

1515
@Override
1616
public HttpClient createInstance() {

sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/BufferedReactorNettyHttpResponse.java renamed to sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/implementation/NettyAsyncHttpBufferedResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4-
package com.azure.core.http.netty;
4+
package com.azure.core.http.netty.implementation;
55

66
import com.azure.core.http.HttpRequest;
77
import com.azure.core.util.CoreUtils;
@@ -15,10 +15,10 @@
1515
/**
1616
* A Reactor Netty response where the response body has been buffered into memory.
1717
*/
18-
final class BufferedReactorNettyHttpResponse extends ReactorNettyHttpResponseBase {
18+
public final class NettyAsyncHttpBufferedResponse extends NettyAsyncHttpResponseBase {
1919
private final byte[] body;
2020

21-
BufferedReactorNettyHttpResponse(HttpClientResponse httpClientResponse, HttpRequest httpRequest, byte[] body) {
21+
public NettyAsyncHttpBufferedResponse(HttpClientResponse httpClientResponse, HttpRequest httpRequest, byte[] body) {
2222
super(httpClientResponse, httpRequest);
2323
this.body = body;
2424
}

sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/ReactorNettyHttpResponse.java renamed to sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/implementation/NettyAsyncHttpResponse.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4-
package com.azure.core.http.netty;
4+
package com.azure.core.http.netty.implementation;
55

66
import com.azure.core.http.HttpRequest;
77
import com.azure.core.util.CoreUtils;
@@ -14,17 +14,17 @@
1414
import java.nio.ByteBuffer;
1515
import java.nio.charset.Charset;
1616

17-
import static com.azure.core.http.netty.NettyAsyncHttpClient.closeConnection;
18-
import static com.azure.core.http.netty.NettyAsyncHttpClient.deepCopyBuffer;
17+
import static com.azure.core.http.netty.implementation.Utility.closeConnection;
18+
import static com.azure.core.http.netty.implementation.Utility.deepCopyBuffer;
1919

2020
/**
2121
* Default HTTP response for Reactor Netty.
2222
*/
23-
final class ReactorNettyHttpResponse extends ReactorNettyHttpResponseBase {
23+
public final class NettyAsyncHttpResponse extends NettyAsyncHttpResponseBase {
2424
private final Connection reactorNettyConnection;
2525
private final boolean disableBufferCopy;
2626

27-
ReactorNettyHttpResponse(HttpClientResponse reactorNettyResponse, Connection reactorNettyConnection,
27+
public NettyAsyncHttpResponse(HttpClientResponse reactorNettyResponse, Connection reactorNettyConnection,
2828
HttpRequest httpRequest, boolean disableBufferCopy) {
2929
super(reactorNettyResponse, httpRequest);
3030
this.reactorNettyConnection = reactorNettyConnection;
@@ -62,7 +62,7 @@ private ByteBufFlux bodyIntern() {
6262
}
6363

6464
// used for testing only
65-
Connection internConnection() {
65+
public Connection internConnection() {
6666
return reactorNettyConnection;
6767
}
6868
}

sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/ReactorNettyHttpResponseBase.java renamed to sdk/core/azure-core-http-netty/src/main/java/com/azure/core/http/netty/implementation/NettyAsyncHttpResponseBase.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4-
package com.azure.core.http.netty;
4+
package com.azure.core.http.netty.implementation;
55

66
import com.azure.core.http.HttpHeaders;
77
import com.azure.core.http.HttpRequest;
88
import com.azure.core.http.HttpResponse;
9-
import com.azure.core.http.netty.implementation.NettyToAzureCoreHttpHeadersWrapper;
109
import reactor.netty.http.client.HttpClientResponse;
1110

1211
/**
1312
* Base response class for Reactor Netty with implementations for response metadata.
1413
*/
15-
abstract class ReactorNettyHttpResponseBase extends HttpResponse {
14+
public abstract class NettyAsyncHttpResponseBase extends HttpResponse {
1615
private final HttpClientResponse reactorNettyResponse;
1716

1817
// We use a wrapper for the Netty-returned headers, so we are not forced to pay up-front the cost of converting
1918
// from Netty HttpHeaders to azure-core HttpHeaders. Instead, by wrapping it, there is no cost to pay as we map
2019
// the Netty HttpHeaders API into the azure-core HttpHeaders API.
2120
private NettyToAzureCoreHttpHeadersWrapper headers;
2221

23-
ReactorNettyHttpResponseBase(HttpClientResponse reactorNettyResponse, HttpRequest httpRequest) {
22+
NettyAsyncHttpResponseBase(HttpClientResponse reactorNettyResponse, HttpRequest httpRequest) {
2423
super(httpRequest);
2524
this.reactorNettyResponse = reactorNettyResponse;
2625
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.core.http.netty.implementation;
5+
6+
import io.netty.buffer.ByteBuf;
7+
import reactor.netty.Connection;
8+
9+
import java.nio.ByteBuffer;
10+
11+
/**
12+
* Helper class containing utility methods.
13+
*/
14+
public final class Utility {
15+
/**
16+
* Deep copies the passed {@link ByteBuf} into a {@link ByteBuffer}.
17+
* <p>
18+
* Using this method ensures that data returned by the network is resilient against Reactor Netty releasing the
19+
* passed {@link ByteBuf} once the {@code doOnNext} operator fires.
20+
*
21+
* @param byteBuf The Netty {@link ByteBuf} to deep copy.
22+
* @return A newly allocated {@link ByteBuffer} containing the copied bytes.
23+
*/
24+
public static ByteBuffer deepCopyBuffer(ByteBuf byteBuf) {
25+
ByteBuffer buffer = ByteBuffer.allocate(byteBuf.readableBytes());
26+
byteBuf.readBytes(buffer);
27+
buffer.rewind();
28+
return buffer;
29+
}
30+
31+
/**
32+
* Closes a connection if it hasn't been disposed.
33+
*
34+
* @param reactorNettyConnection The connection to close.
35+
*/
36+
public static void closeConnection(Connection reactorNettyConnection) {
37+
if (!reactorNettyConnection.isDisposed()) {
38+
reactorNettyConnection.channel().eventLoop().execute(reactorNettyConnection::dispose);
39+
}
40+
}
41+
42+
private Utility() {
43+
}
44+
}

sdk/core/azure-core-http-netty/src/main/java/module-info.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4-
import com.azure.core.http.netty.ReactorNettyClientProvider;
5-
64
module com.azure.http.netty {
75
requires transitive com.azure.core;
86
requires reactor.netty;
@@ -18,7 +16,7 @@
1816
exports com.azure.core.http.netty;
1917

2018
provides com.azure.core.http.HttpClientProvider
21-
with ReactorNettyClientProvider;
19+
with com.azure.core.http.netty.NettyAsyncHttpClientProvider;
2220

2321
uses com.azure.core.http.HttpClientProvider;
2422
}

0 commit comments

Comments
 (0)