diff --git a/CHANGES.md b/CHANGES.md index 9341431970433f76e616c56769455498ee829f4d..f5dd1d233b1a8fcaa9fba679fb37cf709f84e30f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,11 +10,11 @@ ## From 2.0 to 2.1 * AHC 2.1 targets Netty 4.1. -* `org.asynchttpclient.HttpResponseHeaders` was dropped in favor of `io.netty.handler.codec.http.HttpHeaders`. -* `org.asynchttpclient.cookie.Cookie` was dropped in favor of `io.netty.handler.codec.http.cookie.Cookie` as AHC's cookie parsers were contributed to Netty. +* `org.asynchttpclient.HttpResponseHeaders` was [dropped](https://github.com/AsyncHttpClient/async-http-client/commit/f4786f3ac7699f8f8664e7c7db0b7097585a0786) in favor of `io.netty.handler.codec.http.HttpHeaders`. +* `org.asynchttpclient.cookie.Cookie` was [dropped](https://github.com/AsyncHttpClient/async-http-client/commit/a6d659ea0cc11fa5131304d8a04a7ba89c7a66af) in favor of `io.netty.handler.codec.http.cookie.Cookie` as AHC's cookie parsers were contributed to Netty. * AHC now has a RFC6265 `CookieStore` that is enabled by default. Implementation can be changed in `AsyncHttpClientConfig`. * `AsyncHttpClient` now exposes stats with `getClientStats`. -* `AsyncHandlerExtensions` was dropped in favor of default methods in `AsyncHandler`. +* `AsyncHandlerExtensions` was [dropped](https://github.com/AsyncHttpClient/async-http-client/commit/1972c9b9984d6d9f9faca6edd4f2159013205aea) in favor of default methods in `AsyncHandler`. * `WebSocket` and `WebSocketListener` methods were renamed to mention frames * `AsyncHttpClientConfig` various changes: * new `getCookieStore` now lets you configure a CookieStore (enabled by default) diff --git a/README.md b/README.md index 15f053b0b83579e054396e5c00395a7df5535f0b..4d456449965fce77d55bc1f901e98c0bc4e26832 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ This part can be of type: #### Blocking on the Future -`execute` methods return a `java.util.concurrent.Future`. You can simply both the calling thread to get the response. +`execute` methods return a `java.util.concurrent.Future`. You can simply block the calling thread to get the response. ```java Future<Response> whenResponse = asyncHttpClient.prepareGet("http://www.example.com/").execute(); diff --git a/client/pom.xml b/client/pom.xml index 0c1d7dcd7c308a99d8934f73479b01c9f820e0db..17c4b9b582b76d9d4aae3d10935d7a1d1e1bf30f 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -2,7 +2,7 @@ <parent> <groupId>org.asynchttpclient</groupId> <artifactId>async-http-client-project</artifactId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>async-http-client</artifactId> diff --git a/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClient.java b/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClient.java index aa9138dc21d2a2b6c96ad63da5b6e5a2a8400255..8d2c3f7ab10fb7ec9cde6e760870643bcd4a2216 100644 --- a/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClient.java +++ b/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClient.java @@ -92,7 +92,8 @@ public class DefaultAsyncHttpClient implements AsyncHttpClient { } private Timer newNettyTimer(AsyncHttpClientConfig config) { - ThreadFactory threadFactory = new DefaultThreadFactory(config.getThreadPoolName() + "-timer"); + ThreadFactory threadFactory = config.getThreadFactory() != null ? config.getThreadFactory() : new DefaultThreadFactory(config.getThreadPoolName() + "-timer"); + HashedWheelTimer timer = new HashedWheelTimer(threadFactory); timer.start(); return timer; diff --git a/client/src/main/java/org/asynchttpclient/HttpResponseStatus.java b/client/src/main/java/org/asynchttpclient/HttpResponseStatus.java index 75c94b855fa29a128c9cf9c01dcbb306e1b9dca2..7cdd41465545c8a2fbde8bc9d51ff4193fdecfd0 100644 --- a/client/src/main/java/org/asynchttpclient/HttpResponseStatus.java +++ b/client/src/main/java/org/asynchttpclient/HttpResponseStatus.java @@ -36,7 +36,7 @@ public abstract class HttpResponseStatus { * * @return the request {@link Uri} */ - public final Uri getUri() { + public Uri getUri() { return uri; } diff --git a/client/src/main/java/org/asynchttpclient/netty/channel/NettyConnectListener.java b/client/src/main/java/org/asynchttpclient/netty/channel/NettyConnectListener.java index 9c3c8901886575e823c31c8c6dff73fa92bbe10a..76bd652a44dd286cf6eb98633ca7af6e86cc56ef 100755 --- a/client/src/main/java/org/asynchttpclient/netty/channel/NettyConnectListener.java +++ b/client/src/main/java/org/asynchttpclient/netty/channel/NettyConnectListener.java @@ -175,9 +175,8 @@ public final class NettyConnectListener<T> { LOGGER.debug("Failed to recover from connect exception: {} with channel {}", cause, channel); - boolean printCause = cause.getMessage() != null; - String printedCause = printCause ? cause.getMessage() : future.getUri().getBaseUrl(); - ConnectException e = new ConnectException(printedCause); + String message = cause.getMessage() != null ? cause.getMessage() : future.getUri().getBaseUrl(); + ConnectException e = new ConnectException(message); e.initCause(cause); future.abort(e); } diff --git a/client/src/test/java/org/asynchttpclient/handler/resumable/ResumableAsyncHandlerTest.java b/client/src/test/java/org/asynchttpclient/handler/resumable/ResumableAsyncHandlerTest.java index 4fd77666ab864c775e00685f68879ec510a19f40..a46a424e38db8ae6501cf002c11d28886d9733f6 100644 --- a/client/src/test/java/org/asynchttpclient/handler/resumable/ResumableAsyncHandlerTest.java +++ b/client/src/test/java/org/asynchttpclient/handler/resumable/ResumableAsyncHandlerTest.java @@ -17,9 +17,6 @@ import io.netty.handler.codec.http.HttpHeaders; import org.asynchttpclient.*; import org.asynchttpclient.AsyncHandler.State; import org.asynchttpclient.uri.Uri; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.testng.PowerMockTestCase; import org.testng.annotations.Test; import java.io.IOException; @@ -28,19 +25,14 @@ import java.nio.ByteBuffer; import static io.netty.handler.codec.http.HttpHeaderNames.CONTENT_LENGTH; import static io.netty.handler.codec.http.HttpHeaderNames.RANGE; import static org.asynchttpclient.Dsl.get; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.powermock.api.mockito.PowerMockito.mock; +import static org.mockito.Mockito.*; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNull; /** * @author Benjamin Hanzelmann */ -@PrepareForTest({HttpResponseStatus.class, State.class}) -public class ResumableAsyncHandlerTest extends PowerMockTestCase { +public class ResumableAsyncHandlerTest { @Test public void testAdjustRange() { MapResumableProcessor proc = new MapResumableProcessor(); @@ -89,14 +81,13 @@ public class ResumableAsyncHandlerTest extends PowerMockTestCase { @SuppressWarnings("unchecked") AsyncHandler<Response> decoratedAsyncHandler = mock(AsyncHandler.class); - State mockState = mock(State.class); - when(decoratedAsyncHandler.onStatusReceived(mockResponseStatus)).thenReturn(mockState); + when(decoratedAsyncHandler.onStatusReceived(mockResponseStatus)).thenReturn(State.CONTINUE); ResumableAsyncHandler handler = new ResumableAsyncHandler(decoratedAsyncHandler); State state = handler.onStatusReceived(mockResponseStatus); verify(decoratedAsyncHandler).onStatusReceived(mockResponseStatus); - assertEquals(state, mockState, "State returned should be equal to the one returned from decoratedAsyncHandler"); + assertEquals(state, State.CONTINUE, "State returned should be equal to the one returned from decoratedAsyncHandler"); } @Test @@ -113,7 +104,7 @@ public class ResumableAsyncHandlerTest extends PowerMockTestCase { @Test public void testOnBodyPartReceived() throws Exception { ResumableAsyncHandler handler = new ResumableAsyncHandler(); - HttpResponseBodyPart bodyPart = PowerMockito.mock(HttpResponseBodyPart.class); + HttpResponseBodyPart bodyPart = mock(HttpResponseBodyPart.class); when(bodyPart.getBodyPartBytes()).thenReturn(new byte[0]); ByteBuffer buffer = ByteBuffer.allocate(0); when(bodyPart.getBodyByteBuffer()).thenReturn(buffer); @@ -125,11 +116,11 @@ public class ResumableAsyncHandlerTest extends PowerMockTestCase { public void testOnBodyPartReceivedWithResumableListenerThrowsException() throws Exception { ResumableAsyncHandler handler = new ResumableAsyncHandler(); - ResumableListener resumableListener = PowerMockito.mock(ResumableListener.class); - doThrow(new IOException()).when(resumableListener).onBytesReceived(anyObject()); + ResumableListener resumableListener = mock(ResumableListener.class); + doThrow(new IOException()).when(resumableListener).onBytesReceived(any()); handler.setResumableListener(resumableListener); - HttpResponseBodyPart bodyPart = PowerMockito.mock(HttpResponseBodyPart.class); + HttpResponseBodyPart bodyPart = mock(HttpResponseBodyPart.class); State state = handler.onBodyPartReceived(bodyPart); assertEquals(state, AsyncHandler.State.ABORT, "State should be ABORT if the resumableListener threw an exception in onBodyPartReceived"); @@ -137,28 +128,26 @@ public class ResumableAsyncHandlerTest extends PowerMockTestCase { @Test public void testOnBodyPartReceivedWithDecoratedAsyncHandler() throws Exception { - HttpResponseBodyPart bodyPart = PowerMockito.mock(HttpResponseBodyPart.class); + HttpResponseBodyPart bodyPart = mock(HttpResponseBodyPart.class); when(bodyPart.getBodyPartBytes()).thenReturn(new byte[0]); ByteBuffer buffer = ByteBuffer.allocate(0); when(bodyPart.getBodyByteBuffer()).thenReturn(buffer); @SuppressWarnings("unchecked") AsyncHandler<Response> decoratedAsyncHandler = mock(AsyncHandler.class); - State mockState = mock(State.class); - when(decoratedAsyncHandler.onBodyPartReceived(bodyPart)).thenReturn(mockState); + when(decoratedAsyncHandler.onBodyPartReceived(bodyPart)).thenReturn(State.CONTINUE); // following is needed to set the url variable HttpResponseStatus mockResponseStatus = mock(HttpResponseStatus.class); when(mockResponseStatus.getStatusCode()).thenReturn(200); - Uri mockUri = mock(Uri.class); - when(mockUri.toUrl()).thenReturn("http://non.null"); - when(mockResponseStatus.getUri()).thenReturn(mockUri); + Uri uri = Uri.create("http://non.null"); + when(mockResponseStatus.getUri()).thenReturn(uri); ResumableAsyncHandler handler = new ResumableAsyncHandler(decoratedAsyncHandler); handler.onStatusReceived(mockResponseStatus); State state = handler.onBodyPartReceived(bodyPart); - assertEquals(state, mockState, "State should be equal to the state returned from decoratedAsyncHandler"); + assertEquals(state, State.CONTINUE, "State should be equal to the state returned from decoratedAsyncHandler"); } @@ -176,12 +165,11 @@ public class ResumableAsyncHandlerTest extends PowerMockTestCase { @SuppressWarnings("unchecked") AsyncHandler<Response> decoratedAsyncHandler = mock(AsyncHandler.class); - State mockState = mock(State.class); - when(decoratedAsyncHandler.onHeadersReceived(responseHeaders)).thenReturn(mockState); + when(decoratedAsyncHandler.onHeadersReceived(responseHeaders)).thenReturn(State.CONTINUE); ResumableAsyncHandler handler = new ResumableAsyncHandler(decoratedAsyncHandler); State status = handler.onHeadersReceived(responseHeaders); - assertEquals(status, mockState, "State should be equal to the state returned from decoratedAsyncHandler"); + assertEquals(status, State.CONTINUE, "State should be equal to the state returned from decoratedAsyncHandler"); } @Test diff --git a/client/src/test/java/org/asynchttpclient/handler/resumable/ResumableRandomAccessFileListenerTest.java b/client/src/test/java/org/asynchttpclient/handler/resumable/ResumableRandomAccessFileListenerTest.java index cb0ebec2848cc4d76e0def3c986ea63bc2cb39d7..e7f509a0728e1ce1bf8d07ad8cbccdabcb66ad46 100644 --- a/client/src/test/java/org/asynchttpclient/handler/resumable/ResumableRandomAccessFileListenerTest.java +++ b/client/src/test/java/org/asynchttpclient/handler/resumable/ResumableRandomAccessFileListenerTest.java @@ -13,20 +13,19 @@ */ package org.asynchttpclient.handler.resumable; -import org.powermock.api.mockito.PowerMockito; import org.testng.annotations.Test; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; -import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.*; public class ResumableRandomAccessFileListenerTest { @Test public void testOnBytesReceivedBufferHasArray() throws IOException { - RandomAccessFile file = PowerMockito.mock(RandomAccessFile.class); + RandomAccessFile file = mock(RandomAccessFile.class); ResumableRandomAccessFileListener listener = new ResumableRandomAccessFileListener(file); byte[] array = new byte[]{1, 2, 23, 33}; ByteBuffer buf = ByteBuffer.wrap(array); @@ -36,7 +35,7 @@ public class ResumableRandomAccessFileListenerTest { @Test public void testOnBytesReceivedBufferHasNoArray() throws IOException { - RandomAccessFile file = PowerMockito.mock(RandomAccessFile.class); + RandomAccessFile file = mock(RandomAccessFile.class); ResumableRandomAccessFileListener listener = new ResumableRandomAccessFileListener(file); byte[] byteArray = new byte[]{1, 2, 23, 33}; diff --git a/example/pom.xml b/example/pom.xml index f3db1d5df765fd65fcaa1a885b580fe241c1643b..f669720a7d68f24e15d34b624ef244bad0c8118f 100644 --- a/example/pom.xml +++ b/example/pom.xml @@ -2,7 +2,7 @@ <parent> <groupId>org.asynchttpclient</groupId> <artifactId>async-http-client-project</artifactId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>async-http-client-example</artifactId> diff --git a/extras/guava/pom.xml b/extras/guava/pom.xml index e0c2db6be512e59c3104b1c4f9c7becc4c49e85c..f9b1a22b73d72aba5d067ffc772d7ee693c25ded 100644 --- a/extras/guava/pom.xml +++ b/extras/guava/pom.xml @@ -2,7 +2,7 @@ <parent> <groupId>org.asynchttpclient</groupId> <artifactId>async-http-client-extras-parent</artifactId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>async-http-client-extras-guava</artifactId> diff --git a/extras/jdeferred/pom.xml b/extras/jdeferred/pom.xml index 0e15be7d8f7fa7c9095950a4516199a1667decd3..2e0b1b540016bfa9fa7045eec4ab86fbe966b000 100644 --- a/extras/jdeferred/pom.xml +++ b/extras/jdeferred/pom.xml @@ -18,7 +18,7 @@ <parent> <artifactId>async-http-client-extras-parent</artifactId> <groupId>org.asynchttpclient</groupId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <artifactId>async-http-client-extras-jdeferred</artifactId> <name>Asynchronous Http Client JDeferred Extras</name> diff --git a/extras/pom.xml b/extras/pom.xml index 71b876c6b7ab9b3bbcf12d04d484c822117b7434..f87b0f67d7c2fcc45794dea8c1ebdb2febb12a66 100644 --- a/extras/pom.xml +++ b/extras/pom.xml @@ -2,7 +2,7 @@ <parent> <groupId>org.asynchttpclient</groupId> <artifactId>async-http-client-project</artifactId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>async-http-client-extras-parent</artifactId> diff --git a/extras/registry/pom.xml b/extras/registry/pom.xml index 7d74bfa1738711dae46285d4763d4eca1b797da0..7d6d4944f75325bab82b0ecffd4a3dbb7635ffc4 100644 --- a/extras/registry/pom.xml +++ b/extras/registry/pom.xml @@ -2,7 +2,7 @@ <parent> <groupId>org.asynchttpclient</groupId> <artifactId>async-http-client-extras-parent</artifactId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>async-http-client-extras-registry</artifactId> diff --git a/extras/retrofit2/pom.xml b/extras/retrofit2/pom.xml index 1bcec496bfe4fd839c3f1bebfab5d6ae18045e78..5a66cf2f3120ff70cf96e7ab7caefbf895340bd2 100644 --- a/extras/retrofit2/pom.xml +++ b/extras/retrofit2/pom.xml @@ -4,7 +4,7 @@ <parent> <artifactId>async-http-client-extras-parent</artifactId> <groupId>org.asynchttpclient</groupId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <artifactId>async-http-client-extras-retrofit2</artifactId> @@ -12,8 +12,8 @@ <description>The Async Http Client Retrofit2 Extras.</description> <properties> - <retrofit2.version>2.3.0</retrofit2.version> - <lombok.version>1.16.18</lombok.version> + <retrofit2.version>2.4.0</retrofit2.version> + <lombok.version>1.16.20</lombok.version> </properties> <dependencies> diff --git a/extras/retrofit2/src/test/java/org/asynchttpclient/extras/retrofit/AsyncHttpClientCallTest.java b/extras/retrofit2/src/test/java/org/asynchttpclient/extras/retrofit/AsyncHttpClientCallTest.java index 68ef94624cdc13b17457a229e19fa6cf050fb9f9..90ab4b33e50c37e79a5dc71de84fc265580c7485 100644 --- a/extras/retrofit2/src/test/java/org/asynchttpclient/extras/retrofit/AsyncHttpClientCallTest.java +++ b/extras/retrofit2/src/test/java/org/asynchttpclient/extras/retrofit/AsyncHttpClientCallTest.java @@ -86,7 +86,7 @@ public class AsyncHttpClientCallTest { when(httpClient.executeRequest((org.asynchttpclient.Request) any(), any())).then(invocationOnMock -> { @SuppressWarnings("rawtypes") - val handler = invocationOnMock.getArgumentAt(1, AsyncCompletionHandler.class); + AsyncCompletionHandler<?> handler = invocationOnMock.getArgument(1); handlerConsumer.accept(handler); return null; }); @@ -283,7 +283,7 @@ public class AsyncHttpClientCallTest { private void givenResponseIsProduced(AsyncHttpClient client, Response response) { when(client.executeRequest(any(org.asynchttpclient.Request.class), any())).thenAnswer(invocation -> { - AsyncCompletionHandler<Response> handler = invocation.getArgumentAt(1, AsyncCompletionHandler.class); + AsyncCompletionHandler<Response> handler = invocation.getArgument(1); handler.onCompleted(response); return null; }); diff --git a/extras/retrofit2/src/test/java/org/asynchttpclient/extras/retrofit/TestServices.java b/extras/retrofit2/src/test/java/org/asynchttpclient/extras/retrofit/TestServices.java index 5688488a1b1d56c99050fd40aef482d82ea2c2b6..cb8872acb6146d689df9ef8666a0db7748700cd8 100644 --- a/extras/retrofit2/src/test/java/org/asynchttpclient/extras/retrofit/TestServices.java +++ b/extras/retrofit2/src/test/java/org/asynchttpclient/extras/retrofit/TestServices.java @@ -13,8 +13,7 @@ package org.asynchttpclient.extras.retrofit; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import lombok.NonNull; -import lombok.Value; +import lombok.*; import retrofit2.Call; import retrofit2.http.GET; import retrofit2.http.Path; @@ -51,7 +50,9 @@ class TestServices { io.reactivex.Single<List<Contributor>> contributors(@Path("owner") String owner, @Path("repo") String repo); } - @Value + @Data + @NoArgsConstructor + @AllArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) static class Contributor implements Serializable { private static final long serialVersionUID = 1; diff --git a/extras/rxjava/pom.xml b/extras/rxjava/pom.xml index 60cc530f6a20919bc50dfc5a2bbf587d0c9e093b..645866d964bfbbbb6f12215add292afa2b4e9581 100644 --- a/extras/rxjava/pom.xml +++ b/extras/rxjava/pom.xml @@ -3,7 +3,7 @@ <parent> <artifactId>async-http-client-extras-parent</artifactId> <groupId>org.asynchttpclient</groupId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <artifactId>async-http-client-extras-rxjava</artifactId> <name>Asynchronous Http Client RxJava Extras</name> diff --git a/extras/rxjava/src/test/java/org/asynchttpclient/extras/rxjava/single/AsyncHttpSingleTest.java b/extras/rxjava/src/test/java/org/asynchttpclient/extras/rxjava/single/AsyncHttpSingleTest.java index 90b2446b797b2731209f8f2f19f78c5c30e8ac7a..018da8044c7bacc053a3eb01c61b8e82c692bf74 100644 --- a/extras/rxjava/src/test/java/org/asynchttpclient/extras/rxjava/single/AsyncHttpSingleTest.java +++ b/extras/rxjava/src/test/java/org/asynchttpclient/extras/rxjava/single/AsyncHttpSingleTest.java @@ -31,17 +31,7 @@ import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.isA; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.inOrder; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; -import static org.mockito.Mockito.verifyZeroInteractions; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; import static org.testng.Assert.assertEquals; public class AsyncHttpSingleTest { diff --git a/extras/rxjava2/pom.xml b/extras/rxjava2/pom.xml index 958497e86a032d824167acdbd5210805b0e1e0a0..edfd268b44fba0b4380679070cfc5a054913105c 100644 --- a/extras/rxjava2/pom.xml +++ b/extras/rxjava2/pom.xml @@ -3,7 +3,7 @@ <parent> <artifactId>async-http-client-extras-parent</artifactId> <groupId>org.asynchttpclient</groupId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <artifactId>async-http-client-extras-rxjava2</artifactId> <name>Asynchronous Http Client RxJava2 Extras</name> diff --git a/extras/simple/pom.xml b/extras/simple/pom.xml index 72c40a15afd34175c440050f010aaa3ee77973a1..b1250a8a73290a12296a766887f5d7c727f48cd6 100644 --- a/extras/simple/pom.xml +++ b/extras/simple/pom.xml @@ -3,7 +3,7 @@ <parent> <artifactId>async-http-client-extras-parent</artifactId> <groupId>org.asynchttpclient</groupId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <artifactId>async-http-client-extras-simple</artifactId> <name>Asynchronous Http Simple Client</name> diff --git a/extras/typesafeconfig/pom.xml b/extras/typesafeconfig/pom.xml index 3fe1e0ec644ec557530ecd8335c6e42ac5d6250b..dd0fb7766a865640b540f534b6447e807bca9089 100644 --- a/extras/typesafeconfig/pom.xml +++ b/extras/typesafeconfig/pom.xml @@ -4,7 +4,7 @@ <parent> <artifactId>async-http-client-extras-parent</artifactId> <groupId>org.asynchttpclient</groupId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <artifactId>async-http-client-extras-typesafe-config</artifactId> diff --git a/netty-utils/pom.xml b/netty-utils/pom.xml index 8ddae6d3d254e8b4143ad3229dfc559581c45402..753aaed2738185fab5c069ad573438f943114dfd 100644 --- a/netty-utils/pom.xml +++ b/netty-utils/pom.xml @@ -2,7 +2,7 @@ <parent> <groupId>org.asynchttpclient</groupId> <artifactId>async-http-client-project</artifactId> - <version>2.4.7</version> + <version>2.4.8</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>async-http-client-netty-utils</artifactId> diff --git a/pom.xml b/pom.xml index e375002065c59e930abedae282cdc55589a5a4f1..36a3dd5c7cb474b0ff7a8e7d87b265db3438f9eb 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ <groupId>org.asynchttpclient</groupId> <artifactId>async-http-client-project</artifactId> <name>Asynchronous Http Client Project</name> - <version>2.4.7</version> + <version>2.4.8</version> <packaging>pom</packaging> <description> The Async Http Client (AHC) library's purpose is to allow Java @@ -300,6 +300,11 @@ <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> + <dependency> + <groupId>com.sun.activation</groupId> + <artifactId>javax.activation</artifactId> + <version>${activation.version}</version> + </dependency> <!-- Test dependencies --> <dependency> <groupId>ch.qos.logback</groupId> @@ -380,16 +385,14 @@ <scope>test</scope> </dependency> <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-testng</artifactId> - <version>${powermock.version}</version> - <scope>test</scope> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>${mockito.version}</version> </dependency> <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - <version>${powermock.version}</version> - <scope>test</scope> + <groupId>org.hamcrest</groupId> + <artifactId>java-hamcrest</artifactId> + <version>${hamcrest.version}</version> </dependency> </dependencies> <properties> @@ -397,19 +400,21 @@ <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile> <source.property>1.8</source.property> <target.property>1.8</target.property> - <netty.version>4.1.24.Final</netty.version> + <netty.version>4.1.25.Final</netty.version> <slf4j.version>1.7.25</slf4j.version> <reactive-streams.version>1.0.2</reactive-streams.version> + <activation.version>1.2.0</activation.version> <netty-reactive-streams.version>2.0.0</netty-reactive-streams.version> - <rxjava.version>1.3.6</rxjava.version> - <rxjava2.version>2.1.13</rxjava2.version> + <rxjava.version>1.3.8</rxjava.version> + <rxjava2.version>2.1.14</rxjava2.version> <logback.version>1.2.3</logback.version> <testng.version>6.13.1</testng.version> - <jetty.version>9.4.9.v20180320</jetty.version> + <jetty.version>9.4.8.v20171121</jetty.version> <tomcat.version>9.0.7</tomcat.version> <commons-io.version>2.6</commons-io.version> <commons-fileupload.version>1.3.3</commons-fileupload.version> <privilegedaccessor.version>1.2.2</privilegedaccessor.version> - <powermock.version>1.6.6</powermock.version> + <mockito.version>2.18.3</mockito.version> + <hamcrest.version>2.0.0.0</hamcrest.version> </properties> </project>