Skip to content

Commit 7fa7fa2

Browse files
authored
Merge pull request #5 from xelloss00x/main
[fix] 修复FileInputStream没有正确关闭的问题
2 parents be0e96e + 8153284 commit 7fa7fa2

24 files changed

+24
-48
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,8 @@
1717

1818
* 去除org.reflections.reflections依赖,涉及到使用reflections工具的地方自己实现
1919
* 调用XM和OP上传接口上传失败后,XM和OP的返回信息完整输出到返回结果的data中
20-
* XM的图片上传接口由/media/upload/smallIcon调整为/media/upload/image
20+
* XM的图片上传接口由/media/upload/smallIcon调整为/media/upload/image
21+
22+
[1.1.0.1] - 2023-10-23
23+
24+
* 修复FileInputStream没有正确关闭的问题

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,36 @@
11
# GT SDK Libraries for Java
2+
23
该SDK是多厂商推送工具集,目前包装的功能有:icon上传。支持的厂商模块有OPPO、XM。
34

45
需要的jdk版本:
6+
57
- JDK 1.8 or higher.
68

79
## Adding dependency to your build
10+
811
使用maven添加依赖如下
912

1013
```xml
1114
<dependency>
1215
<groupId>com.getui.push</groupId>
1316
<artifactId>getui-3rd-push-utils</artifactId>
14-
<version>1.1.0.0</version>
17+
<version>1.1.0.1</version>
1518
</dependency>
1619
```
1720

1821
## Usage
22+
1923
### sdk初始化
24+
2025
在应用配置类中初始化执行一次如下代码
26+
2127
```java
2228
// 配置文件的路径是运行程序所在的相对路径
2329
GtSDKStarter.getInstance().loadPropertyFile("/src/main/resources/application.properties").init();
2430
```
2531

2632
### 配置说明
33+
2734
请在上一步指定的配置文件内添加以下参数,
2835

2936
```properties
@@ -50,6 +57,7 @@ GtSDK.OPPO.MasterSecret=
5057
```
5158

5259
### 服务调用
60+
5361
目前提供了四个服务:
5462

