From b0bf1476921a66cc499718e4b925f72317e0849a Mon Sep 17 00:00:00 2001 From: Aayush Atharva Date: Mon, 29 Jul 2024 11:13:02 +0530 Subject: [PATCH 1/6] Prepare to release v3.0.0 --- README.md | 4 ++-- client/pom.xml | 2 +- pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 111dc9643..783dbb6af 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Maven: org.asynchttpclient async-http-client - 3.0.0.Beta3 + 3.0.0 ``` @@ -28,7 +28,7 @@ Maven: Gradle: ```groovy dependencies { - implementation 'org.asynchttpclient:async-http-client:3.0.0.Beta3' + implementation 'org.asynchttpclient:async-http-client:3.0.0' } ``` diff --git a/client/pom.xml b/client/pom.xml index 774a046d2..f5c232f9c 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -19,7 +19,7 @@ org.asynchttpclient async-http-client-project - 3.0.0.Beta3 + 3.0.0 4.0.0 diff --git a/pom.xml b/pom.xml index 95f9e7621..5555e6483 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ org.asynchttpclient async-http-client-project - 3.0.0.Beta3 + 3.0.0 pom AHC/Project From 12d756b83895a1fcf3468114947ff17dbe257081 Mon Sep 17 00:00:00 2001 From: Aayush Atharva Date: Mon, 29 Jul 2024 11:29:00 +0530 Subject: [PATCH 2/6] Remove Developers list from `pom.xml` --- pom.xml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/pom.xml b/pom.xml index 5555e6483..7438a41b7 100644 --- a/pom.xml +++ b/pom.xml @@ -39,19 +39,6 @@ - - - slandelle - Stephane Landelle - slandelle@gatling.io - - - hyperxpro - Aayush Atharva - aayush@shieldblaze.com - - - 11 11 From 8332ade139b5ae97f687993b4d2684a9fe152dbf Mon Sep 17 00:00:00 2001 From: Aayush Atharva Date: Mon, 29 Jul 2024 11:36:41 +0530 Subject: [PATCH 3/6] Update Copyright year --- LICENSE.txt | 2 +- .../src/main/java/org/asynchttpclient/BoundRequestBuilder.java | 2 +- client/src/main/java/org/asynchttpclient/ClientStats.java | 2 +- client/src/main/java/org/asynchttpclient/HostStats.java | 2 +- client/src/main/java/org/asynchttpclient/Param.java | 2 +- client/src/main/java/org/asynchttpclient/SslEngineFactory.java | 2 +- .../src/main/java/org/asynchttpclient/channel/ChannelPool.java | 2 +- .../org/asynchttpclient/channel/ChannelPoolPartitioning.java | 2 +- .../java/org/asynchttpclient/channel/KeepAliveStrategy.java | 2 +- .../main/java/org/asynchttpclient/channel/NoopChannelPool.java | 2 +- .../asynchttpclient/config/AsyncHttpClientConfigDefaults.java | 2 +- .../java/org/asynchttpclient/handler/MaxRedirectException.java | 2 +- .../src/main/java/org/asynchttpclient/netty/DiscardEvent.java | 2 +- .../java/org/asynchttpclient/netty/EagerResponseBodyPart.java | 2 +- .../java/org/asynchttpclient/netty/LazyResponseBodyPart.java | 2 +- .../src/main/java/org/asynchttpclient/netty/NettyResponse.java | 2 +- .../java/org/asynchttpclient/netty/NettyResponseFuture.java | 2 +- .../java/org/asynchttpclient/netty/NettyResponseStatus.java | 2 +- .../org/asynchttpclient/netty/OnLastHttpContentCallback.java | 2 +- .../java/org/asynchttpclient/netty/channel/ChannelManager.java | 2 +- .../main/java/org/asynchttpclient/netty/channel/Channels.java | 2 +- .../org/asynchttpclient/netty/channel/DefaultChannelPool.java | 2 +- .../org/asynchttpclient/netty/channel/NettyConnectListener.java | 2 +- .../org/asynchttpclient/netty/future/StackTraceInspector.java | 2 +- .../asynchttpclient/netty/handler/AsyncHttpClientHandler.java | 2 +- .../java/org/asynchttpclient/netty/handler/HttpHandler.java | 2 +- .../org/asynchttpclient/netty/handler/WebSocketHandler.java | 2 +- .../java/org/asynchttpclient/netty/request/NettyRequest.java | 2 +- .../org/asynchttpclient/netty/request/NettyRequestFactory.java | 2 +- .../org/asynchttpclient/netty/request/NettyRequestSender.java | 2 +- .../asynchttpclient/netty/request/WriteProgressListener.java | 2 +- .../asynchttpclient/netty/request/body/BodyChunkedInput.java | 2 +- .../org/asynchttpclient/netty/request/body/BodyFileRegion.java | 2 +- .../java/org/asynchttpclient/netty/request/body/NettyBody.java | 2 +- .../org/asynchttpclient/netty/request/body/NettyBodyBody.java | 2 +- .../asynchttpclient/netty/request/body/NettyByteArrayBody.java | 2 +- .../netty/request/body/NettyCompositeByteArrayBody.java | 2 +- .../org/asynchttpclient/netty/request/body/NettyDirectBody.java | 2 +- .../org/asynchttpclient/netty/request/body/NettyFileBody.java | 2 +- .../netty/request/body/NettyInputStreamBody.java | 2 +- .../asynchttpclient/netty/request/body/NettyMultipartBody.java | 2 +- .../org/asynchttpclient/netty/timeout/ReadTimeoutTimerTask.java | 2 +- .../asynchttpclient/netty/timeout/RequestTimeoutTimerTask.java | 2 +- .../org/asynchttpclient/netty/timeout/TimeoutTimerTask.java | 2 +- .../java/org/asynchttpclient/netty/timeout/TimeoutsHolder.java | 2 +- .../main/java/org/asynchttpclient/netty/ws/NettyWebSocket.java | 2 +- .../request/body/generator/FeedableBodyGenerator.java | 2 +- .../body/generator/UnboundedQueueFeedableBodyGenerator.java | 2 +- .../asynchttpclient/request/body/multipart/ByteArrayPart.java | 2 +- .../asynchttpclient/request/body/multipart/FileLikePart.java | 2 +- .../org/asynchttpclient/request/body/multipart/FilePart.java | 2 +- .../java/org/asynchttpclient/request/body/multipart/Part.java | 2 +- .../org/asynchttpclient/request/body/multipart/PartBase.java | 2 +- .../org/asynchttpclient/request/body/multipart/StringPart.java | 2 +- .../request/body/multipart/part/PartVisitor.java | 2 +- client/src/main/java/org/asynchttpclient/uri/Uri.java | 2 +- client/src/main/java/org/asynchttpclient/uri/UriParser.java | 2 +- client/src/main/java/org/asynchttpclient/util/StringUtils.java | 2 +- client/src/main/java/org/asynchttpclient/util/UriEncoder.java | 2 +- client/src/main/java/org/asynchttpclient/ws/WebSocketUtils.java | 2 +- client/src/test/java/org/asynchttpclient/ClientStatsTest.java | 2 +- client/src/test/java/org/asynchttpclient/ntlm/NtlmTest.java | 2 +- .../request/body/generator/FeedableBodyGeneratorTest.java | 2 +- .../java/org/asynchttpclient/test/EventCollectingHandler.java | 2 +- client/src/test/java/org/asynchttpclient/uri/UriTest.java | 2 +- .../test/java/org/asynchttpclient/ws/ProxyTunnellingTest.java | 2 +- 66 files changed, 66 insertions(+), 66 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index d8e4ed073..85a16d3d0 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ - Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/BoundRequestBuilder.java b/client/src/main/java/org/asynchttpclient/BoundRequestBuilder.java index c2e2bce29..99b3cc5d0 100644 --- a/client/src/main/java/org/asynchttpclient/BoundRequestBuilder.java +++ b/client/src/main/java/org/asynchttpclient/BoundRequestBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/ClientStats.java b/client/src/main/java/org/asynchttpclient/ClientStats.java index 7d450ad96..eef529221 100644 --- a/client/src/main/java/org/asynchttpclient/ClientStats.java +++ b/client/src/main/java/org/asynchttpclient/ClientStats.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/HostStats.java b/client/src/main/java/org/asynchttpclient/HostStats.java index 9ec52805a..3470ea4e1 100644 --- a/client/src/main/java/org/asynchttpclient/HostStats.java +++ b/client/src/main/java/org/asynchttpclient/HostStats.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/Param.java b/client/src/main/java/org/asynchttpclient/Param.java index cbc35e196..4f7a5530a 100644 --- a/client/src/main/java/org/asynchttpclient/Param.java +++ b/client/src/main/java/org/asynchttpclient/Param.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/SslEngineFactory.java b/client/src/main/java/org/asynchttpclient/SslEngineFactory.java index d007106f7..15ec9748e 100644 --- a/client/src/main/java/org/asynchttpclient/SslEngineFactory.java +++ b/client/src/main/java/org/asynchttpclient/SslEngineFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/channel/ChannelPool.java b/client/src/main/java/org/asynchttpclient/channel/ChannelPool.java index de30cc576..4f2bc3b9b 100755 --- a/client/src/main/java/org/asynchttpclient/channel/ChannelPool.java +++ b/client/src/main/java/org/asynchttpclient/channel/ChannelPool.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/channel/ChannelPoolPartitioning.java b/client/src/main/java/org/asynchttpclient/channel/ChannelPoolPartitioning.java index fd9a51b23..324a4ce34 100644 --- a/client/src/main/java/org/asynchttpclient/channel/ChannelPoolPartitioning.java +++ b/client/src/main/java/org/asynchttpclient/channel/ChannelPoolPartitioning.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/channel/KeepAliveStrategy.java b/client/src/main/java/org/asynchttpclient/channel/KeepAliveStrategy.java index 106799ddb..e72cc8c13 100644 --- a/client/src/main/java/org/asynchttpclient/channel/KeepAliveStrategy.java +++ b/client/src/main/java/org/asynchttpclient/channel/KeepAliveStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/channel/NoopChannelPool.java b/client/src/main/java/org/asynchttpclient/channel/NoopChannelPool.java index 5a7a8ca54..ae3aab81a 100644 --- a/client/src/main/java/org/asynchttpclient/channel/NoopChannelPool.java +++ b/client/src/main/java/org/asynchttpclient/channel/NoopChannelPool.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java index 3d4cb6106..3596c67a9 100644 --- a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java +++ b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/handler/MaxRedirectException.java b/client/src/main/java/org/asynchttpclient/handler/MaxRedirectException.java index cf09bc742..993f87d93 100644 --- a/client/src/main/java/org/asynchttpclient/handler/MaxRedirectException.java +++ b/client/src/main/java/org/asynchttpclient/handler/MaxRedirectException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/DiscardEvent.java b/client/src/main/java/org/asynchttpclient/netty/DiscardEvent.java index b8ca2bd55..798312257 100644 --- a/client/src/main/java/org/asynchttpclient/netty/DiscardEvent.java +++ b/client/src/main/java/org/asynchttpclient/netty/DiscardEvent.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/EagerResponseBodyPart.java b/client/src/main/java/org/asynchttpclient/netty/EagerResponseBodyPart.java index e29bc93c9..8247379b0 100755 --- a/client/src/main/java/org/asynchttpclient/netty/EagerResponseBodyPart.java +++ b/client/src/main/java/org/asynchttpclient/netty/EagerResponseBodyPart.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/LazyResponseBodyPart.java b/client/src/main/java/org/asynchttpclient/netty/LazyResponseBodyPart.java index 59f08dd52..e47277006 100755 --- a/client/src/main/java/org/asynchttpclient/netty/LazyResponseBodyPart.java +++ b/client/src/main/java/org/asynchttpclient/netty/LazyResponseBodyPart.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/NettyResponse.java b/client/src/main/java/org/asynchttpclient/netty/NettyResponse.java index 6c9b48649..61fb15161 100755 --- a/client/src/main/java/org/asynchttpclient/netty/NettyResponse.java +++ b/client/src/main/java/org/asynchttpclient/netty/NettyResponse.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/NettyResponseFuture.java b/client/src/main/java/org/asynchttpclient/netty/NettyResponseFuture.java index f66c9b9d7..c5e4a97d0 100755 --- a/client/src/main/java/org/asynchttpclient/netty/NettyResponseFuture.java +++ b/client/src/main/java/org/asynchttpclient/netty/NettyResponseFuture.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/NettyResponseStatus.java b/client/src/main/java/org/asynchttpclient/netty/NettyResponseStatus.java index 49af6b160..567432af3 100755 --- a/client/src/main/java/org/asynchttpclient/netty/NettyResponseStatus.java +++ b/client/src/main/java/org/asynchttpclient/netty/NettyResponseStatus.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/OnLastHttpContentCallback.java b/client/src/main/java/org/asynchttpclient/netty/OnLastHttpContentCallback.java index e72a5c2be..15c0c9617 100644 --- a/client/src/main/java/org/asynchttpclient/netty/OnLastHttpContentCallback.java +++ b/client/src/main/java/org/asynchttpclient/netty/OnLastHttpContentCallback.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java b/client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java index fe85734c7..c5c94c551 100755 --- a/client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java +++ b/client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/channel/Channels.java b/client/src/main/java/org/asynchttpclient/netty/channel/Channels.java index e0d4acede..c56a05ba5 100755 --- a/client/src/main/java/org/asynchttpclient/netty/channel/Channels.java +++ b/client/src/main/java/org/asynchttpclient/netty/channel/Channels.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/channel/DefaultChannelPool.java b/client/src/main/java/org/asynchttpclient/netty/channel/DefaultChannelPool.java index 0ae2f68f7..c4042fdfc 100755 --- a/client/src/main/java/org/asynchttpclient/netty/channel/DefaultChannelPool.java +++ b/client/src/main/java/org/asynchttpclient/netty/channel/DefaultChannelPool.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. 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 86d48e451..719733f8a 100755 --- a/client/src/main/java/org/asynchttpclient/netty/channel/NettyConnectListener.java +++ b/client/src/main/java/org/asynchttpclient/netty/channel/NettyConnectListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/future/StackTraceInspector.java b/client/src/main/java/org/asynchttpclient/netty/future/StackTraceInspector.java index 919bd3cfa..28a0f359d 100755 --- a/client/src/main/java/org/asynchttpclient/netty/future/StackTraceInspector.java +++ b/client/src/main/java/org/asynchttpclient/netty/future/StackTraceInspector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/handler/AsyncHttpClientHandler.java b/client/src/main/java/org/asynchttpclient/netty/handler/AsyncHttpClientHandler.java index 71d48f408..aeecbef55 100755 --- a/client/src/main/java/org/asynchttpclient/netty/handler/AsyncHttpClientHandler.java +++ b/client/src/main/java/org/asynchttpclient/netty/handler/AsyncHttpClientHandler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/handler/HttpHandler.java b/client/src/main/java/org/asynchttpclient/netty/handler/HttpHandler.java index 5990cac42..06ec46a2b 100755 --- a/client/src/main/java/org/asynchttpclient/netty/handler/HttpHandler.java +++ b/client/src/main/java/org/asynchttpclient/netty/handler/HttpHandler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/handler/WebSocketHandler.java b/client/src/main/java/org/asynchttpclient/netty/handler/WebSocketHandler.java index 9d26c49b2..1cf19d0ef 100755 --- a/client/src/main/java/org/asynchttpclient/netty/handler/WebSocketHandler.java +++ b/client/src/main/java/org/asynchttpclient/netty/handler/WebSocketHandler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/NettyRequest.java b/client/src/main/java/org/asynchttpclient/netty/request/NettyRequest.java index 785ffad6a..71cc658a0 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/NettyRequest.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/NettyRequest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestFactory.java b/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestFactory.java index 48662636b..67d9a67be 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestFactory.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java b/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java index afde13643..9fff868b2 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/WriteProgressListener.java b/client/src/main/java/org/asynchttpclient/netty/request/WriteProgressListener.java index 4a6c330d0..98f669eae 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/WriteProgressListener.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/WriteProgressListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/BodyChunkedInput.java b/client/src/main/java/org/asynchttpclient/netty/request/body/BodyChunkedInput.java index cd0434146..772baca43 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/BodyChunkedInput.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/BodyChunkedInput.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/BodyFileRegion.java b/client/src/main/java/org/asynchttpclient/netty/request/body/BodyFileRegion.java index 9326d717d..91f2b1ecf 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/BodyFileRegion.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/BodyFileRegion.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyBody.java b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyBody.java index 2dce64353..f38ef3939 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyBody.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyBody.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyBodyBody.java b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyBodyBody.java index 610069a01..efe337bfe 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyBodyBody.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyBodyBody.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyByteArrayBody.java b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyByteArrayBody.java index 5714d1396..b794ab6e9 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyByteArrayBody.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyByteArrayBody.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyCompositeByteArrayBody.java b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyCompositeByteArrayBody.java index 74bd09c4f..e852528fd 100644 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyCompositeByteArrayBody.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyCompositeByteArrayBody.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyDirectBody.java b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyDirectBody.java index 7f8dc69f8..55dfcb8bc 100644 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyDirectBody.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyDirectBody.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyFileBody.java b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyFileBody.java index e83b7b8cd..a3c40322d 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyFileBody.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyFileBody.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyInputStreamBody.java b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyInputStreamBody.java index 0096cc772..4dba9d951 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyInputStreamBody.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyInputStreamBody.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyMultipartBody.java b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyMultipartBody.java index fe889e383..7fa23c07f 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/body/NettyMultipartBody.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/body/NettyMultipartBody.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/timeout/ReadTimeoutTimerTask.java b/client/src/main/java/org/asynchttpclient/netty/timeout/ReadTimeoutTimerTask.java index 213b539a9..8b0d4373a 100755 --- a/client/src/main/java/org/asynchttpclient/netty/timeout/ReadTimeoutTimerTask.java +++ b/client/src/main/java/org/asynchttpclient/netty/timeout/ReadTimeoutTimerTask.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/timeout/RequestTimeoutTimerTask.java b/client/src/main/java/org/asynchttpclient/netty/timeout/RequestTimeoutTimerTask.java index 5a72a6b70..74c5d0197 100755 --- a/client/src/main/java/org/asynchttpclient/netty/timeout/RequestTimeoutTimerTask.java +++ b/client/src/main/java/org/asynchttpclient/netty/timeout/RequestTimeoutTimerTask.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/timeout/TimeoutTimerTask.java b/client/src/main/java/org/asynchttpclient/netty/timeout/TimeoutTimerTask.java index 67b31c19b..3c9a3675e 100755 --- a/client/src/main/java/org/asynchttpclient/netty/timeout/TimeoutTimerTask.java +++ b/client/src/main/java/org/asynchttpclient/netty/timeout/TimeoutTimerTask.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/timeout/TimeoutsHolder.java b/client/src/main/java/org/asynchttpclient/netty/timeout/TimeoutsHolder.java index 6c2a55ff2..acce84b6d 100755 --- a/client/src/main/java/org/asynchttpclient/netty/timeout/TimeoutsHolder.java +++ b/client/src/main/java/org/asynchttpclient/netty/timeout/TimeoutsHolder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/netty/ws/NettyWebSocket.java b/client/src/main/java/org/asynchttpclient/netty/ws/NettyWebSocket.java index 35847dc78..2329edacf 100755 --- a/client/src/main/java/org/asynchttpclient/netty/ws/NettyWebSocket.java +++ b/client/src/main/java/org/asynchttpclient/netty/ws/NettyWebSocket.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/request/body/generator/FeedableBodyGenerator.java b/client/src/main/java/org/asynchttpclient/request/body/generator/FeedableBodyGenerator.java index dae8acef8..1aa27f0ac 100644 --- a/client/src/main/java/org/asynchttpclient/request/body/generator/FeedableBodyGenerator.java +++ b/client/src/main/java/org/asynchttpclient/request/body/generator/FeedableBodyGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/request/body/generator/UnboundedQueueFeedableBodyGenerator.java b/client/src/main/java/org/asynchttpclient/request/body/generator/UnboundedQueueFeedableBodyGenerator.java index bc72650a7..f55dcbe37 100755 --- a/client/src/main/java/org/asynchttpclient/request/body/generator/UnboundedQueueFeedableBodyGenerator.java +++ b/client/src/main/java/org/asynchttpclient/request/body/generator/UnboundedQueueFeedableBodyGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/request/body/multipart/ByteArrayPart.java b/client/src/main/java/org/asynchttpclient/request/body/multipart/ByteArrayPart.java index 97ed6cc61..203d37a2c 100644 --- a/client/src/main/java/org/asynchttpclient/request/body/multipart/ByteArrayPart.java +++ b/client/src/main/java/org/asynchttpclient/request/body/multipart/ByteArrayPart.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/request/body/multipart/FileLikePart.java b/client/src/main/java/org/asynchttpclient/request/body/multipart/FileLikePart.java index 3370eb761..1d03ad22b 100644 --- a/client/src/main/java/org/asynchttpclient/request/body/multipart/FileLikePart.java +++ b/client/src/main/java/org/asynchttpclient/request/body/multipart/FileLikePart.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/request/body/multipart/FilePart.java b/client/src/main/java/org/asynchttpclient/request/body/multipart/FilePart.java index 777489fd4..a156dd077 100644 --- a/client/src/main/java/org/asynchttpclient/request/body/multipart/FilePart.java +++ b/client/src/main/java/org/asynchttpclient/request/body/multipart/FilePart.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/request/body/multipart/Part.java b/client/src/main/java/org/asynchttpclient/request/body/multipart/Part.java index 9dae23f6a..19266eb25 100644 --- a/client/src/main/java/org/asynchttpclient/request/body/multipart/Part.java +++ b/client/src/main/java/org/asynchttpclient/request/body/multipart/Part.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/request/body/multipart/PartBase.java b/client/src/main/java/org/asynchttpclient/request/body/multipart/PartBase.java index 2dff615e4..65e78286f 100644 --- a/client/src/main/java/org/asynchttpclient/request/body/multipart/PartBase.java +++ b/client/src/main/java/org/asynchttpclient/request/body/multipart/PartBase.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/request/body/multipart/StringPart.java b/client/src/main/java/org/asynchttpclient/request/body/multipart/StringPart.java index 2427913ea..05c958d35 100644 --- a/client/src/main/java/org/asynchttpclient/request/body/multipart/StringPart.java +++ b/client/src/main/java/org/asynchttpclient/request/body/multipart/StringPart.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/request/body/multipart/part/PartVisitor.java b/client/src/main/java/org/asynchttpclient/request/body/multipart/part/PartVisitor.java index 4bddbd7e1..8e9029c4f 100644 --- a/client/src/main/java/org/asynchttpclient/request/body/multipart/part/PartVisitor.java +++ b/client/src/main/java/org/asynchttpclient/request/body/multipart/part/PartVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/uri/Uri.java b/client/src/main/java/org/asynchttpclient/uri/Uri.java index 1c76ff2ce..e1d53d1ca 100644 --- a/client/src/main/java/org/asynchttpclient/uri/Uri.java +++ b/client/src/main/java/org/asynchttpclient/uri/Uri.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/uri/UriParser.java b/client/src/main/java/org/asynchttpclient/uri/UriParser.java index 40c195630..c65f145dd 100644 --- a/client/src/main/java/org/asynchttpclient/uri/UriParser.java +++ b/client/src/main/java/org/asynchttpclient/uri/UriParser.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/util/StringUtils.java b/client/src/main/java/org/asynchttpclient/util/StringUtils.java index bccdd8dd2..0abf0b686 100644 --- a/client/src/main/java/org/asynchttpclient/util/StringUtils.java +++ b/client/src/main/java/org/asynchttpclient/util/StringUtils.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/util/UriEncoder.java b/client/src/main/java/org/asynchttpclient/util/UriEncoder.java index 126edee3d..92706d292 100644 --- a/client/src/main/java/org/asynchttpclient/util/UriEncoder.java +++ b/client/src/main/java/org/asynchttpclient/util/UriEncoder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/main/java/org/asynchttpclient/ws/WebSocketUtils.java b/client/src/main/java/org/asynchttpclient/ws/WebSocketUtils.java index 8e020ddac..628cc1d7d 100644 --- a/client/src/main/java/org/asynchttpclient/ws/WebSocketUtils.java +++ b/client/src/main/java/org/asynchttpclient/ws/WebSocketUtils.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/test/java/org/asynchttpclient/ClientStatsTest.java b/client/src/test/java/org/asynchttpclient/ClientStatsTest.java index bda1aa3a2..2d8d324de 100644 --- a/client/src/test/java/org/asynchttpclient/ClientStatsTest.java +++ b/client/src/test/java/org/asynchttpclient/ClientStatsTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/test/java/org/asynchttpclient/ntlm/NtlmTest.java b/client/src/test/java/org/asynchttpclient/ntlm/NtlmTest.java index 139274c84..0bce17d4c 100644 --- a/client/src/test/java/org/asynchttpclient/ntlm/NtlmTest.java +++ b/client/src/test/java/org/asynchttpclient/ntlm/NtlmTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/test/java/org/asynchttpclient/request/body/generator/FeedableBodyGeneratorTest.java b/client/src/test/java/org/asynchttpclient/request/body/generator/FeedableBodyGeneratorTest.java index 4c8d14693..7c2a3579b 100755 --- a/client/src/test/java/org/asynchttpclient/request/body/generator/FeedableBodyGeneratorTest.java +++ b/client/src/test/java/org/asynchttpclient/request/body/generator/FeedableBodyGeneratorTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/test/java/org/asynchttpclient/test/EventCollectingHandler.java b/client/src/test/java/org/asynchttpclient/test/EventCollectingHandler.java index 1ef8201f6..2568b7ae1 100644 --- a/client/src/test/java/org/asynchttpclient/test/EventCollectingHandler.java +++ b/client/src/test/java/org/asynchttpclient/test/EventCollectingHandler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/test/java/org/asynchttpclient/uri/UriTest.java b/client/src/test/java/org/asynchttpclient/uri/UriTest.java index 143008e15..f766854e1 100644 --- a/client/src/test/java/org/asynchttpclient/uri/UriTest.java +++ b/client/src/test/java/org/asynchttpclient/uri/UriTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/client/src/test/java/org/asynchttpclient/ws/ProxyTunnellingTest.java b/client/src/test/java/org/asynchttpclient/ws/ProxyTunnellingTest.java index a2177ae96..ce9cda3dc 100644 --- a/client/src/test/java/org/asynchttpclient/ws/ProxyTunnellingTest.java +++ b/client/src/test/java/org/asynchttpclient/ws/ProxyTunnellingTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2023 AsyncHttpClient Project. All rights reserved. + * Copyright (c) 2014-2024 AsyncHttpClient Project. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From 06c6cfc0dafb585d5c212c3f86426224e500f852 Mon Sep 17 00:00:00 2001 From: Aayush Atharva Date: Mon, 29 Jul 2024 11:43:12 +0530 Subject: [PATCH 4/6] Remove technical-overview.md --- docs/technical-overview.md | 368 ------------------------------------- 1 file changed, 368 deletions(-) delete mode 100644 docs/technical-overview.md diff --git a/docs/technical-overview.md b/docs/technical-overview.md deleted file mode 100644 index ad65ec1b9..000000000 --- a/docs/technical-overview.md +++ /dev/null @@ -1,368 +0,0 @@ -# [WIP] AsyncHttpClient Technical Overview - -#### Disclaimer - -This document is a work in progress. - -## Motivation - -While heavily used (~2.3M downloads across the project in December 2020 alone), AsyncHttpClient (or AHC) does not - at this point in time - have a single guiding document that -explains how it works internally. As a maintainer fresh on the scene it was unclear to me ([@TomGranot](https://github.com/TomGranot)) exactly how all the pieces fit together. - -As part of the attempt to educate myself, I figured it would be a good idea to write a technical overview of the project. This document provides an in-depth walkthtough of the -library, allowing new potential contributors to "hop on" the coding train as fast as possible. - -Note that this library *is not small*. I expect that in addition to offering a better understanding as to how each piece *works*, writing this document will also allow me to -understand which pieces *do not work* as well as expected, and direct me towards things that need a little bit of love. - -PRs are open for anyone who wants to help out. For now - let the fun begin. :) - -**Note: I wrote this guide while using AHC 2.12.2**. - -## The flow of a request - -### Introduction - -AHC is an *Asynchronous* HTTP Client. That means that it needs to have some underlying mechanism of dealing with response data that arrives **asynchronously**. To make that -part easier, the creator of the library ([@jfarcand](https://github.com/jfarcand)) built it on top of [Netty](https://netty.io/), which is ( -by [their own definition](https://netty.io/#content:~:text=Netty%20is%20a%20NIO%20client%20server,as%20TCP%20and%20UDP%20socket%20server.)) "a framework that enables quick and -easy development of network applications". - -This article is not a Netty user guide. If you're interested in all Netty has to offer, you should check out -the [official user guide](https://netty.io/wiki/user-guide-for-4.x.html). This article is, instead, more of a discussion of using Netty *in the wild* - an overview of what a -client library built on top of Netty actually looks like in practice. - -### The code in full - -The best way to explore what the client actually does is, of course, by following the path a request takes. - -Consider the following bit of -code, [taken verbatim from one of the simplest tests](https://github.com/AsyncHttpClient/async-http-client/blob/2b12d0ba819e05153fa265b4da7ca900651fd5b3/client/src/test/java/org/asynchttpclient/BasicHttpTest.java#L81-L91) -in the library: - -```java -@Test - public void getRootUrl() throws Throwable { - withClient().run(client -> - withServer(server).run(server -> { - String url = server.getHttpUrl(); - server.enqueueOk(); - - Response response = client.executeRequest(get(url), new AsyncCompletionHandlerAdapter()).get(TIMEOUT, SECONDS); - assertEquals(response.getUri().toUrl(), url); - })); - } -``` - -Let's take it bit by bit. - -First: - -```java -withClient().run(client -> - withServer(server).run(server -> { - String url = server.getHttpUrl(); - server.enqueueOk(); -``` - -These lines take care of spinning up a server to run the test against, and create an instance of `AsyncHttpClient` called `client`. If you were to drill deeper into the code, -you'd notice that the instantiation of `client` can be simplified to (converted from functional to procedural for the sake of the explanation): - -```java -DefaultAsyncHttpClientConfig config = new DefaultAsyncHttpClientConfig.Builder().build.()setMaxRedirects(0); -AsyncHttpClient client = new DefaultAsyncHttpClient(config); -``` - -Once the server and the client have been created, we can now run our test: - -```java -Response response = client.executeRequest(get(url), new AsyncCompletionHandlerAdapter()).get(TIMEOUT, SECONDS); -assertEquals(response.getUri().toUrl(), url); -``` - -The first line executes a `GET` request to the URL of the server that was previously spun up, while the second line is the assertion part of our test. Once the request is -completed, the final `Response` object is returned. - -The intersting bits, of course, happen between the lines - and the best way to start the discussion is by considering what happens under the hood when a new client is -instantiated. - -### Creating a new AsyncHTTPClient - Configuration - -AHC was designed to be *heavily configurable*. There are many, many different knobs you can turn and buttons you can press in order to get it to behave _just right_ -. [`DefaultAsyncHttpClientConfig`](https://github.com/AsyncHttpClient/async-http-client/blob/d4f1e5835b81a5e813033ba2a64a07b020c70007/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java) -is a utility class that pulls a set -of [hard-coded, sane defaults](https://github.com/AsyncHttpClient/async-http-client/blob/d4f1e5835b81a5e813033ba2a64a07b020c70007/client/src/main/resources/org/asynchttpclient/config/ahc-default.properties) -to prevent you from having to deal with these mundane configurations - please check it out if you have the time. - -A keen observer will note that the construction of a `DefaultAsyncHttpClient` is done using -the [Builder Pattern](https://dzone.com/articles/design-patterns-the-builder-pattern) - this is useful, since many times you want to change a few parameters in a -request (`followRedirect`, `requestTimeout`, etc... ) but still rely on the rest of the default configuration properties. The reason I'm mentioning this here is to prevent a -bit of busywork on your end the next time you want to create a client - it's much, much easier to work off of the default client and tweak properties than creating your own -set of configuration properties. - -The `setMaxRedicrects(0)` from the initialization code above is an example of doign this in practice. Having no redirects following the `GET` requeset is useful in the context -of the test, and so we turn a knob to ensure none do. - -### Creating a new AsyncHTTPClient - Client Instantiation - -Coming back to our example - once we've decided on a proper configuration, it's time to create a client. Let's look at the constructor of -the [`DefaultAsyncHttpClient`](https://github.com/AsyncHttpClient/async-http-client/blob/a44aac86616f4e8ffe6977dfef0f0aa460e79d07/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClient.java): - -```java - public DefaultAsyncHttpClient(AsyncHttpClientConfig config) { - - this.config = config; - this.noRequestFilters = config.getRequestFilters().isEmpty(); - allowStopNettyTimer = config.getNettyTimer() == null; - nettyTimer = allowStopNettyTimer ? newNettyTimer(config) : config.getNettyTimer(); - - channelManager = new ChannelManager(config, nettyTimer); - requestSender = new NettyRequestSender(config, channelManager, nettyTimer, new AsyncHttpClientState(closed)); - channelManager.configureBootstraps(requestSender); - - CookieStore cookieStore = config.getCookieStore(); - if (cookieStore != null) { - int cookieStoreCount = config.getCookieStore().incrementAndGet(); - if ( - allowStopNettyTimer // timer is not shared - || cookieStoreCount == 1 // this is the first AHC instance for the shared (user-provided) timer - ) { - nettyTimer.newTimeout(new CookieEvictionTask(config.expiredCookieEvictionDelay(), cookieStore), - config.expiredCookieEvictionDelay(), TimeUnit.MILLISECONDS); - } - } - } -``` - -The constructor actually reveals a lot of the moving parts of AHC, and is worth a proper walkthrough: - -#### `RequestFilters` - -```java - this.noRequestFilters = config.getRequestFilters().isEmpty(); -``` - -`RequestFilters` are a way to perform some form of computation **before sending a request to a server**. You can read more about request filters [here](#request-filters), but -a simple example is -the [ThrottleRequestFilter](https://github.com/AsyncHttpClient/async-http-client/blob/758dcf214bf0ec08142ba234a3967d98a3dc60ef/client/src/main/java/org/asynchttpclient/filter/ThrottleRequestFilter.java) -that throttles requests by waiting for a response to arrive before executing the next request in line. - -Note that there is another set of filters, `ResponseFilters`, that can perform computations **before processing the first byte of the response**. You can read more about -them [here](#response-filters). - -#### `NettyTimer` - -```java -allowStopNettyTimer = config.getNettyTimer() == null; -nettyTimer = allowStopNettyTimer ? newNettyTimer(config) : config.getNettyTimer(); -``` - -`NettyTimer` is actually not a timer, but a *task executor* that waits an arbitrary amount of time before performing the next task. In the case of the code above, it is used -for evicting cookies after they expire - but it has many different use cases (request timeouts being a prime example). - -#### `ChannelManager` - -```java -channelManager = new ChannelManager(config, nettyTimer); -``` - -`ChannelManager` requires a [section of its own](#channelmanager), but the bottom line is that one has to do a lot of boilerplate work with Channels when building an HTTP -client using Netty. For any given request there's a variable number of channel operations you would have to take, and there's a lot of value in re-using existing channels in -clever ways instead of opening new ones. `ChannelManager` is AHC's way of encapsulating at least some of that functionality (for -example, [connection pooling](https://en.wikipedia.org/wiki/Connection_pool#:~:text=In%20software%20engineering%2C%20a%20connection,executing%20commands%20on%20a%20database.)) -into a single object, instead of having it spread out all over the place. - -There are two similiarly-named constructs in the project, so I'm mentioning them in this - -* `ChannelPool`, as it - is [implemented in AHC](https://github.com/AsyncHttpClient/async-http-client/blob/758dcf214bf0ec08142ba234a3967d98a3dc60ef/client/src/main/java/org/asynchttpclient/channel/ChannelPool.java#L21) - , is an **AHC structure** designed to be a "container" of channels - a place you can add and remove channels from as the need arises. Note that the AHC implementation (that - might go as far back as 2012) *predates* the [Netty implementation](https://netty.io/news/2015/05/07/4-0-28-Final.html) introduced in 2015 (see - this [AHC user guide entry](https://asynchttpclient.github.io/async-http-client/configuring.html#contentBox:~:text=ConnectionsPoo,-%3C) from 2012 in which `ConnectionPool` - is referenced as proof). - - As - the [Netty release mentions](https://netty.io/news/2015/05/07/4-0-28-Final.html#main-content:~:text=Many%20of%20our%20users%20needed%20to,used%20Netty%20to%20writing%20a%20client.) - , connection pooling in the world of Netty-based clients is a valuable feature to have, one that [Jean-Francois](https://github.com/jfarcand) implemented himself instead of - waiting for Netty to do so. This might confuse anyone coming to the code a at a later point in time - like me - and I have yet to explore the tradeoffs of stripping away the - current implementation and in favor of the upstream one. See [this issue](https://github.com/AsyncHttpClient/async-http-client/issues/1766) for current progress. - -* [`ChannelGroup`](https://netty.io/4.0/api/io/netty/channel/group/ChannelGroup.html) (not to be confused with `ChannelPool`) is a **Netty structure** designed to work with - Netty `Channel`s *in bulk*, to reduce the need to perform the same operation on multiple channels sequnetially. - -#### `NettyRequestSender` - -```java -requestSender = new NettyRequestSender(config, channelManager, nettyTimer, new AsyncHttpClientState(closed)); -channelManager.configureBootstraps(requestSender); -``` - -`NettyRequestSender` does the all the heavy lifting required for sending the HTTP request - creating the required `Request` and `Response` objects, making sure `CONNECT` -requests are sent before the relevant requests, dealing with proxy servers (in the case -of [HTTPS connections](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT)), dispatching DNS hostname resolution requests and more. - -A few extra comments before we move on: - -* When finished with all the work, `NettyRequestSender` will send back - a [`ListenableFuture`](https://github.com/AsyncHttpClient/async-http-client/blob/d47c56e7ee80b76a4cffd4770237239cfea0ffd6/client/src/main/java/org/asynchttpclient/ListenableFuture.java#L40) - . AHC's `ListenableFuture` is an extension of a normal Java `Future` that allows for the addition of "Listeners" - pieces of code that get executed once the computation (the - one blocking the `Future` from completing) is finished. It is an example of a *very* common abstraction that exists in many different Java projects - - Google's [Guava](https://github.com/google/guava) [has one](https://github.com/google/guava/blob/master/futures/listenablefuture1/src/com/google/common/util/concurrent/ListenableFuture.java) - , for example, and so does [Spring](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/concurrent/ListenableFuture.html)). - -* Note the invocation of `configureBootstraps` in the second line here. `Bootstrap`s are a Netty concept that make it easy to set up `Channel`s - we'll talk about them a bit - later. - -#### `CookieStore` - -```java -CookieStore cookieStore = config.getCookieStore(); - if (cookieStore != null) { - int cookieStoreCount = config.getCookieStore().incrementAndGet(); - if ( - allowStopNettyTimer // timer is not shared - || cookieStoreCount == 1 // this is the first AHC instance for the shared (user-provided) timer - ) { - nettyTimer.newTimeout(new CookieEvictionTask(config.expiredCookieEvictionDelay(), cookieStore), - config.expiredCookieEvictionDelay(), TimeUnit.MILLISECONDS); - } - } -``` - -`CookieStore` is, well, a container for cookies. In this context, it is used to handle the task of cookie eviction (removing cookies whose expiry date has passed). This is, by -the way, an example of one of the *many, many features* AHC supports out of the box that might not be evident upon first observation. - -Once the client has been properly configured, it's time to actually execute the request. - -### Executing a request - Before execution - -Take a look at the execution line from the code above again: - -```java -Response response = client.executeRequest(get(url), new AsyncCompletionHandlerAdapter()).get(TIMEOUT, SECONDS); -``` - -Remember that what we have in front of us is an instance of `AsyncHttpClient` called `client` that is configured with an `AsyncHttpClientConfig`, and more specifically an -instance of `DefaultAsyncHttpClient` that is configured with `DefaultAsyncHttpClientConfig`. - -The `executeRequest` method is passed two arguments, and returns a `ListenableFuture`. The `Response` created by executing the `get` method on the `ListenableFuture` is the -end of the line in our case here, since this test is very simple - there's no response body to parse or any other computations to do in order to assert the test succeeded. The -only thing that is required for the correct operation of the code is for the `Response` to come back with the correct URL. - -Let's turn our eyes to the two arguments passed to `executeRequest`, then, since they are the key parts here: - -1. `get(url)` is the functional equivalent of `new RequestBuilder("GET").setUrl(url)`. `RequestBuilder` is in charge of scaffolding an instance - of [AHC's `Request` object](https://github.com/AsyncHttpClient/async-http-client/blob/c5eff423ebdd0cddd00bc6fcf17682651a151028/client/src/main/java/org/asynchttpclient/Request.java) - and providing it with sane defaults - mostly regarding HTTP headers (`RequestBuilder` does for `Request` what `DefaultAsyncHttpClientConfig.Builder()` does - for `DefaultAsyncHttpClient`). - 1. In our case, the `Request` contains no body (it's a simple `GET`). However, if that request was, for example, a `POST` - it could have a payload that would need to be - sent to the server via HTTP as well. We'll be talking about `Request` in more detail [here](#working-with-request-bodies), including how to work with request bodies. -2. To fully understand what `AsyncCompletionHandlerAdapter` is, and why it's such a core piece of everything that goes on in AHC, a bit of Netty background is required. Let's - take a sidestep for a moment: - -#### Netty `Channel`s and their associated entities ( `ChannelPipeline`s, `ChannelHandler`s and `ChannelAdapter`s) - -Recall that AHC is built on [Netty](https://netty.io/) and its networking abstractions. If you want to dive deeper into the framework you **should** -read [Netty in Action](https://www.manning.com/books/netty-in-action) (great book, Norman!), but for the sake of our discussion it's enough to settle on clarifying a few basic -terms: - -1. [`Channel`](https://netty.io/4.1/api/io/netty/channel/Channel.html) is Netty's version of a normal - Java [`Socket`](https://docs.oracle.com/javase/8/docs/api/java/net/Socket.html), greatly simplified for easier usage. It - encapsulates [all that you can know and do](https://netty.io/4.1/api/io/netty/channel/Channel.html#allclasses_navbar_top:~:text=the%20current%20state%20of%20the%20channel,and%20requests%20associated%20with%20the%20channel.) - with a regular `Socket`: - - 1. **State** - Is the socket currently open? Is it currently closed? - 2. **I/O Options** - Can we read from it? Can we write to it? - 3. **Configuration** - What is the receive buffer size? What is the connect timeout? - 4. `ChannelPipeline` - A reference to this `Channel`'s `ChannelPipeline`. - -2. Note that operations on a channel, in and of themselves, are **blocking** - that is, any operation that is performed on a channel blocks any other operations from being - performed on the channel at any given point in time. This is contrary to the Asynchronous nature Netty purports to support. - - To solve the issue, Netty adds a `ChannelPipeline` to every new `Channel` that is initialised. A `ChannelPipeline` is nothing but a container for `ChannelHandlers`. -3. [`ChannelHandler`](https://netty.io/4.1/api/io/netty/channel/ChannelHandler.html)s encapsulate the application logic of a Netty application. To be more precise, a *chain* - of `ChannelHandler`s, each in charge of one or more small pieces of logic that - when taken together - describe the entire data processing that is supposed to take place - during the lifetime of the application. - -4. [`ChannelHandlerContext`](https://netty.io/4.0/api/io/netty/channel/ChannelHandlerContext.html) is also worth mentioning here - it's the actual mechanism a `ChannelHandler` - uses to talk to the `ChannelPipeline` that encapsulates it. - -5. `ChannelXHandlerAdapter`s are a set of *default* handler implementations - "sugar" that should make the development of application logic easier. `X` can - be `Inbound ` (`ChannelInboundHandlerAdapter`), `Oubound` (`ChannelOutboundHandlerAdapter`) or one of many other options Netty provides out of the box. - -#### `ChannelXHandlerAdapter` VS. `AsyncXHandlerAdapter` - -This where it's important to note the difference between `ChannelXHandlerAdapter` (i.e. `ChannelInboundHandlerAdapater`) - which is a **Netty construct** -and `AsyncXHandlerAdapter` (i.e. `AsyncCompletionHandlerAdapater`) - which is an **AHC construct**. - -Basically, `ChannelXHandlerAdapter` is a Netty construct that provides a default implementation of a `ChannelHandler`, while `AsyncXHandlerAdapter` is an AHC construct that -provides a default implementation of an `AsyncHandler`. - -A `ChannelXHandlerAdapter` has methods that are called when *handler-related* and *channel-related* events occur. When the events "fire", a piece of business logic is carried -out in the relevant method, and the operation is then **passed on to the** **next `ChannelHandler` in line.** *The methods return nothing.* - -An `AsyncXHandlerAdapter` works a bit differently. It has methods that are triggered when *some piece of data is available during an asynchronous response processing*. The -methods are invoked in a pre-determined order, based on the expected arrival of each piece of data (when the status code arrives, when the headers arrive, etc.). When these -pieces of information become availale, a piece of business logic is carried out in the relevant method, and * -a [`STATE`](https://github.com/AsyncHttpClient/async-http-client/blob/f61f88e694850818950195379c5ba7efd1cd82ee/client/src/main/java/org/asynchttpclient/AsyncHandler.java#L242-L253) -is returned*. This `STATE` enum instructs the current implementation of the `AsyncHandler` (in our case, `AsyncXHandlerAdapater`) whether it should `CONTINUE` or `ABORT` the -current processing. - -This is **the core of AHC**: an asynchronous mechanism that encodes - and allows a developer to "hook" into - the various stages of the asynchronous processing of an HTTP -response. - -### Executing a request - During execution - -TODO - -### Executing a request - After execution - -TODO - -## Working with Netty channels - -### ChannelManager - -TODO - -## Transforming requests and responses - -TODO - -### Working with Request Bodies - -TODO - -### Request Filters - -TODO - -### Working with Response Bodies - -TODO - -### Response Filters - -TODO - -### Handlers - -TODO - -## Resources - -### Netty - -* https://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html - -### AsyncHttpClient - -TODO - -### HTTP - -TODO - -## Footnotes - -[^1] Some Netty-related definitions borrow heavily from [here](https://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html). From 6a91f5358266cb669f26e041aaec5c75be98d943 Mon Sep 17 00:00:00 2001 From: Aayush Atharva Date: Mon, 29 Jul 2024 13:30:22 +0530 Subject: [PATCH 5/6] Remove TLS v1.1 and v1 and add TLS v1.3 in enabled Protocols --- .../resources/org/asynchttpclient/config/ahc-default.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/main/resources/org/asynchttpclient/config/ahc-default.properties b/client/src/main/resources/org/asynchttpclient/config/ahc-default.properties index 6450221b0..f74127c23 100644 --- a/client/src/main/resources/org/asynchttpclient/config/ahc-default.properties +++ b/client/src/main/resources/org/asynchttpclient/config/ahc-default.properties @@ -13,7 +13,7 @@ org.asynchttpclient.maxRedirects=5 org.asynchttpclient.compressionEnforced=false org.asynchttpclient.enableAutomaticDecompression=true org.asynchttpclient.userAgent=AHC/2.1 -org.asynchttpclient.enabledProtocols=TLSv1.2, TLSv1.1, TLSv1 +org.asynchttpclient.enabledProtocols=TLSv1.3, TLSv1.2 org.asynchttpclient.enabledCipherSuites= org.asynchttpclient.filterInsecureCipherSuites=true org.asynchttpclient.useProxySelector=false From abbc37ed62762102f14c2072c96fc19f585d384a Mon Sep 17 00:00:00 2001 From: Aayush Atharva Date: Tue, 30 Jul 2024 02:12:35 +0530 Subject: [PATCH 6/6] Update README.md --- README.md | 103 +++++++++++++----------------------------------------- 1 file changed, 24 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 783dbb6af..21a20ebbe 100644 --- a/README.md +++ b/README.md @@ -32,20 +32,6 @@ dependencies { } ``` -## Version - -AHC doesn't use SEMVER, and won't. - -* MAJOR = huge refactoring -* MINOR = new features and minor API changes, upgrading should require 1 hour of work to adapt sources -* FIX = no API change, just bug fixes, only those are source and binary compatible with same minor version - -Check CHANGES.md for migration path between versions. - -## Basics - -Feel free to check the [Javadoc](http://www.javadoc.io/doc/org.asynchttpclient/async-http-client/) or the code for more information. - ### Dsl Import the Dsl helpers to use convenient methods to bootstrap components: @@ -112,7 +98,7 @@ This body can be of type: * `String` * `java.nio.ByteBuffer` * `java.io.InputStream` -* `Publisher` +* `Publisher` * `org.asynchttpclient.request.body.generator.BodyGenerator` `BodyGenerator` is a generic abstraction that let you create request bodies on the fly. @@ -244,75 +230,34 @@ Async Http Client also supports WebSocket. You need to pass a `WebSocketUpgradeHandler` where you would register a `WebSocketListener`. ```java -WebSocket websocket=c.prepareGet("ws://demos.kaazing.com/echo") +WebSocket websocket = c.prepareGet("ws://demos.kaazing.com/echo") .execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener( - new WebSocketListener(){ - - @Override - public void onOpen(WebSocket websocket){ - websocket.sendTextFrame("...").sendTextFrame("..."); - } - - @Override - public void onClose(WebSocket websocket) { - // ... - } - - @Override - public void onTextFrame(String payload,boolean finalFragment,int rsv){ - System.out.println(payload); - } - - @Override - public void onError(Throwable t){ - t.printStackTrace(); - } - }).build()).get(); + new WebSocketListener() { + + @Override + public void onOpen(WebSocket websocket) { + websocket.sendTextFrame("...").sendTextFrame("..."); + } + + @Override + public void onClose(WebSocket websocket) { + // ... + } + + @Override + public void onTextFrame(String payload, boolean finalFragment, int rsv) { + System.out.println(payload); + } + + @Override + public void onError(Throwable t) { + t.printStackTrace(); + } + }).build()).get(); ``` -## WebDAV - -AsyncHttpClient has build in support for the WebDAV protocol. -The API can be used the same way normal HTTP request are made: - -```java - Request mkcolRequest=new RequestBuilder("MKCOL").setUrl("http://host:port/folder1").build(); - Response response=c.executeRequest(mkcolRequest).get(); -``` - -or - -```java - Request propFindRequest=new RequestBuilder("PROPFIND").setUrl("http://host:port").build(); - Response response=c.executeRequest(propFindRequest,new AsyncHandler() { - // ... - }).get(); -``` - -## More - -You can find more information on Jean-François Arcand's blog. Jean-François is the original author of this library. -Code is sometimes not up-to-date but gives a pretty good idea of advanced features. - -* http://web.archive.org/web/20111224171448/http://jfarcand.wordpress.com/2011/01/12/going-asynchronous-using-asynchttpclient-for-dummies/ -* http://web.archive.org/web/20111224171241/http://jfarcand.wordpress.com/2010/12/21/going-asynchronous-using-asynchttpclient-the-basic/ -* http://web.archive.org/web/20111224162752/http://jfarcand.wordpress.com/2011/01/04/going-asynchronous-using-asynchttpclient-the-complex/ -* http://web.archive.org/web/20120218183108/http://jfarcand.wordpress.com/2011/12/21/writing-websocket-clients-using-asynchttpclient/ - ## User Group Keep up to date on the library development by joining the Asynchronous HTTP Client discussion group [GitHub Discussions](https://github.com/AsyncHttpClient/async-http-client/discussions) - -## Contributing - -Of course, Pull Requests are welcome. - -Here are the few rules we'd like you to respect if you do so: - -* Only edit the code related to the suggested change, so DON'T automatically format the classes you've edited. -* Use IntelliJ default formatting rules. -* Regarding licensing: - * You must be the original author of the code you suggest. - * You must give the copyright to "the AsyncHttpClient Project"