Skip to content

Commit 957ae28

Browse files
author
zhanq
committed
fix hmos.param(intent), support Feign.Setting(Retryer and Options), update version to 5.1.14-customize.
1 parent 9634775 commit 957ae28

11 files changed

Lines changed: 169 additions & 100 deletions

File tree

README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
## 1. 集成
66
引入sdk包
77
```xml
8-
<!--以5.1.13-customize版本为例-->
8+
<!--以5.1.14-customize版本为例-->
99
<dependencies>
1010
<!-- jiguang-sdk -->
1111
<dependency>
1212
<groupId>io.github.jpush</groupId>
1313
<artifactId>jiguang-sdk</artifactId>
14-
<version>5.1.13-customize</version>
14+
<version>5.1.14-customize</version>
1515
</dependency>
1616
</dependencies>
1717
```
@@ -66,21 +66,21 @@
6666
.setAppKey(appKey)
6767
.setMasterSecret(masterSecret)
6868
.setLoggerLevel(Logger.Level.FULL)
69-
.build();
70-
71-
// 设置client
69+
.build();
70+
71+
// 其他可自定义演示
7272
okhttp3.OkHttpClient okHttpClient = new okhttp3.OkHttpClient().newBuilder()
73-
.proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy_host", proxy_port))) // set proxy
74-
.connectTimeout(5, TimeUnit.SECONDS) // set connect timeout
73+
// .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy_host", proxy_port))) // 可自定义代理,可选
7574
.build();
76-
OkHttpClient client =new OkHttpClient(okHttpClient);
77-
75+
7876
PushApi pushApi = new PushApi.Builder()
79-
.setClient(new OkHttpClient(client))
80-
.setHost(host)
81-
.setAppKey(appKey)
82-
.setMasterSecret(masterSecret)
83-
.setLoggerLevel(Logger.Level.FULL)
77+
.setClient(new OkHttpClient(okHttpClient)) // sdk默认使用的feign-okhttp,可自定义,可选
78+
.setOptions(new Request.Options(10, TimeUnit.SECONDS, 10, TimeUnit.SECONDS, false)) // 可自定义超时参数,可选
79+
.setRetryer(new Retryer.Default(10, 10, 10)) // 可自定义重试参数,可选
80+
.setLoggerLevel(Logger.Level.FULL) // 可自定义日志打印级别,可选
81+
.setHost(host) // 必填
82+
.setAppKey(appKey) // 必填
83+
.setMasterSecret(masterSecret) // 必填
8484
.build();
8585
```
8686
使用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.13-customize</version>
16+
<version>5.1.14-customize</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.13-customize</version>
29+
<version>5.1.14-customize</version>
3030
</dependency>
3131
<!-- lombok -->
3232
<dependency>

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

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22

33
import cn.jiguang.sdk.api.*;
44
import feign.Logger;
5-
import feign.okhttp.OkHttpClient;
65
import lombok.extern.slf4j.Slf4j;
7-
import org.springframework.beans.factory.annotation.Qualifier;
86
import org.springframework.beans.factory.annotation.Value;
97
import org.springframework.context.annotation.Bean;
108
import org.springframework.context.annotation.Configuration;
119

12-
import java.util.concurrent.TimeUnit;
10+
import java.net.InetSocketAddress;
11+
import java.net.Proxy;
1312

1413
@Slf4j
1514
@Configuration
@@ -24,27 +23,21 @@ public class JiguangApiConfig {
2423
@Value("${jiguang.api.master-secret}")
2524
private String masterSecret;
2625

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

40-
@Bean
41-
public PushApi pushApi(@Qualifier("okHttpClient") OkHttpClient okHttpClient) {
4233
return new PushApi.Builder()
43-
.setHost(host)
44-
.setClient(okHttpClient) // 如果不配置client,则使用默认的okHttpClient
45-
.setAppKey(appKey)
46-
.setMasterSecret(masterSecret)
47-
.setLoggerLevel(Logger.Level.FULL)
34+
// .setClient(new OkHttpClient(okHttpClient)) // sdk默认使用的feign-okhttp,可自定义,可选
35+
// .setOptions(new Request.Options(10, TimeUnit.SECONDS, 60, TimeUnit.SECONDS, true)) // 可自定义超时参数,可选
36+
// .setRetryer(new Retryer.Default(100, SECONDS.toMillis(1), 5)) // 可自定义重试参数,可选
37+
// .setLoggerLevel(Logger.Level.FULL) // 可自定义日志打印级别,可选
38+
.setHost(host) // 必填
39+
.setAppKey(appKey) // 必填
40+
.setMasterSecret(masterSecret) // 必填
4841
.build();
4942
}
5043

jiguang-sdk/pom.xml

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

1414
<groupId>io.github.jpush</groupId>
1515
<artifactId>jiguang-sdk</artifactId>
16-
<version>5.1.13-customize</version>
16+
<version>5.1.14-customize</version>
1717
<packaging>jar</packaging>
1818

1919
<properties>

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

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@
66
import cn.jiguang.sdk.enums.platform.Platform;
77
import com.fasterxml.jackson.databind.ObjectMapper;
88
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
9-
import feign.Client;
10-
import feign.Feign;
11-
import feign.Logger;
9+
import feign.*;
1210
import feign.auth.BasicAuthRequestInterceptor;
1311
import feign.jackson.JacksonDecoder;
1412
import feign.jackson.JacksonEncoder;
15-
import feign.okhttp.OkHttpClient;
1613
import feign.slf4j.Slf4jLogger;
1714
import lombok.NonNull;
1815

@@ -81,9 +78,10 @@ public void setWebDevice(String registrationId, WebDeviceSetParam param) {
8178
}
8279

8380
public static class Builder {
84-
85-
private Client client = new OkHttpClient();
86-
private String host;
81+
private Client client;
82+
private Request.Options options;
83+
private Retryer retryer;
84+
private String host = "https://device.jpush.cn";
8785
private String appKey;
8886
private String masterSecret;
8987
private Logger.Level loggerLevel = Logger.Level.BASIC;
@@ -93,6 +91,16 @@ public Builder setClient(@NonNull Client client) {
9391
return this;
9492
}
9593

94+
public Builder setOptions(@NonNull Request.Options options) {
95+
this.options = options;
96+
return this;
97+
}
98+
99+
public Builder setRetryer(@NonNull Retryer retryer) {
100+
this.retryer = retryer;
101+
return this;
102+
}
103+
96104
public Builder setHost(@NonNull String host) {
97105
this.host = host;
98106
return this;
@@ -116,17 +124,23 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
116124
public DeviceApi build() {
117125
ObjectMapper objectMapper = new ObjectMapper();
118126
objectMapper.registerModule(new JavaTimeModule());
119-
DeviceClient deviceClient = Feign.builder()
120-
.client(client)
127+
Feign.Builder builder = Feign.builder()
121128
.requestInterceptor(new BasicAuthRequestInterceptor(appKey, masterSecret))
122129
.encoder(new JacksonEncoder(objectMapper))
123130
.decoder(new JacksonDecoder(objectMapper))
124131
.errorDecoder(new ApiErrorDecoder())
125132
.logger(new Slf4jLogger())
126-
.logLevel(loggerLevel)
127-
.target(DeviceClient.class, host);
128-
return new DeviceApi(deviceClient);
133+
.logLevel(loggerLevel);
134+
if (client != null) {
135+
builder.client(client);
136+
}
137+
if (options != null) {
138+
builder.options(options);
139+
}
140+
if (retryer != null) {
141+
builder.retryer(retryer);
142+
}
143+
return new DeviceApi(builder.target(DeviceClient.class, host));
129144
}
130145
}
131-
132146
}

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

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@
55
import cn.jiguang.sdk.codec.ApiErrorDecoder;
66
import com.fasterxml.jackson.databind.ObjectMapper;
77
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
8-
import feign.Client;
9-
import feign.Feign;
10-
import feign.Logger;
8+
import feign.*;
119
import feign.auth.BasicAuthRequestInterceptor;
1210
import feign.jackson.JacksonDecoder;
1311
import feign.jackson.JacksonEncoder;
14-
import feign.okhttp.OkHttpClient;
1512
import feign.slf4j.Slf4jLogger;
1613
import lombok.NonNull;
1714

@@ -48,7 +45,9 @@ public GeofenceGetOutlineResult getOutlineResult() {
4845
}
4946

5047
public static class Builder {
51-
private Client client = new OkHttpClient();
48+
private Client client;
49+
private Request.Options options;
50+
private Retryer retryer;
5251
private String host;
5352
private String appKey;
5453
private String masterSecret;
@@ -59,6 +58,16 @@ public Builder setClient(@NonNull Client client) {
5958
return this;
6059
}
6160

61+
public Builder setOptions(@NonNull Request.Options options) {
62+
this.options = options;
63+
return this;
64+
}
65+
66+
public Builder setRetryer(@NonNull Retryer retryer) {
67+
this.retryer = retryer;
68+
return this;
69+
}
70+
6271
public Builder setHost(@NonNull String host) {
6372
this.host = host;
6473
return this;
@@ -82,16 +91,23 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
8291
public GeofenceApi build() {
8392
ObjectMapper objectMapper = new ObjectMapper();
8493
objectMapper.registerModule(new JavaTimeModule());
85-
GeofenceClient pushClient = Feign.builder()
86-
.client(client)
94+
Feign.Builder builder = Feign.builder()
8795
.requestInterceptor(new BasicAuthRequestInterceptor(appKey, masterSecret))
8896
.encoder(new JacksonEncoder(objectMapper))
8997
.decoder(new JacksonDecoder(objectMapper))
9098
.errorDecoder(new ApiErrorDecoder())
9199
.logger(new Slf4jLogger())
92-
.logLevel(loggerLevel)
93-
.target(GeofenceClient.class, host);
94-
return new GeofenceApi(pushClient);
100+
.logLevel(loggerLevel);
101+
if (client != null) {
102+
builder.client(client);
103+
}
104+
if (options != null) {
105+
builder.options(options);
106+
}
107+
if (retryer != null) {
108+
builder.retryer(retryer);
109+
}
110+
return new GeofenceApi(builder.target(GeofenceClient.class, host));
95111
}
96112
}
97113

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

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,10 @@
99
import cn.jiguang.sdk.codec.ApiErrorDecoder;
1010
import com.fasterxml.jackson.databind.ObjectMapper;
1111
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
12-
import feign.Client;
13-
import feign.Feign;
14-
import feign.Logger;
12+
import feign.*;
1513
import feign.auth.BasicAuthRequestInterceptor;
1614
import feign.jackson.JacksonDecoder;
1715
import feign.jackson.JacksonEncoder;
18-
import feign.okhttp.OkHttpClient;
1916
import feign.slf4j.Slf4jLogger;
2017
import lombok.NonNull;
2118

@@ -54,8 +51,9 @@ public PushResult push(Object param) {
5451
}
5552

5653
public static class Builder {
57-
58-
private Client client = new OkHttpClient();
54+
private Client client;
55+
private Request.Options options;
56+
private Retryer retryer;
5957
private String host;
6058
private String appKey;
6159
private String masterSecret;
@@ -66,6 +64,16 @@ public Builder setClient(@NonNull Client client) {
6664
return this;
6765
}
6866

67+
public Builder setOptions(@NonNull Request.Options options) {
68+
this.options = options;
69+
return this;
70+
}
71+
72+
public Builder setRetryer(@NonNull Retryer retryer) {
73+
this.retryer = retryer;
74+
return this;
75+
}
76+
6977
public Builder setHost(@NonNull String host) {
7078
this.host = host;
7179
return this;
@@ -89,16 +97,23 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
8997
public PushApi build() {
9098
ObjectMapper objectMapper = new ObjectMapper();
9199
objectMapper.registerModule(new JavaTimeModule());
92-
PushClient pushClient = Feign.builder()
93-
.client(client)
100+
Feign.Builder builder = Feign.builder()
94101
.requestInterceptor(new BasicAuthRequestInterceptor(appKey, masterSecret))
95102
.encoder(new JacksonEncoder(objectMapper))
96103
.decoder(new JacksonDecoder(objectMapper))
97104
.errorDecoder(new ApiErrorDecoder())
98105
.logger(new Slf4jLogger())
99-
.logLevel(loggerLevel)
100-
.target(PushClient.class, host);
101-
return new PushApi(pushClient);
106+
.logLevel(loggerLevel);
107+
if (client != null) {
108+
builder.client(client);
109+
}
110+
if (options != null) {
111+
builder.options(options);
112+
}
113+
if (retryer != null) {
114+
builder.retryer(retryer);
115+
}
116+
return new PushApi(builder.target(PushClient.class, host));
102117
}
103118
}
104119

0 commit comments

Comments
 (0)