5563
1. 多厂商上传同一个icon文件。完成上两步后,只需要在需要上传icon的代码处编写以下代码即可得到各厂商上传结果。
@@ -87,11 +95,14 @@ Map<String, Result> result = ManufacturerFactory.uploadPic(manufacturerFiles);
8795
```
8896

8997
### 服务结果解析
98+
9099
上一步可以看出上传接口返回的都是个Map,Map的key是厂商名(OPPO、XM),value是一个Result对象。Result包含以下三个属性:
100+
91101
- code:结果码,0成功、1失败、2超时失败、3没有厂商实例(正常情况是配置没配这个厂商,但代码里却想使用这个厂商的服务)、4鉴权失败
92102
- message:success、fail、timeout、has no manufacturer instance、auth fail
93103
- data:成功时,值为icon在各厂商的上传url结果(或者picId);失败时,值是失败原因。
94104

95105
## 其他说明
106+
96107
由于该sdk本质只是各厂商api的包装,所以对于一些接口限制和返回处理,需要遵循各厂商的api文档。下面放出
97108
[OPPO](https://open.oppomobile.com/wiki/doc#id=10693)[XM](https://dev.mi.com/console/doc/detail?pId=1163#_10_1) 的API在线文档供参考。

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.getui.push</groupId>
88
<artifactId>getui-3rd-push-utils</artifactId>
9-
<version>1.1.0.0</version>
9+
<version>1.1.0.1</version>
1010
<packaging>jar</packaging>
1111

1212
<name>${project.groupId}:${project.artifactId}</name>

src/main/java/com/getui/gtps/GtSDKStarter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import java.io.InputStream;
1212

1313
/**
14-
* @author wangxu
1514
* date: 2020/12/25
1615
*/
1716
public class GtSDKStarter {

src/main/java/com/getui/gtps/config/CommonConfig.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
* sdk配置参数 <br>
1616
* 参数都是public的,用户可以按照sdk初始化流程进行初始化,也可以自己在厂商实例初始化前自定义指定参数值
1717
*
18-
* @author wangxu
1918
* date: 2020/12/25
2019
*/
2120
public class CommonConfig {

src/main/java/com/getui/gtps/config/GtSDKConstants.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
/**
44
* sdk常量
55
*
6-
* @author wangxu
76
* date: 2020/12/25
8-
* email:wangx2@getui.com
97
*/
108
public class GtSDKConstants {
119

src/main/java/com/getui/gtps/exception/AuthFailedException.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
/**
44
* 厂商服务鉴权失败的异常
55
*
6-
* @author wangxu
76
* date: 2020/12/30
8-
* email:wangx2@getui.com
97
*/
108
public class AuthFailedException extends RuntimeException {
119

src/main/java/com/getui/gtps/manufacturer/BaseManufacturer.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
/**
1111
* 厂商抽象类,定义了多厂商共有的特效
1212
*
13-
* @author wangxu
1413
* date: 2020/12/25
15-
* email:wangx2@getui.com
1614
*/
1715
public abstract class BaseManufacturer implements ManufacturerService {
1816

src/main/java/com/getui/gtps/manufacturer/CacheService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
* 缓存服务,用于sdk中需要使用缓存的地方,可用于自定义的缓存方式的实现。 <br>
55
* 现在默认的缓存方式是CaffeineCache,待有需求时再迭代缓存方式切换的代码
66
*
7-
* @author wangxu
87
* date: 2020/12/28
9-
* email:wangx2@getui.com
108
*/
119
public interface CacheService {
1210

src/main/java/com/getui/gtps/manufacturer/CacheServiceFactory.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
import java.util.concurrent.ConcurrentHashMap;
99

1010
/**
11-
* @author wangxu
1211
* date: 2020/12/28
13-
* email:wangx2@getui.com
1412
*/
1513
public class CacheServiceFactory {
1614

src/main/java/com/getui/gtps/manufacturer/CaffeineCacheService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
/**
99
* CaffeineCache缓存服务实现
1010
*
11-
* @author wangxu
1211
* date: 2020/12/28
13-
* email:wangx2@getui.com
1412
*/
1513
public class CaffeineCacheService implements CacheService {
1614

src/main/java/com/getui/gtps/manufacturer/ManufacturerFactory.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@
3333
/**
3434
* 厂商工厂:包含多厂商服务实例初始化、鉴权以及接口服务
3535
*
36-
* @author wangxu
3736
* date: 2020/12/25
38-
* email:wangx2@getui.com
3937
*/
4038
public class ManufacturerFactory {
4139

src/main/java/com/getui/gtps/manufacturer/ManufacturerFile.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
/**
99
* 厂商文件类,只比java.io.File多了manufacturerName属性
1010
*
11-
* @author wangxu
1211
* date: 2021/1/5
13-
* email:wangx2@getui.com
1412
*/
1513
public class ManufacturerFile extends File {
1614
private final String manufacturerName;

src/main/java/com/getui/gtps/manufacturer/Result.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
/**
66
* 厂商服务返回结果,此类是厂商api调用结果的包装类
77
*
8-
* @author wangxu
98
* date: 2020/12/31
10-
* email:wangx2@getui.com
119
*/
1210
public class Result implements Serializable {
1311

src/main/java/com/getui/gtps/manufacturer/constant/ManufacturerConstants.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
/**
44
* 厂商服务常量
55
*
6-
* @author wangxu
76
* date: 2020/12/25
8-
* email:wangx2@getui.com
97
*/
108
public class ManufacturerConstants {
119

src/main/java/com/getui/gtps/manufacturer/oppo/OppoConstants.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package com.getui.gtps.manufacturer.oppo;
22

33
/**
4-
* @author wangxu
54
* date: 2020/12/27
6-
* email:wangx2@getui.com
75
*/
86
public class OppoConstants {
97
static final String PARAM_APP_KEY = "app_key";

src/main/java/com/getui/gtps/manufacturer/oppo/OppoService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@
2828
/**
2929
* oppo厂商的服务实现类
3030
*
31-
* @author wangxu
3231
* date: 2020/12/25
33-
* email:wangx2@getui.com
3432
*/
3533
public class OppoService extends BaseManufacturer {
3634

src/main/java/com/getui/gtps/manufacturer/service/ManufacturerService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77
/**
88
* 厂商服务接口,定义了多厂商共有的服务
99
*
10-
* @author wangxu
1110
* date: 2020/12/25
12-
* email:wangx2@getui.com
1311
*/
1412
public interface ManufacturerService {
1513

src/main/java/com/getui/gtps/manufacturer/xm/XmConstants.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package com.getui.gtps.manufacturer.xm;
22

33
/**
4-
* @author wangxu
54
* date: 2020/12/31
6-
* email:wangx2@getui.com
75
*/
86
public class XmConstants {
97
static String baseUrl = "https://api.xmpush.xiaomi.com";

src/main/java/com/getui/gtps/manufacturer/xm/XmService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
/**
2727
* xm厂商的服务实现类
2828
*
29-
* @author wangxu
3029
* date: 2020/12/25
31-
* email:wangx2@getui.com
3230
*/
3331
public class XmService extends BaseManufacturer {
3432

src/main/java/com/getui/gtps/util/Encrypt.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66
/**
77
* SHA256和SHA512加密工具
88
*
9-
* @author wangxu
109
* date: 2020/12/27
11-
* email:wangx2@getui.com
1210
*/
1311
public class Encrypt {
1412
/**

src/main/java/com/getui/gtps/util/FileUtils.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@
1313
/**
1414
* 文件工具类
1515
*
16-
* @author wangxu
1716
* date: 2020/12/31
18-
* email:wangx2@getui.com
1917
*/
2018
public class FileUtils {
2119

src/main/java/com/getui/gtps/util/HttpResponse.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
/**
44
* Http调用返回结果包装类
55
*
6-
* @author wangxu
76
* date: 2020/12/28
8-
* email:wangx2@getui.com
97
*/
108
public class HttpResponse {
119

src/main/java/com/getui/gtps/util/HttpUtils.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@
1515
/**
1616
* Http请求工具类
1717
*
18-
* @author wangxu
1918
* date: 2020/12/28
20-
* email:wangx2@getui.com
2119
*/
2220
public class HttpUtils {
2321

@@ -155,11 +153,12 @@ private static void writeFile(File file, OutputStream os) throws IOException {
155153
new MimetypesFileTypeMap().getContentType(file) +
156154
LINE_END + LINE_END;// 参数头设置完以后需要两个换行,然后才是参数内容
157155
os.write(requestParams.getBytes());
158-
FileInputStream fis = new FileInputStream(file);
159-
byte[] b = new byte[1024];
160-
int n;
161-
while ((n = fis.read(b)) != -1) {
162-
os.write(b, 0, n);
156+
try (FileInputStream fis = new FileInputStream(file)) {
157+
byte[] b = new byte[1024];
158+
int n;
159+
while ((n = fis.read(b)) != -1) {
160+
os.write(b, 0, n);
161+
}
163162
}
164163
os.write(LINE_END.getBytes());
165164
os.flush();

0 commit comments

Comments
 (0)