Skip to content

Commit fa0b84e

Browse files
committed
Initial Netty 4.1.0-RC1-SNAPSHOT import
1 parent 63ec7df commit fa0b84e

File tree

78 files changed

+8915
-103
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+8915
-103
lines changed

client/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@
2828
<dependency>
2929
<groupId>io.netty</groupId>
3030
<artifactId>netty-codec-http</artifactId>
31-
<version>4.0.33.Final</version>
31+
</dependency>
32+
<dependency>
33+
<groupId>org.asynchttpclient</groupId>
34+
<artifactId>netty-resolver-dns</artifactId>
35+
<version>${project.version}</version>
3236
</dependency>
3337
<dependency>
3438
<groupId>org.reactivestreams</groupId>

client/src/main/java/org/asynchttpclient/DefaultRequest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import static org.asynchttpclient.util.MiscUtils.isNonEmpty;
1717
import io.netty.handler.codec.http.HttpHeaders;
18+
import io.netty.resolver.NameResolver;
1819

1920
import java.io.File;
2021
import java.io.InputStream;
@@ -31,7 +32,6 @@
3132
import org.asynchttpclient.proxy.ProxyServer;
3233
import org.asynchttpclient.request.body.generator.BodyGenerator;
3334
import org.asynchttpclient.request.body.multipart.Part;
34-
import org.asynchttpclient.resolver.NameResolver;
3535
import org.asynchttpclient.uri.Uri;
3636

