Skip to content

Commit

Permalink
Prepare for v3.0.0 (#1843)
Browse files Browse the repository at this point in the history
Prepare for v3.0.0 - Next Major Release
  • Loading branch information
hyperxpro authored Jan 8, 2023
1 parent 5f16452 commit 1b63e0b
Show file tree
Hide file tree
Showing 453 changed files with 38,522 additions and 40,049 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Build Check

on:
schedule:
- cron: '0 12 * * *'

jobs:
RunOnLinux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Grant Permission
run: sudo chmod +x ./mvnw
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '11'
- name: Run Tests
run: ./mvnw -B -ntp clean test

RunOnMacOs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Grant Permission
run: sudo chmod +x ./mvnw
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '11'
- name: Run Tests
run: ./mvnw -B -ntp clean test

RunOnWindows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '11'
- name: Run Tests
run: ./mvnw.cmd -B -ntp clean test
50 changes: 38 additions & 12 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# This workflow is designed to build PRs for AHC. Note that it does not actually publish AHC, just builds and test it.
# Docs: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Test PR
name: Build PR

on:
push:
branches:
- main
pull_request:
branches: [ main ]

workflow_dispatch:
inputs:
Expand All @@ -15,15 +17,39 @@ on:
default: 'Github Actions'

jobs:
build:
RunOnLinux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 8
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: 8
architecture: x64
- name: Build and test with Maven
run: mvn -ntp -B test -Ptest-output
- uses: actions/checkout@v3
- name: Grant Permission
run: sudo chmod +x ./mvnw
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '11'
- name: Run Tests
run: ./mvnw -B -ntp clean test

RunOnMacOs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Grant Permission
run: sudo chmod +x ./mvnw
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '11'
- name: Run Tests
run: ./mvnw -B -ntp clean test

RunOnWindows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '11'
- name: Run Tests
run: ./mvnw.cmd -B -ntp clean test
Binary file added .mvn/wrapper/maven-wrapper.jar
Binary file not shown.
18 changes: 18 additions & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://maven-central.storage-download.googleapis.com/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
wrapperUrl=https://maven-central.storage-download.googleapis.com/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar
22 changes: 0 additions & 22 deletions .travis.yml

This file was deleted.

23 changes: 13 additions & 10 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,20 @@
## From 2.0 to 2.1

* AHC 2.1 targets Netty 4.1.
* `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.
* `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](https://github.com/AsyncHttpClient/async-http-client/commit/1972c9b9984d6d9f9faca6edd4f2159013205aea) 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)
* new `isAggregateWebSocketFrameFragments` now lets you disable WebSocket fragmented frames aggregation
* new `isUseLaxCookieEncoder` lets you loosen cookie chars validation
* `isAcceptAnyCertificate` was dropped, as it didn't do what its name stated
* new `isUseInsecureTrustManager` lets you use a permissive TrustManager, that would typically let you accept self-signed certificates
* new `isDisableHttpsEndpointIdentificationAlgorithm` disables setting `HTTPS` algorithm on the SSLEngines, typically disables SNI and HTTPS hostname verification
* new `isAggregateWebSocketFrameFragments` lets you disable fragmented WebSocket frames aggregation
* new `getCookieStore` now lets you configure a CookieStore (enabled by default)
* new `isAggregateWebSocketFrameFragments` now lets you disable WebSocket fragmented frames aggregation
* new `isUseLaxCookieEncoder` lets you loosen cookie chars validation
* `isAcceptAnyCertificate` was dropped, as it didn't do what its name stated
* new `isUseInsecureTrustManager` lets you use a permissive TrustManager, that would typically let you accept self-signed certificates
* new `isDisableHttpsEndpointIdentificationAlgorithm` disables setting `HTTPS` algorithm on the SSLEngines, typically disables SNI and HTTPS hostname verification
* new `isAggregateWebSocketFrameFragments` lets you disable fragmented WebSocket frames aggregation
37 changes: 2 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Async Http Client [![Build Status](https://travis-ci.org/AsyncHttpClient/async-http-client.svg?branch=master)](https://travis-ci.org/AsyncHttpClient/async-http-client) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.asynchttpclient/async-http-client/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.asynchttpclient/async-http-client/)
# Async Http Client [![Build](https://github.com/AsyncHttpClient/async-http-client/actions/workflows/builds.yml/badge.svg)](https://github.com/AsyncHttpClient/async-http-client/actions/workflows/builds.yml) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.asynchttpclient/async-http-client/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.asynchttpclient/async-http-client/)

Follow [@AsyncHttpClient](https://twitter.com/AsyncHttpClient) on Twitter.

Expand All @@ -7,31 +7,9 @@ The library also supports the WebSocket Protocol.

It's built on top of [Netty](https://github.com/netty/netty). It's currently compiled on Java 8 but runs on Java 9 too.

## New Maintainer!

[Aayush (hyperxpro)](https://twitter.com/HyperXPro) has gracefully decided to take over maintainership from [Tom](https://github.com/TomGranot), and is available for your questions. Please mention him in your issues and PRs from now on!

## Installation

Binaries are deployed on Maven Central.

Import the AsyncHttpClient Bill of Materials (BOM) to add dependency management for AsyncHttpClient artifacts to your project:

```xml

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client-bom</artifactId>
<version>LATEST_VERSION</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
```

Add a dependency on the main AsyncHttpClient artifact:

```xml
Expand All @@ -40,12 +18,11 @@ Add a dependency on the main AsyncHttpClient artifact:
<dependency>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
```

The `async-http-client-extras-*` and other modules can also be added without having to specify the version for each dependency, because they are all managed via the BOM.

## Version

AHC doesn't use SEMVER, and won't.
Expand Down Expand Up @@ -275,16 +252,6 @@ public void onError(Throwable t){
}).build()).get();
```

## Reactive Streams

AsyncHttpClient has built-in support for reactive streams.

You can pass a request body as a `Publisher<ByteBuf>` or a `ReactiveStreamsBodyGenerator`.

You can also pass a `StreamedAsyncHandler<T>` whose `onStream` method will be notified with a `Publisher<HttpResponseBodyPart>`.

See tests in package `org.asynchttpclient.reactivestreams` for examples.

## WebDAV

AsyncHttpClient has build in support for the WebDAV protocol.
Expand Down
107 changes: 0 additions & 107 deletions bom/pom.xml

This file was deleted.

Loading

0 comments on commit 1b63e0b

Please sign in to comment.