Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3cb7951

Browse files
author
oleksiys
committed
[1.8.x] + minor threads cleanup, use ioThreads config value, fix tests
1 parent7373be5 commit3cb7951

File tree

6 files changed

+139
-87
lines changed

6 files changed

+139
-87
lines changed

‎pom.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@
591591
<compiler.exclude>com/ning/http/client/providers/grizzly/*.java</compiler.exclude>
592592
<test.compiler.exclude>com/ning/http/client/async/grizzly/*.java</test.compiler.exclude>
593593
<javadoc.package.exclude>com.ning.http.client.providers.grizzly</javadoc.package.exclude>
594-
<grizzly.version>2.3.14</grizzly.version>
594+
<grizzly.version>2.3.16</grizzly.version>
595595
<source.property>1.5</source.property>
596596
<target.property>1.5</target.property>
597597
<surefire.version>2.12</surefire.version>

‎src/main/java/com/ning/http/client/providers/grizzly/GrizzlyAsyncHttpProvider.java‎

Lines changed: 70 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,57 @@
1313

1414
packagecom.ning.http.client.providers.grizzly;
1515

16+
importcom.ning.http.client.AsyncHandler;
17+
importcom.ning.http.client.AsyncHandlerExtensions;
18+
importcom.ning.http.client.AsyncHttpClient;
19+
importcom.ning.http.client.AsyncHttpClientConfig;
20+
importcom.ning.http.client.AsyncHttpProvider;
21+
importcom.ning.http.client.AsyncHttpProviderConfig;
22+
importcom.ning.http.client.Body;
23+
importcom.ning.http.client.BodyGenerator;
24+
importcom.ning.http.client.ConnectionsPool;
25+
importcom.ning.http.client.FluentCaseInsensitiveStringsMap;
26+
importcom.ning.http.client.FluentStringsMap;
27+
importcom.ning.http.client.HttpResponseBodyPart;
28+
importcom.ning.http.client.HttpResponseHeaders;
29+
importcom.ning.http.client.HttpResponseStatus;
30+
importcom.ning.http.client.ListenableFuture;
31+
importcom.ning.http.client.MaxRedirectException;
32+
importcom.ning.http.client.Part;
33+
importcom.ning.http.client.PerRequestConfig;
34+
importcom.ning.http.client.ProxyServer;
35+
importcom.ning.http.client.Realm;
36+
importcom.ning.http.client.Request;
37+
importcom.ning.http.client.RequestBuilder;
38+
importcom.ning.http.client.Response;
39+
importcom.ning.http.client.UpgradeHandler;
40+
importcom.ning.http.client.cookie.Cookie;
41+
importcom.ning.http.client.cookie.CookieDecoder;
42+
importcom.ning.http.client.filter.FilterContext;
43+
importcom.ning.http.client.filter.ResponseFilter;
44+
importcom.ning.http.client.listener.TransferCompletionHandler;
45+
importcom.ning.http.client.ntlm.NTLMEngine;
1646
importstaticcom.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProviderConfig.Property.BUFFER_WEBSOCKET_FRAGMENTS;
1747
importstaticcom.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProviderConfig.Property.MAX_HTTP_PACKET_HEADER_SIZE;
1848
importstaticcom.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProviderConfig.Property.TRANSPORT_CUSTOMIZER;
49+
importcom.ning.http.client.websocket.WebSocket;
50+
importcom.ning.http.client.websocket.WebSocketByteListener;
51+
importcom.ning.http.client.websocket.WebSocketCloseCodeReasonListener;
52+
importcom.ning.http.client.websocket.WebSocketListener;
53+
importcom.ning.http.client.websocket.WebSocketPingListener;
54+
importcom.ning.http.client.websocket.WebSocketPongListener;
55+
importcom.ning.http.client.websocket.WebSocketTextListener;
56+
importcom.ning.http.client.websocket.WebSocketUpgradeHandler;
57+
importcom.ning.http.multipart.MultipartBody;
58+
importcom.ning.http.multipart.MultipartRequestEntity;
59+
importcom.ning.http.util.AsyncHttpProviderUtils;
60+
importcom.ning.http.util.AuthenticatorUtils;
61+
importstaticcom.ning.http.util.MiscUtil.isNonEmpty;
62+
importstaticcom.ning.http.util.MiscUtil.isNonEmpty;
1963
importstaticcom.ning.http.util.MiscUtil.isNonEmpty;
2064

65+
importcom.ning.http.util.ProxyUtils;
66+
importcom.ning.http.util.SslUtils;
2167
importjava.io.ByteArrayOutputStream;
2268
importjava.io.File;
2369
importjava.io.FileInputStream;
@@ -42,10 +88,11 @@
4288
importjava.util.concurrent.TimeoutException;
4389
importjava.util.concurrent.atomic.AtomicInteger;
4490
importjava.util.concurrent.atomic.AtomicLong;
45-
4691
importjavax.net.ssl.SSLContext;
47-
4892
importorg.glassfish.grizzly.Buffer;
93+
importorg.glassfish.grizzly.CloseListener;
94+
importorg.glassfish.grizzly.CloseType;
95+
importorg.glassfish.grizzly.Closeable;
4996
importorg.glassfish.grizzly.CompletionHandler;
5097
importorg.glassfish.grizzly.Connection;
5198
importorg.glassfish.grizzly.EmptyCompletionHandler;
@@ -80,13 +127,15 @@
80127
importorg.glassfish.grizzly.impl.SafeFutureImpl;
81128
importorg.glassfish.grizzly.memory.Buffers;
82129
importorg.glassfish.grizzly.memory.MemoryManager;
130+
importorg.glassfish.grizzly.nio.RoundRobinConnectionDistributor;
83131
importorg.glassfish.grizzly.nio.transport.TCPNIOConnectorHandler;
84132
importorg.glassfish.grizzly.nio.transport.TCPNIOTransport;
85133
importorg.glassfish.grizzly.nio.transport.TCPNIOTransportBuilder;
86134
importorg.glassfish.grizzly.ssl.SSLEngineConfigurator;
87135
importorg.glassfish.grizzly.ssl.SSLFilter;
88136
importorg.glassfish.grizzly.strategies.SameThreadIOStrategy;
89137
importorg.glassfish.grizzly.strategies.WorkerThreadIOStrategy;
138+
importorg.glassfish.grizzly.threadpool.ThreadPoolConfig;
90139
importorg.glassfish.grizzly.utils.BufferOutputStream;
91140
importorg.glassfish.grizzly.utils.Charsets;
92141
importorg.glassfish.grizzly.utils.DelayedExecutor;
@@ -103,54 +152,6 @@
103152
importorg.slf4j.Logger;
104153
importorg.slf4j.LoggerFactory;
105154

106-
importcom.ning.http.client.AsyncHandler;
107-
importcom.ning.http.client.AsyncHandlerExtensions;
108-
importcom.ning.http.client.AsyncHttpClient;
109-
importcom.ning.http.client.AsyncHttpClientConfig;
110-
importcom.ning.http.client.AsyncHttpProvider;
111-
importcom.ning.http.client.AsyncHttpProviderConfig;
112-
importcom.ning.http.client.Body;
113-
importcom.ning.http.client.BodyGenerator;
114-
importcom.ning.http.client.ConnectionsPool;
115-
importcom.ning.http.client.FluentCaseInsensitiveStringsMap;
116-
importcom.ning.http.client.FluentStringsMap;
117-
importcom.ning.http.client.HttpResponseBodyPart;
118-
importcom.ning.http.client.HttpResponseHeaders;
119-
importcom.ning.http.client.HttpResponseStatus;
120-
importcom.ning.http.client.ListenableFuture;
121-
importcom.ning.http.client.MaxRedirectException;
122-
importcom.ning.http.client.Part;
123-
importcom.ning.http.client.PerRequestConfig;
124-
importcom.ning.http.client.ProxyServer;
125-
importcom.ning.http.client.Realm;
126-
importcom.ning.http.client.Request;
127-
importcom.ning.http.client.RequestBuilder;
128-
importcom.ning.http.client.Response;
129-
importcom.ning.http.client.UpgradeHandler;
130-
importcom.ning.http.client.cookie.Cookie;
131-
importcom.ning.http.client.cookie.CookieDecoder;
132-
importcom.ning.http.client.filter.FilterContext;
133-
importcom.ning.http.client.filter.ResponseFilter;
134-
importcom.ning.http.client.listener.TransferCompletionHandler;
135-
importcom.ning.http.client.ntlm.NTLMEngine;
136-
importcom.ning.http.client.websocket.WebSocket;
137-
importcom.ning.http.client.websocket.WebSocketByteListener;
138-
importcom.ning.http.client.websocket.WebSocketCloseCodeReasonListener;
139-
importcom.ning.http.client.websocket.WebSocketListener;
140-
importcom.ning.http.client.websocket.WebSocketPingListener;
141-
importcom.ning.http.client.websocket.WebSocketPongListener;
142-
importcom.ning.http.client.websocket.WebSocketTextListener;
143-
importcom.ning.http.client.websocket.WebSocketUpgradeHandler;
144-
importcom.ning.http.multipart.MultipartBody;
145-
importcom.ning.http.multipart.MultipartRequestEntity;
146-
importcom.ning.http.util.AsyncHttpProviderUtils;
147-
importcom.ning.http.util.AuthenticatorUtils;
148-
importcom.ning.http.util.ProxyUtils;
149-
importcom.ning.http.util.SslUtils;
150-
importorg.glassfish.grizzly.CloseListener;
151-
importorg.glassfish.grizzly.CloseType;
152-
importorg.glassfish.grizzly.Closeable;
153-
154155
/**
155156
* A Grizzly 2.0-based implementation of {@link AsyncHttpProvider}.
156157
*
@@ -420,6 +421,24 @@ public void onTimeout(Connection connection) {
420421
fcb.add(clientFilter);
421422
clientTransport.getAsyncQueueIO().getWriter()
422423
.setMaxPendingBytesPerConnection(AsyncQueueWriter.AUTO_SIZE);
424+
425+
clientTransport.setNIOChannelDistributor(
426+
newRoundRobinConnectionDistributor(clientTransport,false,false));
427+
428+
finalintkernelThreadsCount =
429+
clientConfig.getIoThreadMultiplier() *
430+
Runtime.getRuntime().availableProcessors();
431+
432+
clientTransport.setSelectorRunnersCount(kernelThreadsCount);
433+
clientTransport.setKernelThreadPoolConfig(
434+
ThreadPoolConfig.defaultConfig()
435+
.setCorePoolSize(kernelThreadsCount)
436+
.setMaxPoolSize(kernelThreadsCount)
437+
.setPoolName("grizzly-ahc-kernel")
438+
// .setPoolName(discoverTestName("grizzly-ahc-kernel")) // uncomment for tests to track down the leaked threads
439+
);
440+
441+
423442
finalTransportCustomizercustomizer = (TransportCustomizer)
424443
providerConfig.getProperty(TRANSPORT_CUSTOMIZER);
425444
if (customizer !=null) {
@@ -428,7 +447,7 @@ public void onTimeout(Connection connection) {
428447
doDefaultTransportConfig();
429448
}
430449
fcb.add(newWebSocketFilter());
431-
450+
432451
clientTransport.setProcessor(fcb.build());
433452

434453
}

‎src/main/java/com/ning/http/client/providers/grizzly/GrizzlyConnectionsPool.java‎

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2012 Sonatype, Inc. All rights reserved.
2+
* Copyright (c) 2012-2014 Sonatype, Inc. All rights reserved.
33
*
44
* This program is licensed to you under the Apache License Version 2.0,
55
* and you may not use this file except in compliance with the Apache License Version 2.0.
@@ -13,8 +13,6 @@
1313

1414
packagecom.ning.http.client.providers.grizzly;
1515

16-
importstaticcom.ning.http.util.DateUtil.millisTime;
17-
1816
importcom.ning.http.client.AsyncHttpClientConfig;
1917
importcom.ning.http.client.ConnectionsPool;
2018

@@ -40,6 +38,9 @@
4038
importjava.util.concurrent.atomic.AtomicBoolean;
4139
importjava.util.concurrent.atomic.AtomicInteger;
4240

41+
importstaticcom.ning.http.util.DateUtil.millisTime;
42+
importstaticcom.ning.http.client.providers.grizzly.Utils.*;
43+
4344
/**
4445
* {@link ConnectionsPool} implementation.
4546
*
@@ -269,16 +270,6 @@ public void destroy() {
269270
}
270271

271272

272-
// --------------------------------------------------------- Private Methods
273-
274-
275-
privatebooleanisSecure(Stringuri) {
276-
277-
return (uri.startsWith("https") ||uri.startsWith("wss"));
278-
279-
}
280-
281-
282273
// ---------------------------------------------------------- Nested Classes
283274

284275

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright (c) 2013-2014 Sonatype, Inc. All rights reserved.
3+
*
4+
* This program is licensed to you under the Apache License Version 2.0,
5+
* and you may not use this file except in compliance with the Apache License Version 2.0.
6+
* You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
7+
*
8+
* Unless required by applicable law or agreed to in writing,
9+
* software distributed under the Apache License Version 2.0 is distributed on an
10+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
* See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
12+
*/
13+
14+
packagecom.ning.http.client.providers.grizzly;
15+
16+
17+
publicclassUtils {
18+
// ------------------------------------------------------------ Constructors
19+
20+
privateUtils() {
21+
}
22+
23+
// ---------------------------------------------------------- Public Methods
24+
25+
publicstaticbooleanisSecure(finalStringuri) {
26+
return (uri.startsWith("https") ||uri.startsWith("wss"));
27+
}
28+
29+
staticStringdiscoverTestName(finalStringdefaultName) {
30+
finalStackTraceElement[]stackTrace =Thread.currentThread().getStackTrace();
31+
finalintstrackTraceLen =stackTrace.length;
32+
33+
if (stackTrace[strackTraceLen -1].getClassName().contains("surefire")) {
34+
for (inti =strackTraceLen -2;i >=0;i--) {
35+
if (stackTrace[i].getClassName().contains("com.ning.http.client.async")) {
36+
return"grizzly-kernel-" +
37+
stackTrace[i].getClassName() +"." +stackTrace[i].getMethodName();
38+
}
39+
}
40+
}
41+
42+
returndefaultName;
43+
}
44+
}

