Skip to content

Prepare for v3.0.0 #1843

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Jan 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
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