[Git][java-team/async-http-client][master] 4 commits: Standards-Version updated to 4.6.0.1
Emmanuel Bourg (@ebourg)
gitlab at salsa.debian.org
Sat Sep 18 09:05:48 BST 2021
Emmanuel Bourg pushed to branch master at Debian Java Maintainers / async-http-client
Commits:
018e405a by Emmanuel Bourg at 2021-09-18T10:00:37+02:00
Standards-Version updated to 4.6.0.1
- - - - -
50a5dd49 by Emmanuel Bourg at 2021-09-18T10:01:32+02:00
New upstream version 2.12.3
- - - - -
638dd547 by Emmanuel Bourg at 2021-09-18T10:01:33+02:00
Update upstream source from tag 'upstream/2.12.3'
Update to upstream version '2.12.3'
with Debian dir 121371b6482804776bdb71e6753b2e662367a53b
- - - - -
5c0dd236 by Emmanuel Bourg at 2021-09-18T10:05:24+02:00
New upstream release (2.12.3)
- - - - -
26 changed files:
- bom/pom.xml
- client/pom.xml
- client/src/main/java/org/asynchttpclient/netty/handler/intercept/Redirect30xInterceptor.java
- client/src/main/java/org/asynchttpclient/netty/request/NettyRequestFactory.java
- client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java
- client/src/main/java/org/asynchttpclient/proxy/ProxyServer.java
- client/src/test/java/org/asynchttpclient/AsyncStreamHandlerTest.java
- client/src/test/java/org/asynchttpclient/BasicHttpProxyToHttpsTest.java
- client/src/test/java/org/asynchttpclient/Head302Test.java
- client/src/test/java/org/asynchttpclient/MultipleHeaderTest.java
- + client/src/test/java/org/asynchttpclient/netty/NettyConnectionResetByPeerTest.java
- + client/src/test/java/org/asynchttpclient/proxy/CustomHeaderProxyTest.java
- debian/changelog
- debian/control
- example/pom.xml
- extras/guava/pom.xml
- extras/jdeferred/pom.xml
- extras/pom.xml
- extras/registry/pom.xml
- extras/retrofit2/pom.xml
- extras/rxjava/pom.xml
- extras/rxjava2/pom.xml
- extras/simple/pom.xml
- extras/typesafeconfig/pom.xml
- netty-utils/pom.xml
- pom.xml
Changes:
=====================================
bom/pom.xml
=====================================
@@ -5,7 +5,7 @@
<parent>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client-project</artifactId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<artifactId>async-http-client-bom</artifactId>
=====================================
client/pom.xml
=====================================
@@ -2,7 +2,7 @@
<parent>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client-project</artifactId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>async-http-client</artifactId>
=====================================
client/src/main/java/org/asynchttpclient/netty/handler/intercept/Redirect30xInterceptor.java
=====================================
@@ -38,6 +38,8 @@ import java.util.Set;
import static io.netty.handler.codec.http.HttpHeaderNames.*;
import static org.asynchttpclient.util.HttpConstants.Methods.GET;
+import static org.asynchttpclient.util.HttpConstants.Methods.HEAD;
+import static org.asynchttpclient.util.HttpConstants.Methods.OPTIONS;
import static org.asynchttpclient.util.HttpConstants.ResponseStatusCodes.*;
import static org.asynchttpclient.util.HttpUtils.followRedirect;
import static org.asynchttpclient.util.MiscUtils.isNonEmpty;
@@ -87,7 +89,7 @@ public class Redirect30xInterceptor {
String originalMethod = request.getMethod();
boolean switchToGet = !originalMethod.equals(GET)
- && (statusCode == MOVED_PERMANENTLY_301 || statusCode == SEE_OTHER_303 || (statusCode == FOUND_302 && !config.isStrict302Handling()));
+ && !originalMethod.equals(OPTIONS) && !originalMethod.equals(HEAD) && (statusCode == MOVED_PERMANENTLY_301 || statusCode == SEE_OTHER_303 || (statusCode == FOUND_302 && !config.isStrict302Handling()));
boolean keepBody = statusCode == TEMPORARY_REDIRECT_307 || statusCode == PERMANENT_REDIRECT_308 || (statusCode == FOUND_302 && config.isStrict302Handling());
final RequestBuilder requestBuilder = new RequestBuilder(switchToGet ? GET : originalMethod)
@@ -126,7 +128,6 @@ public class Redirect30xInterceptor {
HttpHeaders responseHeaders = response.headers();
String location = responseHeaders.get(LOCATION);
Uri newUri = Uri.create(future.getUri(), location);
-
LOGGER.debug("Redirecting to {}", newUri);
CookieStore cookieStore = config.getCookieStore();
=====================================
client/src/main/java/org/asynchttpclient/netty/request/NettyRequestFactory.java
=====================================
@@ -140,6 +140,7 @@ public final class NettyRequestFactory {
if (connect) {
// assign proxy-auth as configured on request
headers.set(PROXY_AUTHORIZATION, request.getHeaders().getAll(PROXY_AUTHORIZATION));
+ headers.set(USER_AGENT, request.getHeaders().getAll(USER_AGENT));
} else {
// assign headers as configured on request
=====================================
client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java
=====================================
@@ -275,6 +275,12 @@ public final class NettyRequestSender {
// some headers are only set when performing the first request
HttpHeaders headers = future.getNettyRequest().getHttpRequest().headers();
+ if(proxy != null && proxy.getCustomHeaders() != null ) {
+ HttpHeaders customHeaders = proxy.getCustomHeaders().apply(request);
+ if(customHeaders != null) {
+ headers.add(customHeaders);
+ }
+ }
Realm realm = future.getRealm();
Realm proxyRealm = future.getProxyRealm();
requestFactory.addAuthorizationHeader(headers, perConnectionAuthorizationHeader(request, proxy, realm));
@@ -464,7 +470,7 @@ public final class NettyRequestSender {
public void abort(Channel channel, NettyResponseFuture<?> future, Throwable t) {
if (channel != null) {
- Object attribute = Channels.getAttribute(future.channel());
+ Object attribute = Channels.getAttribute(channel);
if (attribute instanceof StreamedResponsePublisher) {
((StreamedResponsePublisher) attribute).setError(t);
}
=====================================
client/src/main/java/org/asynchttpclient/proxy/ProxyServer.java
=====================================
@@ -16,11 +16,15 @@
*/
package org.asynchttpclient.proxy;
+import io.netty.handler.codec.http.HttpHeaders;
+
import org.asynchttpclient.Realm;
+import org.asynchttpclient.Request;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.function.Function;
import static org.asynchttpclient.util.Assertions.assertNotNull;
import static org.asynchttpclient.util.MiscUtils.isNonEmpty;
@@ -36,15 +40,22 @@ public class ProxyServer {
private final Realm realm;
private final List<String> nonProxyHosts;
private final ProxyType proxyType;
+ private final Function<Request, HttpHeaders> customHeaders;
public ProxyServer(String host, int port, int securedPort, Realm realm, List<String> nonProxyHosts,
- ProxyType proxyType) {
+ ProxyType proxyType, Function<Request, HttpHeaders> customHeaders) {
this.host = host;
this.port = port;
this.securedPort = securedPort;
this.realm = realm;
this.nonProxyHosts = nonProxyHosts;
this.proxyType = proxyType;
+ this.customHeaders = customHeaders;
+ }
+
+ public ProxyServer(String host, int port, int securedPort, Realm realm, List<String> nonProxyHosts,
+ ProxyType proxyType) {
+ this(host, port, securedPort, realm, nonProxyHosts, proxyType, null);
}
public String getHost() {
@@ -71,6 +82,10 @@ public class ProxyServer {
return proxyType;
}
+ public Function<Request, HttpHeaders> getCustomHeaders() {
+ return customHeaders;
+ }
+
/**
* Checks whether proxy should be used according to nonProxyHosts settings of
* it, or we want to go directly to target host. If <code>null</code> proxy is
@@ -118,6 +133,7 @@ public class ProxyServer {
private Realm realm;
private List<String> nonProxyHosts;
private ProxyType proxyType;
+ private Function<Request, HttpHeaders> customHeaders;
public Builder(String host, int port) {
this.host = host;
@@ -157,11 +173,16 @@ public class ProxyServer {
return this;
}
+ public Builder setCustomHeaders(Function<Request, HttpHeaders> customHeaders) {
+ this.customHeaders = customHeaders;
+ return this;
+ }
+
public ProxyServer build() {
List<String> nonProxyHosts = this.nonProxyHosts != null ? Collections.unmodifiableList(this.nonProxyHosts)
: Collections.emptyList();
ProxyType proxyType = this.proxyType != null ? this.proxyType : ProxyType.HTTP;
- return new ProxyServer(host, port, securedPort, realm, nonProxyHosts, proxyType);
+ return new ProxyServer(host, port, securedPort, realm, nonProxyHosts, proxyType, customHeaders);
}
}
}
=====================================
client/src/test/java/org/asynchttpclient/AsyncStreamHandlerTest.java
=====================================
@@ -428,6 +428,8 @@ public class AsyncStreamHandlerTest extends HttpTest {
}));
}
+ // This test is flaky - see https://github.com/AsyncHttpClient/async-http-client/issues/1728#issuecomment-699962325
+ // For now, just run again if fails
@Test(groups = "online")
public void asyncOptionsTest() throws Throwable {
=====================================
client/src/test/java/org/asynchttpclient/BasicHttpProxyToHttpsTest.java
=====================================
@@ -31,18 +31,20 @@ import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
-import static io.netty.handler.codec.http.HttpHeaderNames.PROXY_AUTHENTICATE;
-import static io.netty.handler.codec.http.HttpHeaderNames.PROXY_AUTHORIZATION;
+import static io.netty.handler.codec.http.HttpHeaderNames.*;
import static org.asynchttpclient.Dsl.*;
import static org.asynchttpclient.test.TestUtils.addHttpConnector;
import static org.asynchttpclient.test.TestUtils.addHttpsConnector;
+import static org.asynchttpclient.config.AsyncHttpClientConfigDefaults.*;
/**
- * Test that validates that when having an HTTP proxy and trying to access an HTTPS through the proxy the proxy credentials should be passed during the CONNECT request.
+ * Test that validates that when having an HTTP proxy and trying to access an HTTPS
+ * through the proxy the proxy credentials and a custom user-agent (if set) should be passed during the CONNECT request.
*/
public class BasicHttpProxyToHttpsTest {
private static final Logger LOGGER = LoggerFactory.getLogger(BasicHttpProxyToHttpsTest.class);
+ private static final String CUSTOM_USER_AGENT = "custom-user-agent";
private int httpPort;
private int proxyPort;
@@ -66,13 +68,24 @@ public class BasicHttpProxyToHttpsTest {
ConnectHandler connectHandler = new ConnectHandler() {
@Override
+ // This proxy receives a CONNECT request from the client before making the real request for the target host.
protected boolean handleAuthentication(HttpServletRequest request, HttpServletResponse response, String address) {
+
+ // If the userAgent of the CONNECT request is the same as the default userAgent,
+ // then the custom userAgent was not properly propagated and the test should fail.
+ String userAgent = request.getHeader(USER_AGENT.toString());
+ if(userAgent.equals(defaultUserAgent())) {
+ return false;
+ }
+
+ // If the authentication failed, the test should also fail.
String authorization = request.getHeader(PROXY_AUTHORIZATION.toString());
if (authorization == null) {
response.setStatus(HttpServletResponse.SC_PROXY_AUTHENTICATION_REQUIRED);
response.setHeader(PROXY_AUTHENTICATE.toString(), "Basic realm=\"Fake Realm\"");
return false;
- } else if (authorization.equals("Basic am9obmRvZTpwYXNz")) {
+ }
+ else if (authorization.equals("Basic am9obmRvZTpwYXNz")) {
return true;
}
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
@@ -98,6 +111,7 @@ public class BasicHttpProxyToHttpsTest {
String targetUrl = "https://localhost:" + httpPort + "/foo/bar";
Request request = get(targetUrl)
.setProxyServer(proxyServer("127.0.0.1", proxyPort).setRealm(realm(AuthScheme.BASIC, "johndoe", "pass")))
+ .setHeader("user-agent", CUSTOM_USER_AGENT)
// .setRealm(realm(AuthScheme.BASIC, "user", "passwd"))
.build();
Future<Response> responseFuture = client.executeRequest(request);
@@ -107,4 +121,4 @@ public class BasicHttpProxyToHttpsTest {
Assert.assertEquals("/foo/bar", response.getHeader("X-pathInfo"));
}
}
-}
\ No newline at end of file
+}
=====================================
client/src/test/java/org/asynchttpclient/Head302Test.java
=====================================
@@ -70,9 +70,17 @@ public class Head302Test extends AbstractBasicTest {
private static class Head302handler extends AbstractHandler {
public void handle(String s, org.eclipse.jetty.server.Request r, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
if ("HEAD".equalsIgnoreCase(request.getMethod())) {
- response.setStatus(HttpServletResponse.SC_FOUND); // 302
- response.setHeader("Location", request.getPathInfo() + "_moved");
- } else if ("GET".equalsIgnoreCase(request.getMethod())) {
+ // See https://github.com/AsyncHttpClient/async-http-client/issues/1728#issuecomment-700007980
+ // When setFollowRedirect == TRUE, a follow-up request to a HEAD request will also be a HEAD.
+ // This will cause an infinite loop, which will error out once the maximum amount of redirects is hit (default 5).
+ // Instead, we (arbitrarily) choose to allow for 3 redirects and then return a 200.
+ if(request.getRequestURI().endsWith("_moved_moved_moved")) {
+ response.setStatus(HttpServletResponse.SC_OK);
+ } else {
+ response.setStatus(HttpServletResponse.SC_FOUND); // 302
+ response.setHeader("Location", request.getPathInfo() + "_moved");
+ }
+ } else if ("GET".equalsIgnoreCase(request.getMethod()) ) {
response.setStatus(HttpServletResponse.SC_OK);
} else {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
=====================================
client/src/test/java/org/asynchttpclient/MultipleHeaderTest.java
=====================================
@@ -53,8 +53,8 @@ public class MultipleHeaderTest extends AbstractBasicTest {
socket.shutdownInput();
if (req.endsWith("MultiEnt")) {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(socket.getOutputStream());
- outputStreamWriter.append("HTTP/1.0 200 OK\n" + "Connection: close\n" + "Content-Type: text/plain; charset=iso-8859-1\n" + "Content-Length: 2\n"
- + "Content-Length: 1\n" + "\n0\n");
+ outputStreamWriter.append("HTTP/1.0 200 OK\n" + "Connection: close\n" + "Content-Type: text/plain; charset=iso-8859-1\n" + "X-Duplicated-Header: 2\n"
+ + "X-Duplicated-Header: 1\n" + "\n0\n");
outputStreamWriter.flush();
socket.shutdownOutput();
} else if (req.endsWith("MultiOther")) {
@@ -148,7 +148,7 @@ public class MultipleHeaderTest extends AbstractBasicTest {
public State onHeadersReceived(HttpHeaders response) {
try {
int i = 0;
- for (String header : response.getAll(CONTENT_LENGTH)) {
+ for (String header : response.getAll("X-Duplicated-Header")) {
clHeaders[i++] = header;
}
} finally {
=====================================
client/src/test/java/org/asynchttpclient/netty/NettyConnectionResetByPeerTest.java
=====================================
@@ -0,0 +1,108 @@
+package org.asynchttpclient.netty;
+
+import org.asynchttpclient.DefaultAsyncHttpClient;
+import org.asynchttpclient.DefaultAsyncHttpClientConfig;
+import org.asynchttpclient.RequestBuilder;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.SocketException;
+import java.util.Arrays;
+import java.util.concurrent.Exchanger;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
+import java.util.function.Consumer;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.not;
+import static org.testng.Assert.assertTrue;
+
+public class NettyConnectionResetByPeerTest {
+
+ private String resettingServerAddress;
+
+ @BeforeTest
+ public void setUp() {
+ resettingServerAddress = createResettingServer();
+ }
+
+ @Test
+ public void testAsyncHttpClientConnectionResetByPeer() throws InterruptedException {
+ try {
+ DefaultAsyncHttpClientConfig config = new DefaultAsyncHttpClientConfig.Builder()
+ .setRequestTimeout(1500)
+ .build();
+ new DefaultAsyncHttpClient(config).executeRequest(
+ new RequestBuilder("GET").setUrl(resettingServerAddress)
+ )
+ .get();
+ } catch (ExecutionException e) {
+ Throwable ex = e.getCause();
+ assertThat(ex, is(instanceOf(IOException.class)));
+ }
+ }
+
+ private static String createResettingServer() {
+ return createServer(sock -> {
+ try (Socket socket = sock) {
+ socket.setSoLinger(true, 0);
+ InputStream inputStream = socket.getInputStream();
+ //to not eliminate read
+ OutputStream os = new OutputStream() {
+ @Override
+ public void write(int b) {
+ // Do nothing
+ }
+ };
+ os.write(startRead(inputStream));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ });
+ }
+
+ private static String createServer(Consumer<Socket> handler) {
+ Exchanger<Integer> portHolder = new Exchanger<>();
+ Thread t = new Thread(() -> {
+ try (ServerSocket ss = new ServerSocket(0)) {
+ portHolder.exchange(ss.getLocalPort());
+ while (true) {
+ handler.accept(ss.accept());
+ }
+ } catch (Exception e) {
+ if (e instanceof InterruptedException) {
+ Thread.currentThread()
+ .interrupt();
+ }
+ throw new RuntimeException(e);
+ }
+ });
+ t.setDaemon(true);
+ t.start();
+ return tryGetAddress(portHolder);
+ }
+
+ private static String tryGetAddress(Exchanger<Integer> portHolder) {
+ try {
+ return "http://localhost:" + portHolder.exchange(0);
+ } catch (InterruptedException e) {
+ Thread.currentThread()
+ .interrupt();
+ throw new RuntimeException(e);
+ }
+ }
+
+ private static byte[] startRead(InputStream inputStream) throws IOException {
+ byte[] buffer = new byte[4];
+ int length = inputStream.read(buffer);
+ return Arrays.copyOf(buffer, length);
+ }
+
+}
=====================================
client/src/test/java/org/asynchttpclient/proxy/CustomHeaderProxyTest.java
=====================================
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2010-2012 Sonatype, Inc. All rights reserved.
+ *
+ * This program is licensed to you under the Apache License Version 2.0,
+ * and you may not use this file except in compliance with the Apache License Version 2.0.
+ * You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the Apache License Version 2.0 is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
+ */
+package org.asynchttpclient.proxy;
+
+import io.netty.handler.codec.http.DefaultHttpHeaders;
+import org.asynchttpclient.AbstractBasicTest;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.AsyncHttpClientConfig;
+import org.asynchttpclient.Response;
+import org.asynchttpclient.request.body.generator.ByteArrayBodyGenerator;
+import org.asynchttpclient.test.EchoHandler;
+import org.asynchttpclient.util.HttpConstants;
+import org.eclipse.jetty.proxy.ConnectHandler;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+import static org.asynchttpclient.Dsl.*;
+import static org.asynchttpclient.test.TestUtils.*;
+import static org.testng.Assert.assertEquals;
+
+/**
+ * Proxy usage tests.
+ */
+public class CustomHeaderProxyTest extends AbstractBasicTest {
+
+ private Server server2;
+
+ private final String customHeaderName = "Custom-Header";
+ private final String customHeaderValue = "Custom-Value";
+
+ public AbstractHandler configureHandler() throws Exception {
+ return new ProxyHandler(customHeaderName, customHeaderValue);
+ }
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpGlobal() throws Exception {
+ server = new Server();
+ ServerConnector connector = addHttpConnector(server);
+ server.setHandler(configureHandler());
+ server.start();
+ port1 = connector.getLocalPort();
+
+ server2 = new Server();
+ ServerConnector connector2 = addHttpsConnector(server2);
+ server2.setHandler(new EchoHandler());
+ server2.start();
+ port2 = connector2.getLocalPort();
+
+ logger.info("Local HTTP server started successfully");
+ }
+
+ @AfterClass(alwaysRun = true)
+ public void tearDownGlobal() throws Exception {
+ server.stop();
+ server2.stop();
+ }
+
+ @Test
+ public void testHttpProxy() throws Exception {
+ AsyncHttpClientConfig config = config()
+ .setFollowRedirect(true)
+ .setProxyServer(
+ proxyServer("localhost", port1)
+ .setCustomHeaders((req) -> new DefaultHttpHeaders().add(customHeaderName, customHeaderValue))
+ .build()
+ )
+ .setUseInsecureTrustManager(true)
+ .build();
+ try (AsyncHttpClient asyncHttpClient = asyncHttpClient(config)) {
+ Response r = asyncHttpClient.executeRequest(post(getTargetUrl2()).setBody(new ByteArrayBodyGenerator(LARGE_IMAGE_BYTES))).get();
+ assertEquals(r.getStatusCode(), 200);
+ }
+ }
+
+ public static class ProxyHandler extends ConnectHandler {
+ String customHeaderName;
+ String customHeaderValue;
+
+ public ProxyHandler(String customHeaderName, String customHeaderValue) {
+ this.customHeaderName = customHeaderName;
+ this.customHeaderValue = customHeaderValue;
+ }
+
+ @Override
+ public void handle(String s, Request r, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ if (HttpConstants.Methods.CONNECT.equalsIgnoreCase(request.getMethod())) {
+ if (request.getHeader(customHeaderName).equals(customHeaderValue)) {
+ response.setStatus(HttpServletResponse.SC_OK);
+ super.handle(s, r, request, response);
+ } else {
+ response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+ r.setHandled(true);
+ }
+ } else {
+ super.handle(s, r, request, response);
+ }
+ }
+ }
+}
=====================================
debian/changelog
=====================================
@@ -1,3 +1,10 @@
+async-http-client (2.12.3-1) unstable; urgency=medium
+
+ * New upstream release
+ * Standards-Version updated to 4.6.0.1
+
+ -- Emmanuel Bourg <ebourg at apache.org> Sat, 18 Sep 2021 10:05:00 +0200
+
async-http-client (2.12.2-1) unstable; urgency=medium
* New upstream release
=====================================
debian/control
=====================================
@@ -14,7 +14,7 @@ Build-Depends:
libslf4j-java,
maven-debian-helper (>= 2.2),
libhamcrest-java
-Standards-Version: 4.5.1
+Standards-Version: 4.6.0.1
Rules-Requires-Root: no
Vcs-Git: https://salsa.debian.org/java-team/async-http-client.git
Vcs-Browser: https://salsa.debian.org/java-team/async-http-client
=====================================
example/pom.xml
=====================================
@@ -2,7 +2,7 @@
<parent>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client-project</artifactId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>async-http-client-example</artifactId>
=====================================
extras/guava/pom.xml
=====================================
@@ -2,7 +2,7 @@
<parent>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client-extras-parent</artifactId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>async-http-client-extras-guava</artifactId>
=====================================
extras/jdeferred/pom.xml
=====================================
@@ -18,7 +18,7 @@
<parent>
<artifactId>async-http-client-extras-parent</artifactId>
<groupId>org.asynchttpclient</groupId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<artifactId>async-http-client-extras-jdeferred</artifactId>
<name>Asynchronous Http Client JDeferred Extras</name>
=====================================
extras/pom.xml
=====================================
@@ -2,7 +2,7 @@
<parent>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client-project</artifactId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>async-http-client-extras-parent</artifactId>
=====================================
extras/registry/pom.xml
=====================================
@@ -2,7 +2,7 @@
<parent>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client-extras-parent</artifactId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>async-http-client-extras-registry</artifactId>
=====================================
extras/retrofit2/pom.xml
=====================================
@@ -4,7 +4,7 @@
<parent>
<artifactId>async-http-client-extras-parent</artifactId>
<groupId>org.asynchttpclient</groupId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<artifactId>async-http-client-extras-retrofit2</artifactId>
=====================================
extras/rxjava/pom.xml
=====================================
@@ -3,7 +3,7 @@
<parent>
<artifactId>async-http-client-extras-parent</artifactId>
<groupId>org.asynchttpclient</groupId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<artifactId>async-http-client-extras-rxjava</artifactId>
<name>Asynchronous Http Client RxJava Extras</name>
=====================================
extras/rxjava2/pom.xml
=====================================
@@ -3,7 +3,7 @@
<parent>
<artifactId>async-http-client-extras-parent</artifactId>
<groupId>org.asynchttpclient</groupId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<artifactId>async-http-client-extras-rxjava2</artifactId>
<name>Asynchronous Http Client RxJava2 Extras</name>
=====================================
extras/simple/pom.xml
=====================================
@@ -3,7 +3,7 @@
<parent>
<artifactId>async-http-client-extras-parent</artifactId>
<groupId>org.asynchttpclient</groupId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<artifactId>async-http-client-extras-simple</artifactId>
<name>Asynchronous Http Simple Client</name>
=====================================
extras/typesafeconfig/pom.xml
=====================================
@@ -4,7 +4,7 @@
<parent>
<artifactId>async-http-client-extras-parent</artifactId>
<groupId>org.asynchttpclient</groupId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<artifactId>async-http-client-extras-typesafe-config</artifactId>
=====================================
netty-utils/pom.xml
=====================================
@@ -2,7 +2,7 @@
<parent>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client-project</artifactId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>async-http-client-netty-utils</artifactId>
=====================================
pom.xml
=====================================
@@ -4,7 +4,7 @@
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client-project</artifactId>
- <version>2.12.2</version>
+ <version>2.12.3</version>
<packaging>pom</packaging>
<name>Asynchronous Http Client Project</name>
@@ -34,7 +34,7 @@
<connection>scm:git:git at github.com:AsyncHttpClient/async-http-client.git</connection>
<developerConnection>scm:git:git at github.com:AsyncHttpClient/async-http-client.git</developerConnection>
<url>https://github.com/AsyncHttpClient/async-http-client/tree/master</url>
- <tag>async-http-client-project-2.12.2</tag>
+ <tag>async-http-client-project-2.12.3</tag>
</scm>
<distributionManagement>
@@ -466,7 +466,7 @@
<surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>
<source.property>1.8</source.property>
<target.property>1.8</target.property>
- <netty.version>4.1.53.Final</netty.version>
+ <netty.version>4.1.60.Final</netty.version>
<slf4j.version>1.7.30</slf4j.version>
<reactive-streams.version>1.0.3</reactive-streams.version>
<activation.version>1.2.2</activation.version>
View it on GitLab: https://salsa.debian.org/java-team/async-http-client/-/compare/d54316a49497cd20e4da30760716634de9db6c61...5c0dd2367890167815c82ac9512fbe508abb7df6
--
View it on GitLab: https://salsa.debian.org/java-team/async-http-client/-/compare/d54316a49497cd20e4da30760716634de9db6c61...5c0dd2367890167815c82ac9512fbe508abb7df6
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20210918/fc4eecb4/attachment.htm>
More information about the pkg-java-commits
mailing list