‎src/test/java/com/ning/http/client/async/grizzly/GrizzlyFeedableBodyGeneratorTest.java‎

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2013 Sonatype, Inc. All rights reserved.
2+
* Copyright (c) 2013-2014 Sonatype, Inc. All rights reserved.
33
*
44
* This program is licensed to you under the Apache License Version 2.0,
55
* and you may not use this file except in compliance with the Apache License Version 2.0.
@@ -20,20 +20,6 @@
2020
importcom.ning.http.client.providers.grizzly.FeedableBodyGenerator;
2121
importcom.ning.http.client.providers.grizzly.FeedableBodyGenerator.NonBlockingFeeder;
2222
importcom.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider;
23-
importorg.glassfish.grizzly.Buffer;
24-
importorg.glassfish.grizzly.http.server.HttpHandler;
25-
importorg.glassfish.grizzly.http.server.HttpServer;
26-
importorg.glassfish.grizzly.http.server.NetworkListener;
27-
importorg.glassfish.grizzly.http.server.Request;
28-
importorg.glassfish.grizzly.http.server.Response;
29-
importorg.glassfish.grizzly.memory.Buffers;
30-
importorg.glassfish.grizzly.ssl.SSLContextConfigurator;
31-
importorg.glassfish.grizzly.ssl.SSLEngineConfigurator;
32-
importorg.glassfish.grizzly.utils.Charsets;
33-
importorg.testng.annotations.AfterTest;
34-
importorg.testng.annotations.BeforeTest;
35-
importorg.testng.annotations.Test;
36-
3723
importjava.io.File;
3824
importjava.io.FileInputStream;
3925
importjava.io.FileOutputStream;
@@ -45,12 +31,24 @@
4531
importjava.util.concurrent.ExecutorService;
4632
importjava.util.concurrent.Executors;
4733
importjava.util.concurrent.TimeUnit;
48-
34+
importorg.glassfish.grizzly.Buffer;
35+
importorg.glassfish.grizzly.http.server.HttpHandler;
36+
importorg.glassfish.grizzly.http.server.HttpServer;
37+
importorg.glassfish.grizzly.http.server.NetworkListener;
4938
importstaticorg.glassfish.grizzly.http.server.NetworkListener.DEFAULT_NETWORK_HOST;
39+
importorg.glassfish.grizzly.http.server.Request;
40+
importorg.glassfish.grizzly.http.server.Response;
41+
importorg.glassfish.grizzly.memory.Buffers;
5042
importstaticorg.glassfish.grizzly.memory.MemoryManager.DEFAULT_MEMORY_MANAGER;
43+
importorg.glassfish.grizzly.ssl.SSLContextConfigurator;
44+
importorg.glassfish.grizzly.ssl.SSLEngineConfigurator;
45+
importorg.glassfish.grizzly.utils.Charsets;
5146
importstaticorg.testng.Assert.assertNull;
5247
importstaticorg.testng.Assert.fail;
5348
importstaticorg.testng.AssertJUnit.assertEquals;
49+
importorg.testng.annotations.AfterMethod;
50+
importorg.testng.annotations.BeforeMethod;
51+
importorg.testng.annotations.Test;
5452

