File tree Expand file tree Collapse file tree 4 files changed +63
-0
lines changed
main/java/org/zendesk/client/v2
test/java/org/zendesk/client/v2 Expand file tree Collapse file tree 4 files changed +63
-0
lines changed Original file line number Diff line number Diff line change 256
256
<version >3.3.0</version >
257
257
<configuration >
258
258
<archive >
259
+ <manifest >
260
+ <addDefaultImplementationEntries >true</addDefaultImplementationEntries >
261
+ </manifest >
259
262
<manifestEntries >
260
263
<Automatic-Module-Name >org.zendesk.client.v2</Automatic-Module-Name >
261
264
</manifestEntries >
Original file line number Diff line number Diff line change
1
+ package org .zendesk .client .v2 ;
2
+
3
+ import java .util .regex .Pattern ;
4
+
5
+ public class DefaultUserAgent {
6
+ private static final Pattern VERSION_PATTERN = Pattern .compile ("[\\ w-.]+" );
7
+ private final String userAgent ;
8
+
9
+ public DefaultUserAgent () {
10
+ this (DefaultUserAgent .class .getPackage ().getImplementationVersion ());
11
+ }
12
+
13
+ public DefaultUserAgent (String version ) {
14
+ StringBuilder sb = new StringBuilder ("zendesk-java-client" );
15
+ if (version != null && VERSION_PATTERN .matcher (version ).matches ()) {
16
+ sb .append ('/' ).append (version );
17
+ }
18
+ this .userAgent = sb .toString ();
19
+ }
20
+
21
+ public String toString () {
22
+ return this .userAgent ;
23
+ }
24
+ }
Original file line number Diff line number Diff line change 107
107
*/
108
108
public class Zendesk implements Closeable {
109
109
private static final String JSON = "application/json; charset=UTF-8" ;
110
+ private static final String USER_AGENT_HEADER = "User-Agent" ;
110
111
private static final DefaultAsyncHttpClientConfig DEFAULT_ASYNC_HTTP_CLIENT_CONFIG =
111
112
new DefaultAsyncHttpClientConfig .Builder ().setFollowRedirect (true ).build ();
112
113
private final boolean closeClient ;
@@ -176,6 +177,7 @@ private Zendesk(
176
177
}
177
178
this .realm = null ;
178
179
}
180
+ headers .putIfAbsent (USER_AGENT_HEADER , new DefaultUserAgent ().toString ());
179
181
this .headers = Collections .unmodifiableMap (headers );
180
182
this .mapper = createMapper ();
181
183
}
@@ -194,6 +196,7 @@ private Zendesk(
194
196
throw new IllegalStateException (
195
197
"Cannot specify token or password without specifying username" );
196
198
}
199
+ headers .putIfAbsent (USER_AGENT_HEADER , new DefaultUserAgent ().toString ());
197
200
this .headers = Collections .unmodifiableMap (headers );
198
201
199
202
this .mapper = createMapper ();
Original file line number Diff line number Diff line change
1
+ package org .zendesk .client .v2 ;
2
+
3
+ import static org .assertj .core .api .Assertions .assertThat ;
4
+
5
+ import org .junit .Test ;
6
+
7
+ public class DefaultUserAgentTest {
8
+ @ Test
9
+ public void testDefaultVersion () {
10
+ assertThat (new DefaultUserAgent ().toString ()).startsWith ("zendesk-java-client" );
11
+ }
12
+
13
+ @ Test
14
+ public void testNullVersion () {
15
+ assertThat (new DefaultUserAgent (null ).toString ()).isEqualTo ("zendesk-java-client" );
16
+ }
17
+
18
+ @ Test
19
+ public void testInvalidVersion () {
20
+ assertThat (new DefaultUserAgent ("???" ).toString ()).isEqualTo ("zendesk-java-client" );
21
+ }
22
+
23
+ @ Test
24
+ public void testSnapshotVersion () {
25
+ assertThat (new DefaultUserAgent ("0.1.2-SNAPSHOT" ).toString ())
26
+ .isEqualTo ("zendesk-java-client/0.1.2-SNAPSHOT" );
27
+ }
28
+
29
+ @ Test
30
+ public void testReleaseVersion () {
31
+ assertThat (new DefaultUserAgent ("0.1.2" ).toString ()).isEqualTo ("zendesk-java-client/0.1.2" );
32
+ }
33
+ }
You can’t perform that action at this time.
0 commit comments