3737
public class DefaultRequest implements Request {
@@ -60,7 +60,7 @@ public class DefaultRequest implements Request {
6060
private final long rangeOffset;
6161
private final Charset charset;
6262
private final ChannelPoolPartitioning channelPoolPartitioning;
63-
private final NameResolver nameResolver;
63+
private final NameResolver<InetAddress> nameResolver;
6464
// lazily loaded
6565
private List<Param> queryParams;
6666

@@ -88,7 +88,7 @@ public DefaultRequest(String method,//
8888
long rangeOffset,//
8989
Charset charset,//
9090
ChannelPoolPartitioning channelPoolPartitioning,//
91-
NameResolver nameResolver) {
91+
NameResolver<InetAddress> nameResolver) {
9292
this.method = method;
9393
this.uri = uri;
9494
this.address = address;
@@ -242,7 +242,7 @@ public ChannelPoolPartitioning getChannelPoolPartitioning() {
242242
}
243243

244244
@Override
245-
public NameResolver getNameResolver() {
245+
public NameResolver<InetAddress> getNameResolver() {
246246
return nameResolver;
247247
}
248248

client/src/main/java/org/asynchttpclient/Request.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.asynchttpclient;
1818

1919
import io.netty.handler.codec.http.HttpHeaders;
20+
import io.netty.resolver.NameResolver;
2021

2122
import java.io.File;
2223
import java.io.InputStream;
@@ -30,7 +31,6 @@
3031
import org.asynchttpclient.proxy.ProxyServer;
3132
import org.asynchttpclient.request.body.generator.BodyGenerator;
3233
import org.asynchttpclient.request.body.multipart.Part;
33-
import org.asynchttpclient.resolver.NameResolver;
3434
import org.asynchttpclient.uri.Uri;
3535

3636
/**
@@ -204,5 +204,5 @@ public interface Request {
204204

205205
ChannelPoolPartitioning getChannelPoolPartitioning();
206206

207-
NameResolver getNameResolver();
207+
NameResolver<InetAddress> getNameResolver();
208208
}

client/src/main/java/org/asynchttpclient/RequestBuilderBase.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
import static org.asynchttpclient.util.MiscUtils.isNonEmpty;
2020
import io.netty.handler.codec.http.DefaultHttpHeaders;
2121
import io.netty.handler.codec.http.HttpHeaders;
22+
import io.netty.resolver.DefaultNameResolver;
23+
import io.netty.resolver.NameResolver;
24+
import io.netty.util.concurrent.ImmediateEventExecutor;
2225

2326
import java.io.File;
2427
import java.io.InputStream;
@@ -37,8 +40,6 @@
3740
import org.asynchttpclient.request.body.generator.BodyGenerator;
3841
import org.asynchttpclient.request.body.generator.ReactiveStreamsBodyGenerator;
3942
import org.asynchttpclient.request.body.multipart.Part;
40-
import org.asynchttpclient.resolver.JdkNameResolver;
41-
import org.asynchttpclient.resolver.NameResolver;
4243
import org.asynchttpclient.uri.Uri;
4344
import org.asynchttpclient.util.UriEncoder;
4445
import org.reactivestreams.Publisher;
@@ -51,6 +52,8 @@
5152
* @param <T> the builder type
5253
*/
5354
public abstract class RequestBuilderBase<T extends RequestBuilderBase<T>> {
55+
56+
public static NameResolver<InetAddress> DEFAULT_NAME_RESOLVER = new DefaultNameResolver(ImmediateEventExecutor.INSTANCE);
5457

5558
private final static Logger LOGGER = LoggerFactory.getLogger(RequestBuilderBase.class);
5659

@@ -86,7 +89,7 @@ public abstract class RequestBuilderBase<T extends RequestBuilderBase<T>> {
8689
protected long rangeOffset;
8790
protected Charset charset;
8891
protected ChannelPoolPartitioning channelPoolPartitioning = ChannelPoolPartitioning.PerHostChannelPoolPartitioning.INSTANCE;
89-
protected NameResolver nameResolver = JdkNameResolver.INSTANCE;
92+
protected NameResolver<InetAddress> nameResolver = DEFAULT_NAME_RESOLVER;
9093

9194
protected RequestBuilderBase(String method, boolean disableUrlEncoding) {
9295
this(method, disableUrlEncoding, true);
@@ -426,7 +429,7 @@ public T setChannelPoolPartitioning(ChannelPoolPartitioning channelPoolPartition
426429
return asDerivedType();
427430
}
428431

429-
public T setNameResolver(NameResolver nameResolver) {
432+
public T setNameResolver(NameResolver<InetAddress> nameResolver) {
430433
this.nameResolver = nameResolver;
431434
return asDerivedType();
432435
}

client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -459,8 +459,8 @@ private void validateWebSocketRequest(Request request, AsyncHandler<?> asyncHand
459459
if (asyncHandler instanceof WebSocketUpgradeHandler) {
460460
if (!isWs)
461461
throw new IllegalArgumentException("WebSocketUpgradeHandler but scheme isn't ws or wss: " + uri.getScheme());
462-
else if (!request.getMethod().equals(GET))
463-
throw new IllegalArgumentException("WebSocketUpgradeHandler but method isn't GET: " + request.getMethod());
462+
else if (!request.getMethod().equals(GET) && !request.getMethod().equals(CONNECT))
463+
throw new IllegalArgumentException("WebSocketUpgradeHandler but method isn't GET or CONNECT: " + request.getMethod());
464464
} else if (isWs) {
465465
throw new IllegalArgumentException("No WebSocketUpgradeHandler but scheme is " + uri.getScheme());
466466
}

client/src/main/java/org/asynchttpclient/resolver/JdkNameResolver.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

client/src/main/java/org/asynchttpclient/resolver/NameResolver.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

client/src/main/java/org/asynchttpclient/resolver/RequestHostnameResolver.java

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
import io.netty.util.concurrent.ImmediateEventExecutor;
1919
import io.netty.util.concurrent.Promise;
2020

21+
import java.net.InetAddress;
2122
import java.net.InetSocketAddress;
23+
import java.util.ArrayList;
2224
import java.util.Collections;
2325
import java.util.List;
2426

@@ -36,12 +38,11 @@ public enum RequestHostnameResolver {
3638
public Future<List<InetSocketAddress>> resolve(Request request, ProxyServer proxy, AsyncHandler<?> asyncHandler) {
3739

3840
Uri uri = request.getUri();
41+
final Promise<List<InetSocketAddress>> promise = ImmediateEventExecutor.INSTANCE.newPromise();
3942

4043
if (request.getAddress() != null) {
4144
List<InetSocketAddress> resolved = Collections.singletonList(new InetSocketAddress(request.getAddress(), uri.getExplicitPort()));
42-
Promise<List<InetSocketAddress>> promise = ImmediateEventExecutor.INSTANCE.newPromise();
4345
return promise.setSuccess(resolved);
44-
4546
}
4647

4748
// don't notify on explicit address
@@ -60,30 +61,31 @@ public Future<List<InetSocketAddress>> resolve(Request request, ProxyServer prox
6061
if (asyncHandlerExtensions != null)
6162
asyncHandlerExtensions.onHostnameResolutionAttempt(name);
6263

63-
final Future<List<InetSocketAddress>> whenResolved = request.getNameResolver().resolve(name, port);
64+
final Future<List<InetAddress>> whenResolved = request.getNameResolver().resolveAll(name);
6465

65-
if (asyncHandlerExtensions == null)
66-
return whenResolved;
66+
whenResolved.addListener(new SimpleFutureListener<List<InetAddress>>() {
6767

68-
else {
69-
Promise<List<InetSocketAddress>> promise = ImmediateEventExecutor.INSTANCE.newPromise();
70-
71-
whenResolved.addListener(new SimpleFutureListener<List<InetSocketAddress>>() {
72-
7368
@Override
74-
protected void onSuccess(List<InetSocketAddress> addresses) throws Exception {
75-
asyncHandlerExtensions.onHostnameResolutionSuccess(name, addresses);
76-
promise.setSuccess(addresses);
69+
protected void onSuccess(List<InetAddress> value) throws Exception {
70+
ArrayList<InetSocketAddress> socketAddresses = new ArrayList<>(value.size());
71+
for (InetAddress a : value) {
72+
socketAddresses.add(new InetSocketAddress(a, port));
73+
}
74+
if (asyncHandlerExtensions != null) {
75+
asyncHandlerExtensions.onHostnameResolutionSuccess(name, socketAddresses);
76+
}
77+
promise.trySuccess(socketAddresses);
7778
}
78-
79+
7980
@Override
8081
protected void onFailure(Throwable t) throws Exception {
81-
asyncHandlerExtensions.onHostnameResolutionFailure(name, t);
82-
promise.setFailure(t);
82+
if (asyncHandlerExtensions != null) {
83+
asyncHandlerExtensions.onHostnameResolutionFailure(name, t);
84+
}
85+
promise.tryFailure(t);
8386
}
8487
});
85-
88+
8689
return promise;
87-
}
8890
}
8991
}

netty-bp/codec-dns/pom.xml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
~ Copyright 2014 The Netty Project
4+
~
5+
~ The Netty Project licenses this file to you under the Apache License,
6+
~ version 2.0 (the "License"); you may not use this file except in compliance
7+
~ with the License. You may obtain a copy of the License at:
8+
~
9+
~ http://www.apache.org/licenses/LICENSE-2.0
10+
~
11+
~ Unless required by applicable law or agreed to in writing, software
12+
~ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13+
~ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14+
~ License for the specific language governing permissions and limitations
15+
~ under the License.
16+
-->
17+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
18+
19+
<modelVersion>4.0.0</modelVersion>
20+
<parent>
21+
<groupId>org.asynchttpclient</groupId>
22+
<artifactId>netty-bp</artifactId>
23+
<version>2.0.0-RC7-SNAPSHOT</version>
24+
</parent>
25+
26+
<artifactId>netty-codec-dns</artifactId>
27+
28+
<name>Netty/Codec/DNS</name>
29+
30+
<dependencies>
31+
<dependency>
32+
<groupId>io.netty</groupId>
33+
<artifactId>netty-codec</artifactId>
34+
</dependency>
35+
</dependencies>
36+
</project>
37+

0 commit comments

Comments
 (0)