Skip to content

Commit 36d09b7

Browse files
author
zhanq
committed
fix hmos.param(intent and display_foreground), support Feign.Setting(Retryer and Options), update version to 5.1.16.
1 parent 7200fde commit 36d09b7

File tree

11 files changed

+178
-89
lines changed

11 files changed

+178
-89
lines changed

README.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
## 1. 集成
1616
引入sdk包
1717
```xml
18-
<!--以5.1.15版本为例-->
18+
<!--以5.1.16版本为例-->
1919
<dependencies>
2020
<!-- jiguang-sdk -->
2121
<dependency>
2222
<groupId>io.github.jpush</groupId>
2323
<artifactId>jiguang-sdk</artifactId>
24-
<version>5.1.15</version>
24+
<version>5.1.16</version>
2525
</dependency>
2626
</dependencies>
2727
```
@@ -68,20 +68,21 @@
6868
GroupPushApi groupPushApi = new GroupPushApi.Builder()
6969
.setGroupKey(groupKey)
7070
.setGroupMasterSecret(groupMasterSecret)
71-
.setLoggerLevel(Logger.Level.FULL)
7271
.build();
73-
74-
// 设置client
72+
73+
74+
// 其他可自定义演示
7575
okhttp3.OkHttpClient okHttpClient = new okhttp3.OkHttpClient().newBuilder()
76-
.proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy_host", proxy_port))) // set proxy
77-
.connectTimeout(5, TimeUnit.SECONDS) // set connect timeout
76+
// .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy_host", proxy_port))) // 可自定义代理,可选
7877
.build();
79-
OkHttpClient client =new OkHttpClient(okHttpClient);
80-
78+
8179
PushApi pushApi = new PushApi.Builder()
82-
.setClient(new OkHttpClient(client))
83-
.setAppKey(appKey)
84-
.setMasterSecret(masterSecret)
80+
.setClient(new OkHttpClient(okHttpClient)) // sdk默认使用的feign-okhttp,可自定义,可选
81+
.setOptions(new Request.Options(10, TimeUnit.SECONDS, 10, TimeUnit.SECONDS, false)) // 可自定义超时参数,可选
82+
.setRetryer(new Retryer.Default(10, 10, 10)) // 可自定义重试参数,可选
83+
.setLoggerLevel(Logger.Level.FULL) // 可自定义日志打印级别,可选
84+
.setAppKey(appKey) // 必填
85+
.setMasterSecret(masterSecret) // 必填
8586
.build();
8687
```
8788
使用api示例

example-for-spring/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
<groupId>io.github.jpush</groupId>
1515
<artifactId>example-for-spring</artifactId>
16-
<version>5.1.15</version>
16+
<version>5.1.16</version>
1717

1818
<properties>
1919
<maven.compiler.source>8</maven.compiler.source>
@@ -26,7 +26,7 @@
2626
<dependency>
2727
<groupId>io.github.jpush</groupId>
2828
<artifactId>jiguang-sdk</artifactId>
29-
<version>5.1.15</version>
29+
<version>5.1.16</version>
3030
</dependency>
3131
<!-- lombok -->
3232
<dependency>

example-for-spring/src/main/java/cn/jiguang/app/config/JiguangApiConfig.java

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,20 @@
22

33
import cn.jiguang.sdk.api.*;
44
import feign.Logger;
5+
import feign.Request;
6+
import feign.Retryer;
57
import feign.okhttp.OkHttpClient;
68
import lombok.extern.slf4j.Slf4j;
7-
import org.springframework.beans.factory.annotation.Qualifier;
89
import org.springframework.beans.factory.annotation.Value;
910
import org.springframework.context.annotation.Bean;
1011
import org.springframework.context.annotation.Configuration;
1112

13+
import java.net.InetSocketAddress;
14+
import java.net.Proxy;
1215
import java.util.concurrent.TimeUnit;
1316

17+
import static java.util.concurrent.TimeUnit.SECONDS;
18+
1419
@Slf4j
1520
@Configuration
1621
public class JiguangApiConfig {
@@ -33,26 +38,20 @@ public class JiguangApiConfig {
3338
@Value("${jiguang.api.group-master-secret}")
3439
private String groupMasterSecret;
3540

36-
// sdk默认使用的feign-okhttp,下面是设置示例
37-
// 更多okhttp配置请参考:https://square.github.io/okhttp/5.x/okhttp/okhttp3/-ok-http-client/-builder/index.html
38-
@Bean("okHttpClient")
39-
public OkHttpClient okHttpClient() {
41+
@Bean
42+
public PushApi pushApi() {
4043
okhttp3.OkHttpClient okHttpClient = new okhttp3.OkHttpClient().newBuilder()
41-
// .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy_host", proxy_port))) // 设置代理,如果有需要
42-
.connectTimeout(5, TimeUnit.SECONDS) // 设置连接超时
44+
// 自定义proxy,其他设置参考https://square.github.io/okhttp/5.x/okhttp/okhttp3/-ok-http-client/-builder/index.html
45+
.proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy_host", 8000)))
4346
.build();
44-
OkHttpClient client = new OkHttpClient(okHttpClient);
45-
log.info("okHttpClient:{}", client);
46-
return client;
47-
}
4847

49-
@Bean
50-
public PushApi pushApi(@Qualifier("okHttpClient") OkHttpClient okHttpClient) {
5148
return new PushApi.Builder()
52-
.setClient(okHttpClient) // 如果不配置client,则使用默认的okHttpClient
53-
.setAppKey(appKey)
54-
.setMasterSecret(masterSecret)
55-
.setLoggerLevel(Logger.Level.FULL)
49+
// .setClient(new OkHttpClient(okHttpClient)) // sdk默认使用的feign-okhttp,可自定义,可选
50+
// .setOptions(new Request.Options(10, TimeUnit.SECONDS, 60, TimeUnit.SECONDS, true)) // 可自定义超时参数,可选
51+
// .setRetryer(new Retryer.Default(100, SECONDS.toMillis(1), 5)) // 可自定义重试参数,可选
52+
// .setLoggerLevel(Logger.Level.FULL) // 可自定义日志打印级别,可选
53+
.setAppKey(appKey) // 必填
54+
.setMasterSecret(masterSecret) // 必填
5655
.build();
5756
}
5857

jiguang-sdk/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
<parent>
88
<groupId>io.github.jpush</groupId>
99
<artifactId>jiguang-sdk-java</artifactId>
10-
<version>5.1.15</version>
10+
<version>5.1.16</version>
1111
<relativePath>../pom.xml</relativePath>
1212
</parent>
1313

1414
<artifactId>jiguang-sdk</artifactId>
15-
<version>5.1.15</version>
15+
<version>5.1.16</version>
1616
<packaging>jar</packaging>
1717

1818
<properties>

jiguang-sdk/src/main/java/cn/jiguang/sdk/api/AdminApi.java

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@
55
import cn.jiguang.sdk.codec.ApiDecoder;
66
import cn.jiguang.sdk.codec.ApiEncoder;
77
import cn.jiguang.sdk.codec.ApiErrorDecoder;
8-
import feign.Client;
9-
import feign.Feign;
10-
import feign.Logger;
8+
import feign.*;
119
import feign.auth.BasicAuthRequestInterceptor;
12-
import feign.okhttp.OkHttpClient;
1310
import feign.slf4j.Slf4jLogger;
1411
import lombok.NonNull;
1512

@@ -35,19 +32,31 @@ public CertificateUploadResult uploadCertificate(@NonNull String appKey, @NonNul
3532

3633
public static class Builder {
3734

38-
private Client client = new OkHttpClient();
35+
private Client client;
36+
private Request.Options options;
37+
private Retryer retryer;
3938
private String host = "https://admin.jpush.cn";
4039
private String devKey;
4140
private String devSecret;
4241
private Logger.Level loggerLevel = Logger.Level.BASIC;
4342

44-
public Builder setHost(@NonNull String host) {
45-
this.host = host;
43+
public Builder setClient(@NonNull Client client) {
44+
this.client = client;
4645
return this;
4746
}
4847

49-
public Builder setClient(@NonNull Client client) {
50-
this.client = client;
48+
public Builder setOptions(@NonNull Request.Options options) {
49+
this.options = options;
50+
return this;
51+
}
52+
53+
public Builder setRetryer(@NonNull Retryer retryer) {
54+
this.retryer = retryer;
55+
return this;
56+
}
57+
58+
public Builder setHost(@NonNull String host) {
59+
this.host = host;
5160
return this;
5261
}
5362

@@ -67,16 +76,23 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
6776
}
6877

6978
public AdminApi build() {
70-
AdminClient adminClient = Feign.builder()
71-
.client(client)
79+
Feign.Builder builder = Feign.builder()
7280
.requestInterceptor(new BasicAuthRequestInterceptor(devKey, devSecret))
7381
.encoder(new ApiEncoder())
7482
.decoder(new ApiDecoder())
7583
.errorDecoder(new ApiErrorDecoder())
7684
.logger(new Slf4jLogger())
77-
.logLevel(loggerLevel)
78-
.target(AdminClient.class, host);
79-
return new AdminApi(adminClient);
85+
.logLevel(loggerLevel);
86+
if (client != null) {
87+
builder.client(client);
88+
}
89+
if (options != null) {
90+
builder.options(options);
91+
}
92+
if (retryer != null) {
93+
builder.retryer(retryer);
94+
}
95+
return new AdminApi(builder.target(AdminClient.class, host));
8096
}
8197
}
8298

jiguang-sdk/src/main/java/cn/jiguang/sdk/api/DeviceApi.java

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@
66
import cn.jiguang.sdk.codec.ApiEncoder;
77
import cn.jiguang.sdk.codec.ApiErrorDecoder;
88
import cn.jiguang.sdk.enums.platform.Platform;
9-
import feign.Client;
10-
import feign.Feign;
11-
import feign.Logger;
9+
import feign.*;
1210
import feign.auth.BasicAuthRequestInterceptor;
13-
import feign.okhttp.OkHttpClient;
1411
import feign.slf4j.Slf4jLogger;
1512
import lombok.NonNull;
1613

@@ -82,7 +79,9 @@ public DeviceStatusGetResult getDeviceStatus(List<String> registrationIds) {
8279

8380
public static class Builder {
8481

85-
private Client client = new OkHttpClient();
82+
private Client client;
83+
private Request.Options options;
84+
private Retryer retryer;
8685
private String host = "https://device.jpush.cn";
8786
private String appKey;
8887
private String masterSecret;
@@ -93,6 +92,16 @@ public Builder setClient(@NonNull Client client) {
9392
return this;
9493
}
9594

95+
public Builder setOptions(@NonNull Request.Options options) {
96+
this.options = options;
97+
return this;
98+
}
99+
100+
public Builder setRetryer(@NonNull Retryer retryer) {
101+
this.retryer = retryer;
102+
return this;
103+
}
104+
96105
public Builder setHost(@NonNull String host) {
97106
this.host = host;
98107
return this;
@@ -114,16 +123,23 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
114123
}
115124

116125
public DeviceApi build() {
117-
DeviceClient deviceClient = Feign.builder()
118-
.client(client)
126+
Feign.Builder builder = Feign.builder()
119127
.requestInterceptor(new BasicAuthRequestInterceptor(appKey, masterSecret))
120128
.encoder(new ApiEncoder())
121129
.decoder(new ApiDecoder())
122130
.errorDecoder(new ApiErrorDecoder())
123131
.logger(new Slf4jLogger())
124-
.logLevel(loggerLevel)
125-
.target(DeviceClient.class, host);
126-
return new DeviceApi(deviceClient);
132+
.logLevel(loggerLevel);
133+
if (client != null) {
134+
builder.client(client);
135+
}
136+
if (options != null) {
137+
builder.options(options);
138+
}
139+
if (retryer != null) {
140+
builder.retryer(retryer);
141+
}
142+
return new DeviceApi(builder.target(DeviceClient.class, host));
127143
}
128144
}
129145

jiguang-sdk/src/main/java/cn/jiguang/sdk/api/GroupPushApi.java

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@
66
import cn.jiguang.sdk.codec.ApiDecoder;
77
import cn.jiguang.sdk.codec.ApiEncoder;
88
import cn.jiguang.sdk.codec.ApiErrorDecoder;
9-
import feign.Client;
10-
import feign.Feign;
11-
import feign.Logger;
9+
import feign.*;
1210
import feign.auth.BasicAuthRequestInterceptor;
13-
import feign.okhttp.OkHttpClient;
1411
import feign.slf4j.Slf4jLogger;
1512
import lombok.NonNull;
1613

@@ -28,7 +25,9 @@ public GroupPushSendResult send(@NonNull GroupPushSendParam param) {
2825

2926
public static class Builder {
3027

31-
private Client client = new OkHttpClient();
28+
private Client client;
29+
private Request.Options options;
30+
private Retryer retryer;
3231
private String host = "https://api.jpush.cn";
3332
private String groupKey;
3433
private String groupMasterSecret;
@@ -39,6 +38,16 @@ public Builder setClient(@NonNull Client client) {
3938
return this;
4039
}
4140

41+
public Builder setOptions(@NonNull Request.Options options) {
42+
this.options = options;
43+
return this;
44+
}
45+
46+
public Builder setRetryer(@NonNull Retryer retryer) {
47+
this.retryer = retryer;
48+
return this;
49+
}
50+
4251
public Builder setHost(@NonNull String host) {
4352
this.host = host;
4453
return this;
@@ -60,16 +69,23 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
6069
}
6170

6271
public GroupPushApi build() {
63-
GroupPushClient groupPushClient = Feign.builder()
64-
.client(client)
72+
Feign.Builder builder = Feign.builder()
6573
.requestInterceptor(new BasicAuthRequestInterceptor("group-" + groupKey, groupMasterSecret))
6674
.encoder(new ApiEncoder())
6775
.decoder(new ApiDecoder())
6876
.errorDecoder(new ApiErrorDecoder())
6977
.logger(new Slf4jLogger())
70-
.logLevel(loggerLevel)
71-
.target(GroupPushClient.class, host);
72-
return new GroupPushApi(groupPushClient);
78+
.logLevel(loggerLevel);
79+
if (client != null) {
80+
builder.client(client);
81+
}
82+
if (options != null) {
83+
builder.options(options);
84+
}
85+
if (retryer != null) {
86+
builder.retryer(retryer);
87+
}
88+
return new GroupPushApi(builder.target(GroupPushClient.class, host));
7389
}
7490
}
7591

0 commit comments

Comments
 (0)