Skip to content

Commit c855412

Browse files
committed
Fix for AsyncHttpClient#58 (Change default user-agent value to AsyncHttpClient).
1 parent 779070a commit c855412

File tree

8 files changed

+52
-13
lines changed

8 files changed

+52
-13
lines changed

api/src/main/java/com/ning/http/client/AsyncHttpClientConfig.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,13 @@
2424
import javax.net.ssl.HostnameVerifier;
2525
import javax.net.ssl.SSLContext;
2626
import javax.net.ssl.SSLEngine;
27+
import java.io.IOException;
28+
import java.io.InputStream;
2729
import java.security.GeneralSecurityException;
2830
import java.util.Collections;
2931
import java.util.LinkedList;
3032
import java.util.List;
33+
import java.util.Properties;
3134
import java.util.concurrent.ExecutorService;
3235
import java.util.concurrent.Executors;
3336
import java.util.concurrent.ScheduledExecutorService;
@@ -52,6 +55,27 @@
5255
public class AsyncHttpClientConfig {
5356

5457
protected final static String ASYNC_CLIENT = AsyncHttpClientConfig.class.getName() + ".";
58+
public final static String AHC_VERSION;
59+
60+
static {
61+
InputStream is = null;
62+
Properties prop = new Properties();
63+
try {
64+
is = AsyncHttpClientConfig.class.getResourceAsStream("version.properties");
65+
prop.load(is);
66+
} catch (IOException e) {
67+
e.printStackTrace();
68+
} finally {
69+
if (is != null) {
70+
try {
71+
is.close();
72+
} catch (IOException ignored) {
73+
74+
}
75+
}
76+
}
77+
AHC_VERSION = prop.getProperty("ahc.version", "UNKNOWN");
78+
}
5579

5680
protected int maxTotalConnections;
5781
protected int maxConnectionPerHost;
@@ -490,7 +514,7 @@ public static class Builder {
490514
private boolean redirectEnabled = Boolean.getBoolean(ASYNC_CLIENT + "defaultRedirectsEnabled");
491515
private int maxDefaultRedirects = Integer.getInteger(ASYNC_CLIENT + "defaultMaxRedirects", 5);
492516
private boolean compressionEnabled = Boolean.getBoolean(ASYNC_CLIENT + "compressionEnabled");
493-
private String userAgent = System.getProperty(ASYNC_CLIENT + "userAgent", "NING/1.0");
517+
private String userAgent = System.getProperty(ASYNC_CLIENT + "userAgent", "AsyncHttpClient/" + AHC_VERSION);
494518
private boolean useProxyProperties = Boolean.getBoolean(ASYNC_CLIENT + "useProxyProperties");
495519
private boolean allowPoolingConnection = true;
496520
private ScheduledExecutorService reaper = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors(), new ThreadFactory() {

api/src/main/java/com/ning/http/client/AsyncHttpClientConfigBean.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ void configureDefaults() {
5353
redirectEnabled = Boolean.getBoolean(ASYNC_CLIENT + "defaultRedirectsEnabled");
5454
maxDefaultRedirects = Integer.getInteger(ASYNC_CLIENT + "defaultMaxRedirects", 5);
5555
compressionEnabled = Boolean.getBoolean(ASYNC_CLIENT + "compressionEnabled");
56-
userAgent = System.getProperty(ASYNC_CLIENT + "userAgent", "NING/1.0");
56+
userAgent = System.getProperty(ASYNC_CLIENT + "userAgent", "AsyncHttpClient/" + AHC_VERSION);
5757

5858
boolean useProxyProperties = Boolean.getBoolean(ASYNC_CLIENT + "useProxyProperties");
5959
if (useProxyProperties) {

api/src/main/java/com/ning/http/client/providers/jdk/JDKAsyncHttpProvider.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,9 @@ private void configure(URI uri, HttpURLConnection urlConnection, Request request
547547
} else if (config.getUserAgent() != null) {
548548
urlConnection.setRequestProperty("User-Agent", config.getUserAgent());
549549
} else {
550-
urlConnection.setRequestProperty("User-Agent", AsyncHttpProviderUtils.constructUserAgent(JDKAsyncHttpProvider.class));
550+
urlConnection.setRequestProperty("User-Agent",
551+
AsyncHttpProviderUtils.constructUserAgent(JDKAsyncHttpProvider.class,
552+
config));
551553
}
552554

553555
if (request.getCookies() != null && !request.getCookies().isEmpty()) {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ahc.version=${pom.version}

api/src/main/java/com/ning/http/util/AsyncHttpProviderUtils.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
*/
1313
package com.ning.http.util;
1414

15+
import com.ning.http.client.AsyncHttpClientConfig;
1516
import com.ning.http.client.AsyncHttpProvider;
1617
import com.ning.http.client.ByteArrayPart;
1718
import com.ning.http.client.Cookie;
@@ -466,10 +467,11 @@ private static void add(StringBuilder sb, String name, int val) {
466467
sb.append((char) SEMICOLON);
467468
}
468469

469-
public static String constructUserAgent(Class<? extends AsyncHttpProvider> httpProvider) {
470-
StringBuffer b = new StringBuffer("AsyncHttpClient/1.0")
471-
.append(" ")
472-
.append("(")
470+
public static String constructUserAgent(Class<? extends AsyncHttpProvider> httpProvider,
471+
AsyncHttpClientConfig config) {
472+
return new StringBuffer(config.getUserAgent())
473+
.append(' ')
474+
.append('(')
473475
.append(httpProvider.getSimpleName())
474476
.append(" - ")
475477
.append(System.getProperty("os.name"))
@@ -479,8 +481,7 @@ public static String constructUserAgent(Class<? extends AsyncHttpProvider> httpP
479481
.append(System.getProperty("java.version"))
480482
.append(" - ")
481483
.append(Runtime.getRuntime().availableProcessors())
482-
.append(" core(s))");
483-
return b.toString();
484+
.append(" core(s))").toString();
484485
}
485486

486487
public static String parseCharset(String contentType) {

pom.xml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,15 @@
8989
</license>
9090
</licenses>
9191
<build>
92+
<resources>
93+
<resource>
94+
<filtering>true</filtering>
95+
<directory>src/main/java/</directory>
96+
<excludes>
97+
<exclude>**/*.java</exclude>
98+
</excludes>
99+
</resource>
100+
</resources>
92101
<extensions>
93102
<!-- Enabling the use of SSH -->
94103
<extension>
@@ -571,8 +580,8 @@
571580
</distMgmtSnapshotsUrl>
572581
<surefire.redirectTestOutputToFile>true
573582
</surefire.redirectTestOutputToFile>
574-
<source.property>1.5</source.property>
575-
<target.property>1.5</target.property>
583+
<source.property>1.6</source.property>
584+
<target.property>1.6</target.property>
576585
<surefire.version>2.12</surefire.version>
577586
</properties>
578587
</project>

providers/apache/src/main/java/com/ning/http/client/providers/apache/ApacheAsyncHttpProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ private HttpMethodBase createMethod(HttpClient client, Request request) throws I
377377
} else if (config.getUserAgent() != null) {
378378
method.setRequestHeader("User-Agent", config.getUserAgent());
379379
} else {
380-
method.setRequestHeader("User-Agent", AsyncHttpProviderUtils.constructUserAgent(ApacheAsyncHttpProvider.class));
380+
method.setRequestHeader("User-Agent", AsyncHttpProviderUtils.constructUserAgent(ApacheAsyncHttpProvider.class, config));
381381
}
382382

383383
if (config.isCompressionEnabled()) {

providers/netty/src/main/java/com/ning/http/client/providers/netty/NettyAsyncHttpProvider.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -715,7 +715,9 @@ private static HttpRequest construct(AsyncHttpClientConfig config,
715715
} else if (config.getUserAgent() != null) {
716716
nettyRequest.setHeader("User-Agent", config.getUserAgent());
717717
} else {
718-
nettyRequest.setHeader("User-Agent", AsyncHttpProviderUtils.constructUserAgent(NettyAsyncHttpProvider.class));
718+
nettyRequest.setHeader("User-Agent",
719+
AsyncHttpProviderUtils.constructUserAgent(NettyAsyncHttpProvider.class,
720+
config));
719721
}
720722

721723
if (!m.equals(HttpMethod.CONNECT)) {

0 commit comments

Comments
 (0)