diff --git a/.gitignore b/.gitignore
index b023787595..da1ac877dc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,7 @@ test-output
MANIFEST.MF
work
atlassian-ide-plugin.xml
+
+# Cached artifacts
+/build-cache/*
+!/build-cache/.keep
diff --git a/.travis.yml b/.travis.yml
index bb8adf60b0..4f7e1fcd9c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,28 +1,27 @@
-language: java
-jdk:
- - oraclejdk8
+dist: xenial
+language: minimal
+sudo: true
+services:
+ - docker
-before_script:
- - travis/before_script.sh
+env:
+ global:
+ - SERVICE_NAME=async-http-client
+ - REVISION=2.5.3-SNAPSHOT
+ - secure: vto8UyM7tMHE4tUwxmYC150orDzrz/6b33m8V6+yh1uHWJmtqhyshsjLKFMmiqkAHz/7jmrgMMlHcnYJ27IyNJsqd4WNQfUjf9nRuizbRKD+yhy7R+IKbgy8bSYizyvQ/4T07sJkOcebzXJigTlOjxpwDfKgBj7vqr5paXrir0Srs0jjgyMxnASFYaBvy2i6wPyPqslkbwHwTapWg3porl/EmSj9rmgHVnPED5CPYraMp+zTHJCpP6xgGn1N3wS+x3sUDZ4MSHeZLXbaSzmIIUBNbYSUjOnEspD0Pi/78G1cl6sW7KiSIAt+H6hoy1+rU6J4RyB8M6pSvNJDlgnYfemG/6onTAXA5n/0+dcs1X2skA3GscOmPoEUuPYyKeQwk2eXK67UC7LNSu1HSAeIxPgwKv4axmFPv/2GJtM70HP28cR35gzyWMMhsxGT7tuKE7W83bEuT/nUzXCWCC80LCOpRRHvfxczUO7bFDE9Be4K/xKtIAJiHZimcvixRoxRojPVSr8DrmeSFA+oGgE6F0hW6cQDynqF7FlmIb+6h3DVPWegQZqi7RP3UHy2qSwj2gAYAydd6FHib7juc8K4xIDdgZ53reCmQL6ULEwKF2unWDxLZ3urqDmhIc3qRH6it9VWdKoNr25EDgKXMVfiGoeKeZBVAl0KtdD6kDgLE9Q=
+ - secure: mLmKxZKFaaa98pVHMMcF/XEoXIebrOX7B9ZSLdGeB/2N9PWQnTRRThLrbd2gY1mpxPW+Nu6Nn4M0eh0g0kfYpypaetq7RO8GtNgRDW7qNDTr3q+dcV0+xW2YC+sAhvOnTMu8uz0bHf1y6iQMMvjggU9pyBD9iGtcANn5WXg+UW9cnlvx44MIzpKXt9RzItNpRgTC2/z+j8QL5zjwpMB2xT6EuP7ZFj1xnCQTAZ04qdOmM9Ro7rpvw0zYUIsYuEiyZMIgaGAsaGr00+VpbM9yRQTx7gGjvU6DLs3NfjJrl9ZyaR/vofAGjeV8DBNWBJwL6faq3y091joLIsWv4+tDfh+SZVwbUUhhHZUS0tuqebC0XAQMR5SAfOcO7t7blu9zk3esaeGYWaahQ3Jy1XupvuRQRu9Uj2p5tQTNRrDN9/8l4a9lwdhruDeHUeAwT1UGyx68WhXppWHuHw/Gbt20mo6nspuFPVJ5JrqdYrcfL4dUs+XY2sg4esweivOfrUy7F0noA85/Ol14P2wHyVp4aO+Bc8R+g87MxVlPm+vyW2YJQOi9EYFnPc6YyCu/RbXjvGh6y8izAN6BojeRJ9OJZjRZCG2s9CgL7a75ZOJEQ/ADpnJyhjD6XPlq7ZLwrh0j9fKLTYpk/zh26Ws/ZtGi0sMlwIXotGzVrIQUGgOmS00=
+ - secure: DPh5/VR6H3TSzReXgN6HVUoS7nvBX6nchs4esS0jLc/H34wAhC87d8g/8rn7GOvlf/jfr3ujUdl9EFGEy5WjfhNJYDqD/lLz2FmeNh8mI5ZX6mAhmd1CI7ow3miT/Dj/jdY/felWjgWRQIZRaYAv+qwoT96JSSEIO4lpfzafp4lXeD9oKp5t2Uk+Afz41x+e/OCoOW1VtUZi9VEiKbxcQCrwZRuHptTveJCi86zPeIokuUT+BBs0qQur960bq0c+XpkOC6tg3SLIQJJ/OSariiGfuap/A8ZObn9YFprmUYUUV9X8sOPuCBMOMQkqeG9DxNGEloHa9Xi+QpLTfFuLPvyp+PhZVYlMLvsH2GeWLNimlBqENaeKt/2DcO6pwf5TB0JcpV5tEPcjI3QVuqUEk6oXpwwAdoff4bN6Uafo3vKyQXEAsr26b590kxAhKxpI7nPmYtvHSkCfVxLh5Q2R6C0dpaGdamBRKjD+Lku2PJXE+lErk5SnK2BgBkiuuBaxVvUYO9RatucVVne+VDTJY6brcXJEEDs/myfK6lpF2cb5BM14l58iHWBQHmiDhGyl3CKRVXpavG9IuuVMf7siV0957ixCZstlU7J4RDwunGrl6RM3BQdj55atnHu+AKuy3piVy+NX+IimiaRsWw+N04pO3sAakG0fMa1YQ55RDOQ=
+ - secure: eZclfJ0N5XzH4Y8ZzLrbcX6iv9Mgc4gctU//jNTN39U2qlBvSUiuY3GDwZfPZjC/V0aeS1+Kb/NBeHaOTfEcqd3+nn4lYrEz3Aqi3NJoapgcWtcQDwIs9edRoJLxZ2iRJJqMY0ONTDur5qgAw+21Pk1KCHFMYVwHcXuOqf5fGTxhi0m1qSEHXJUNnVHP9mAwcF9YvmePeBi/s9RU/E6vHjjg7ZH//JTnGYERn9EqygXwFP+BKx+HrI+8mzmgOiZvwJkUrA6Yk6Z0QIcMiBfIVKm8AdQr4lo8UtZcm1YWz4z0wnN24UxKf3PwKy9Br9Ol2T4nLlAfRYBmNF6HM/nsC+TENfelZvp8xkH79hsdSfCNoWS5Ir1LgvKGJ/Nr/msM80bvBOqsqeT3MaInuWVRfAVhYlFhqUHuVSQf74qbSYXCyMnUR5GYZ6ZY/aYcXw1bFDmBLBRroMw4E76NLsmqoAU8Cq9PaZIqsGGt5fqv5tJMEPaAWr0tNwywtVVoLV3wZh15dClMRkfvrYEUuSBLw0neAHDVNz4UYvySfQgAtDIndxR9lwoBssMGi4zNVfFJ/kAFSTaWoiwu2Q7dp4LJIgG1ZHvUV1uICZhd9rPjEjS83FNCSAt1WBX7r8hLbBLhZBjl7dMl4CQqW4xC6JjzHjACiHGpjoyBBy9arrxg4PU=
-script:
- - mvn test -Ptest-output
- - find $HOME/.m2 -name "_remote.repositories" | xargs rm
- - find $HOME/.m2 -name "resolver-status.properties" | xargs rm -f
-
-# If building master, Publish to Sonatype
-after_success:
- - travis/after_success.sh
+cache:
+ directories:
+ - build-cache
-sudo: false
+install:
+ - docker-compose -f docker-compose.yml build
-# https://github.com/travis-ci/travis-ci/issues/3259
-addons:
- apt:
- packages:
- - oracle-java8-installer
+script:
+ - docker-compose -f docker-compose.yml run ${SERVICE_NAME}
-# Cache settings
-cache:
- directories:
- - $HOME/.m2/repository
+before_cache:
+ - docker-compose -f docker-compose.yml run --rm -v `pwd`/build-cache:/app/build-cache ${SERVICE_NAME} bash docker-utils.sh save-cache
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000..e61a4faff6
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,29 @@
+# wego-async-http-client stage
+FROM maven:3.6-jdk-11-slim
+
+# Install build dependencies
+RUN apt-get -qq update && \
+ apt-get -qq install -y --no-install-recommends \
+ build-essential \
+ openssh-client \
+ && rm -rf /var/lib/apt/lists/*
+
+# Read repo args
+ARG VERSION
+ENV VERSION=${VERSION}
+
+WORKDIR /app
+COPY . .
+
+RUN mvn compile -U \
+ -Dmaven.test.skip=true \
+ -Dgpg.skip \
+ -Dproject.version=${VERSION}
+
+CMD mvn deploy -U \
+ -Dmaven.test.skip=true \
+ -Dgpg.skip \
+ -DdistMgmtReleasesUrl=${REPO_URL}/releases \
+ -DdistMgmtSnapshotsUrl=${REPO_URL}/snapshots \
+ -DAWS_DEFAULT_REGION=${AWS_DEFAULT_REGION} \
+ -Dproject.version=${VERSION}
diff --git a/build-cache/.keep b/build-cache/.keep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/client/pom.xml b/client/pom.xml
index da97920051..5b635deae0 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -2,7 +2,7 @@
org.asynchttpclient
async-http-client-project
- 2.5.3-SNAPSHOT
+ ${project.version}
4.0.0
async-http-client
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000..1153be957b
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,13 @@
+version: "3.7"
+services:
+ async-http-client:
+ build:
+ context: .
+ args:
+ VERSION: ${REVISION:?REVISION}
+ image: wego/async-http-client
+ environment:
+ AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:?AWS_ACCESS_KEY_ID}
+ AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:?AWS_SECRET_ACCESS_KEY}
+ AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION:?AWS_DEFAULT_REGION}
+ REPO_URL: ${REPO_URL:?REPO_URL}
diff --git a/docker-utils.sh b/docker-utils.sh
new file mode 100755
index 0000000000..21593fad90
--- /dev/null
+++ b/docker-utils.sh
@@ -0,0 +1,37 @@
+ #!/usr/bin/env bash
+
+ set -e
+
+ GRADLE_CACHE_ARCHIVE='build-cache/maven.tar.gz'
+ GRADLE_CACHE_DIR="/root/.m2/"
+
+ function __load_cache {
+ if [ -f "$GRADLE_CACHE_ARCHIVE" ]
+ then
+ mkdir $GRADLE_CACHE_DIR
+ tar -xzf $GRADLE_CACHE_ARCHIVE -C $GRADLE_CACHE_DIR
+ echo "Extracted $GRADLE_CACHE_ARCHIVE to $GRADLE_CACHE_DIR"
+ else
+ echo "$GRADLE_CACHE_ARCHIVE not found"
+ fi
+ }
+
+ function __save_cache {
+ # gzip without timestamps for consistent checksum
+ GZIP=-n tar -czf $GRADLE_CACHE_ARCHIVE --exclude='./daemon' --exclude='./native' --exclude='./notifications' -C $GRADLE_CACHE_DIR .
+ md5sum $GRADLE_CACHE_ARCHIVE
+ echo "Saved $GRADLE_CACHE_DIR to $GRADLE_CACHE_ARCHIVE"
+ }
+
+ case "$1" in
+ load-cache)
+ __load_cache
+ ;;
+ save-cache)
+ __save_cache
+ ;;
+ *)
+ echo 'Unknown command'
+ exit 1
+ esac
+
diff --git a/example/pom.xml b/example/pom.xml
index 075bc60bea..73b6634b17 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -2,7 +2,7 @@
org.asynchttpclient
async-http-client-project
- 2.5.3-SNAPSHOT
+ ${project.version}
4.0.0
async-http-client-example
diff --git a/extras/guava/pom.xml b/extras/guava/pom.xml
index 151393daef..0772632804 100644
--- a/extras/guava/pom.xml
+++ b/extras/guava/pom.xml
@@ -2,7 +2,7 @@
org.asynchttpclient
async-http-client-extras-parent
- 2.5.3-SNAPSHOT
+ ${project.version}
4.0.0
async-http-client-extras-guava
@@ -18,4 +18,4 @@
14.0.1
-
\ No newline at end of file
+
diff --git a/extras/jdeferred/pom.xml b/extras/jdeferred/pom.xml
index aefd9cd662..0a220f8db1 100644
--- a/extras/jdeferred/pom.xml
+++ b/extras/jdeferred/pom.xml
@@ -18,7 +18,7 @@
async-http-client-extras-parent
org.asynchttpclient
- 2.5.3-SNAPSHOT
+ ${project.version}
async-http-client-extras-jdeferred
Asynchronous Http Client JDeferred Extras
diff --git a/extras/pom.xml b/extras/pom.xml
index 5443b9ffcc..b2f1c843f0 100644
--- a/extras/pom.xml
+++ b/extras/pom.xml
@@ -2,7 +2,7 @@
org.asynchttpclient
async-http-client-project
- 2.5.3-SNAPSHOT
+ ${project.version}
4.0.0
async-http-client-extras-parent
@@ -32,7 +32,7 @@
org.asynchttpclient
async-http-client
- ${project.version}
+ 2.5.3-SNAPSHOT
test
tests
diff --git a/extras/registry/pom.xml b/extras/registry/pom.xml
index 995d6b21f5..42feb12137 100644
--- a/extras/registry/pom.xml
+++ b/extras/registry/pom.xml
@@ -2,7 +2,7 @@
org.asynchttpclient
async-http-client-extras-parent
- 2.5.3-SNAPSHOT
+ ${project.version}
4.0.0
async-http-client-extras-registry
@@ -10,4 +10,4 @@
The Async Http Client Registry Extras.
-
\ No newline at end of file
+
diff --git a/extras/retrofit2/pom.xml b/extras/retrofit2/pom.xml
index 9322cb6e7e..bd286c70d8 100644
--- a/extras/retrofit2/pom.xml
+++ b/extras/retrofit2/pom.xml
@@ -4,7 +4,7 @@
async-http-client-extras-parent
org.asynchttpclient
- 2.5.3-SNAPSHOT
+ ${project.version}
async-http-client-extras-retrofit2
diff --git a/extras/rxjava/pom.xml b/extras/rxjava/pom.xml
index 9225a76d1d..f24287e44a 100644
--- a/extras/rxjava/pom.xml
+++ b/extras/rxjava/pom.xml
@@ -3,7 +3,7 @@
async-http-client-extras-parent
org.asynchttpclient
- 2.5.3-SNAPSHOT
+ ${project.version}
async-http-client-extras-rxjava
Asynchronous Http Client RxJava Extras
diff --git a/extras/rxjava2/pom.xml b/extras/rxjava2/pom.xml
index f165dc1725..51387bb176 100644
--- a/extras/rxjava2/pom.xml
+++ b/extras/rxjava2/pom.xml
@@ -3,7 +3,7 @@
async-http-client-extras-parent
org.asynchttpclient
- 2.5.3-SNAPSHOT
+ ${project.version}
async-http-client-extras-rxjava2
Asynchronous Http Client RxJava2 Extras
diff --git a/extras/simple/pom.xml b/extras/simple/pom.xml
index 05c1ac0d1f..222d5ccd84 100644
--- a/extras/simple/pom.xml
+++ b/extras/simple/pom.xml
@@ -3,7 +3,7 @@
async-http-client-extras-parent
org.asynchttpclient
- 2.5.3-SNAPSHOT
+ ${project.version}
async-http-client-extras-simple
Asynchronous Http Simple Client
diff --git a/extras/typesafeconfig/pom.xml b/extras/typesafeconfig/pom.xml
index d121e009c5..fea014f820 100644
--- a/extras/typesafeconfig/pom.xml
+++ b/extras/typesafeconfig/pom.xml
@@ -4,7 +4,7 @@
async-http-client-extras-parent
org.asynchttpclient
- 2.5.3-SNAPSHOT
+ ${project.version}
async-http-client-extras-typesafe-config
diff --git a/netty-utils/pom.xml b/netty-utils/pom.xml
index 79aa56d555..418e0c8743 100644
--- a/netty-utils/pom.xml
+++ b/netty-utils/pom.xml
@@ -2,7 +2,7 @@
org.asynchttpclient
async-http-client-project
- 2.5.3-SNAPSHOT
+ ${project.version}
4.0.0
async-http-client-netty-utils
diff --git a/pom.xml b/pom.xml
index ce6249110e..4b7d7b8bb7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
org.asynchttpclient
async-http-client-project
Asynchronous Http Client Project
- 2.5.3-SNAPSHOT
+ ${project.version}
pom
The Async Http Client (AHC) library's purpose is to allow Java
@@ -77,6 +77,11 @@
maven-scm-manager-plexus
1.6
+
+ com.gkatzioura.maven.cloud
+ s3-storage-wagon
+ 1.8
+
install
@@ -151,6 +156,30 @@
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+ 1.0.0
+
+ true
+
+
+
+ flatten
+ process-resources
+
+ flatten
+
+
+
+ flatten.clean
+ clean
+
+ clean
+
+
+
+
@@ -194,19 +223,18 @@
-
-
- sonatype-nexus-staging
- Sonatype Release
- http://oss.sonatype.org/service/local/staging/deploy/maven2
-
-
-
- sonatype-nexus-snapshots
- sonatype-nexus-snapshots
- ${distMgmtSnapshotsUrl}
-
-
+
+
+ dist-release
+ dist-release
+ ${distMgmtReleasesUrl}
+
+
+ dist-snapshots
+ dist-snapshots
+ ${distMgmtSnapshotsUrl}
+
+
netty-utils
client
@@ -398,7 +426,10 @@
+
+ 2.5.3-SNAPSHOT
http://oss.sonatype.org/content/repositories/snapshots
+ http://oss.sonatype.org/content/repositories/releases
true
1.8
1.8