5553
publicclassGrizzlyFeedableBodyGeneratorTest {
5654

@@ -68,7 +66,7 @@ public class GrizzlyFeedableBodyGeneratorTest {
6866
// ------------------------------------------------------------------- Setup
6967

7068

71-
@BeforeTest
69+
@BeforeMethod
7270
publicvoidsetup()throwsException {
7371
generateTempFile();
7472
server =newHttpServer();
@@ -92,7 +90,7 @@ public void setup() throws Exception {
9290
// --------------------------------------------------------------- Tear Down
9391

9492

95-
@AfterTest
93+
@AfterMethod
9694
publicvoidtearDown() {
9795
if (!tempFile.delete()) {
9896
tempFile.deleteOnExit();

‎src/test/java/com/ning/http/client/async/grizzly/GrizzlyNoTransferEncodingTest.java‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
importorg.glassfish.grizzly.http.server.Request;
2626
importorg.glassfish.grizzly.http.server.Response;
2727
importorg.testng.Assert;
28-
importorg.testng.annotations.AfterTest;
29-
importorg.testng.annotations.BeforeTest;
28+
importorg.testng.annotations.AfterMethod;
29+
importorg.testng.annotations.BeforeMethod;
3030
importorg.testng.annotations.Test;
3131

3232
publicclassGrizzlyNoTransferEncodingTest {
@@ -37,7 +37,7 @@ public class GrizzlyNoTransferEncodingTest {
3737
// ------------------------------------------------------------------- Setup
3838

3939

40-
@BeforeTest
40+
@BeforeMethod
4141
publicvoidsetup()throwsException {
4242
server =newHttpServer();
4343
finalNetworkListenerlistener =
@@ -70,7 +70,7 @@ public void service(final Request request,
7070
// --------------------------------------------------------------- Tear Down
7171

7272

73-
@AfterTest
73+
@AfterMethod
7474
publicvoidtearDown() {
7575
server.shutdownNow();
7676
server =null;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp