diff --git a/README.md b/README.md
index abccdacd..8072d959 100644
--- a/README.md
+++ b/README.md
@@ -306,6 +306,7 @@
> 一下片断来自项目代码里面的文件:example / cn.jpush.api.examples.ClientExample
+* 配置的SSLVersion表示指定至少支持的协议版本,也可能支持其他多个协议版本,最终支持的协议版本列表取决于JRE和运行环境
```Java
public static void testCustomClient() {
ClientConfig config = ClientConfig.getInstance();
diff --git a/pom.xml b/pom.xml
index ba0516ac..502745bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
cn.jpush.api
jpush-client
- 3.2.8
+ 3.2.9-SNAPSHOT
jar
https://github.com/jpush/jpush-api-java-client
JPush API Java Client
diff --git a/src/main/java/cn/jpush/api/common/resp/BaseResult.java b/src/main/java/cn/jpush/api/common/resp/BaseResult.java
index c54c67b6..ab1837c3 100644
--- a/src/main/java/cn/jpush/api/common/resp/BaseResult.java
+++ b/src/main/java/cn/jpush/api/common/resp/BaseResult.java
@@ -3,14 +3,18 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
-public abstract class BaseResult implements IRateLimiting {
+import java.io.Serializable;
+
+public abstract class BaseResult implements IRateLimiting, Serializable {
public static final int ERROR_CODE_NONE = -1;
public static final int ERROR_CODE_OK = 0;
public static final String ERROR_MESSAGE_NONE = "None error message.";
protected static final int RESPONSE_OK = 200;
protected static Gson _gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
-
+
+ private static final long serialVersionUID = 4810924314887130678L;
+
private ResponseWrapper responseWrapper;
public void setResponseWrapper(ResponseWrapper responseWrapper) {
diff --git a/src/main/java/cn/jpush/api/common/resp/ResponseWrapper.java b/src/main/java/cn/jpush/api/common/resp/ResponseWrapper.java
index 40fd1d9d..81a193c6 100644
--- a/src/main/java/cn/jpush/api/common/resp/ResponseWrapper.java
+++ b/src/main/java/cn/jpush/api/common/resp/ResponseWrapper.java
@@ -9,10 +9,14 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class ResponseWrapper {
+import java.io.Serializable;
+
+public class ResponseWrapper implements Serializable {
+
private static final Logger LOG = LoggerFactory.getLogger(ResponseWrapper.class);
private static final int RESPONSE_CODE_NONE = -1;
-
+ private static final long serialVersionUID = -4227962073448507865L;
+
private static Gson _gson = new Gson();
private static JsonParser jsonParser = new JsonParser();
diff --git a/src/main/java/cn/jpush/api/device/OnlineStatus.java b/src/main/java/cn/jpush/api/device/OnlineStatus.java
index 3a28fc7f..7b2fcdba 100644
--- a/src/main/java/cn/jpush/api/device/OnlineStatus.java
+++ b/src/main/java/cn/jpush/api/device/OnlineStatus.java
@@ -1,9 +1,13 @@
package cn.jpush.api.device;
-public class OnlineStatus {
+import java.io.Serializable;
- Boolean online;
- String last_online_time;
+public class OnlineStatus implements Serializable {
+
+ private static final long serialVersionUID = -5436655826293828109L;
+
+ private Boolean online;
+ private String last_online_time;
public Boolean getOnline() {
return online;
diff --git a/src/main/java/cn/jpush/api/device/TagAliasResult.java b/src/main/java/cn/jpush/api/device/TagAliasResult.java
index 569fff1e..5dd15cce 100644
--- a/src/main/java/cn/jpush/api/device/TagAliasResult.java
+++ b/src/main/java/cn/jpush/api/device/TagAliasResult.java
@@ -1,13 +1,13 @@
package cn.jpush.api.device;
-import java.util.List;
-
import cn.jpush.api.common.resp.BaseResult;
-
import com.google.gson.annotations.Expose;
+import java.util.List;
+
public class TagAliasResult extends BaseResult {
+ private static final long serialVersionUID = -4765083329495728276L;
@Expose public List tags;
@Expose public String alias;
diff --git a/src/main/java/cn/jpush/api/device/TagListResult.java b/src/main/java/cn/jpush/api/device/TagListResult.java
index 426ee47d..86a457fb 100644
--- a/src/main/java/cn/jpush/api/device/TagListResult.java
+++ b/src/main/java/cn/jpush/api/device/TagListResult.java
@@ -1,14 +1,14 @@
package cn.jpush.api.device;
-import java.util.ArrayList;
-import java.util.List;
-
import cn.jpush.api.common.resp.BaseResult;
-
import com.google.gson.annotations.Expose;
+import java.util.ArrayList;
+import java.util.List;
+
public class TagListResult extends BaseResult {
-
+
+ private static final long serialVersionUID = -5395153728332839175L;
@Expose public List tags = new ArrayList();
}
diff --git a/src/main/java/cn/jpush/api/push/PushResult.java b/src/main/java/cn/jpush/api/push/PushResult.java
index 51576c3b..0874c50f 100644
--- a/src/main/java/cn/jpush/api/push/PushResult.java
+++ b/src/main/java/cn/jpush/api/push/PushResult.java
@@ -1,11 +1,12 @@
package cn.jpush.api.push;
import cn.jpush.api.common.resp.BaseResult;
-
import com.google.gson.annotations.Expose;
public class PushResult extends BaseResult {
-
+
+ private static final long serialVersionUID = 93783137655776743L;
+
@Expose public long msg_id;
@Expose public int sendno;
diff --git a/src/main/java/cn/jpush/api/report/MessagesResult.java b/src/main/java/cn/jpush/api/report/MessagesResult.java
index 3c0a04a7..dcac3d1b 100644
--- a/src/main/java/cn/jpush/api/report/MessagesResult.java
+++ b/src/main/java/cn/jpush/api/report/MessagesResult.java
@@ -11,6 +11,7 @@
public class MessagesResult extends BaseResult {
private static final Type MESSAGE_TYPE = new TypeToken>() {}.getType();
+ private static final long serialVersionUID = -1582895355000647292L;
@Expose
public List messages = new ArrayList();
diff --git a/src/main/java/cn/jpush/api/report/ReceivedsResult.java b/src/main/java/cn/jpush/api/report/ReceivedsResult.java
index 3187d0cd..b41a356b 100644
--- a/src/main/java/cn/jpush/api/report/ReceivedsResult.java
+++ b/src/main/java/cn/jpush/api/report/ReceivedsResult.java
@@ -11,6 +11,7 @@
public class ReceivedsResult extends BaseResult {
private static final Type RECEIVED_TYPE = new TypeToken>() {}.getType();
+ private static final long serialVersionUID = 1761456104618847304L;
@Expose
public List received_list = new ArrayList();
diff --git a/src/main/java/cn/jpush/api/report/UsersResult.java b/src/main/java/cn/jpush/api/report/UsersResult.java
index 6ddb8284..5f5f0292 100644
--- a/src/main/java/cn/jpush/api/report/UsersResult.java
+++ b/src/main/java/cn/jpush/api/report/UsersResult.java
@@ -11,6 +11,7 @@
public class UsersResult extends BaseResult {
+ private static final long serialVersionUID = -963296929272770550L;
@Expose public TimeUnit time_unit;
@Expose public String start;
@Expose public int duration;
diff --git a/src/main/java/cn/jpush/api/schedule/ScheduleClient.java b/src/main/java/cn/jpush/api/schedule/ScheduleClient.java
index fd492b14..5f2d8a32 100644
--- a/src/main/java/cn/jpush/api/schedule/ScheduleClient.java
+++ b/src/main/java/cn/jpush/api/schedule/ScheduleClient.java
@@ -21,6 +21,12 @@ public class ScheduleClient {
private String hostName;
private String schedulePath;
+ // If not present, true by default.
+ private int apnsProduction;
+
+ // If not present, the default value is 86400(s) (one day)
+ private long timeToLive;
+
public ScheduleClient(String masterSecret, String appkey) {
this(masterSecret, appkey, null, ClientConfig.getInstance());
}
@@ -47,6 +53,8 @@ public ScheduleClient(String masterSecret, String appKey, int maxRetryTimes, Htt
hostName = (String) conf.get(ClientConfig.SCHEDULE_HOST_NAME);
schedulePath = (String) conf.get(ClientConfig.SCHEDULE_PATH);
+ apnsProduction = (Integer) conf.get(ClientConfig.APNS_PRODUCTION);
+ timeToLive = (Long) conf.get(ClientConfig.TIME_TO_LIVE);
String authCode = ServiceHelper.getBasicAuthorization(appKey, masterSecret);
this._httpClient = new NativeHttpClient(authCode, proxy, conf);
@@ -63,6 +71,8 @@ public ScheduleClient(String masterSecret, String appKey, HttpProxy proxy, Clien
ServiceHelper.checkBasic(appKey, masterSecret);
hostName = (String) conf.get(ClientConfig.SCHEDULE_HOST_NAME);
schedulePath = (String) conf.get(ClientConfig.SCHEDULE_PATH);
+ apnsProduction = (Integer) conf.get(ClientConfig.APNS_PRODUCTION);
+ timeToLive = (Long) conf.get(ClientConfig.TIME_TO_LIVE);
String authCode = ServiceHelper.getBasicAuthorization(appKey, masterSecret);
this._httpClient = new NativeHttpClient(authCode, proxy, conf);
@@ -72,6 +82,16 @@ public ScheduleResult createSchedule(SchedulePayload payload) throws APIConnecti
Preconditions.checkArgument(null != payload, "payload should not be null");
+ if (apnsProduction > 0) {
+ payload.resetPushApnsProduction(true);
+ } else if(apnsProduction == 0) {
+ payload.resetPushApnsProduction(false);
+ }
+
+ if (timeToLive >= 0) {
+ payload.resetPushTimeToLive(timeToLive);
+ }
+
ResponseWrapper response = _httpClient.sendPost(hostName + schedulePath, payload.toString());
return ScheduleResult.fromResponse(response, ScheduleResult.class);
}
@@ -97,6 +117,16 @@ public ScheduleResult updateSchedule(String scheduleId, SchedulePayload payload)
Preconditions.checkArgument(StringUtils.isNotEmpty(scheduleId), "scheduleId should not be empty");
Preconditions.checkArgument(null != payload, "payload should not be null");
+ if (apnsProduction > 0) {
+ payload.resetPushApnsProduction(true);
+ } else if(apnsProduction == 0) {
+ payload.resetPushApnsProduction(false);
+ }
+
+ if (timeToLive >= 0) {
+ payload.resetPushTimeToLive(timeToLive);
+ }
+
ResponseWrapper response = _httpClient.sendPut(hostName + schedulePath + "/" + scheduleId,
payload.toString());
return ScheduleResult.fromResponse(response, ScheduleResult.class);
diff --git a/src/main/java/cn/jpush/api/schedule/ScheduleListResult.java b/src/main/java/cn/jpush/api/schedule/ScheduleListResult.java
index eeda28db..2dd5cb51 100644
--- a/src/main/java/cn/jpush/api/schedule/ScheduleListResult.java
+++ b/src/main/java/cn/jpush/api/schedule/ScheduleListResult.java
@@ -8,6 +8,7 @@
public class ScheduleListResult extends BaseResult{
+ private static final long serialVersionUID = 86248096939746151L;
@Expose int total_count;
@Expose int total_pages;
@Expose int page;
diff --git a/src/main/java/cn/jpush/api/schedule/ScheduleResult.java b/src/main/java/cn/jpush/api/schedule/ScheduleResult.java
index 50619aa4..d620c784 100644
--- a/src/main/java/cn/jpush/api/schedule/ScheduleResult.java
+++ b/src/main/java/cn/jpush/api/schedule/ScheduleResult.java
@@ -6,6 +6,7 @@
public class ScheduleResult extends BaseResult{
+ private static final long serialVersionUID = 995450157929190757L;
@Expose String schedule_id;
@Expose String name;
@Expose Boolean enabled;
diff --git a/src/main/java/cn/jpush/api/schedule/model/SchedulePayload.java b/src/main/java/cn/jpush/api/schedule/model/SchedulePayload.java
index 2fe0302f..c0364e1e 100644
--- a/src/main/java/cn/jpush/api/schedule/model/SchedulePayload.java
+++ b/src/main/java/cn/jpush/api/schedule/model/SchedulePayload.java
@@ -49,6 +49,18 @@ public String toString() {
return gson.toJson(toJSON());
}
+ public void resetPushApnsProduction(boolean apnsProduction) {
+ if(null != push) {
+ push.resetOptionsApnsProduction(apnsProduction);
+ }
+ }
+
+ public void resetPushTimeToLive(long timeToLive) {
+ if(null != push) {
+ push.resetOptionsTimeToLive(timeToLive);
+ }
+ }
+
public static class Builder{
private String name;
private Boolean enabled;