Skip to content

Commit 7a049cb

Browse files
committed
Merge pull request #1 from aliyun/develop
Develop
2 parents 8b99995 + d59d4fb commit 7a049cb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+8953
-79
lines changed

.travis.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
language: java
2+
jdk:
3+
- openjdk6
4+
- oraclejdk7
5+
- oraclejdk8
6+
env:
7+
global:
8+
- secure: SimZMTg4ZlUmeko5nIngk+NPMHA+nHZi9Bid8fFi7g4V3hkRjKByQgGoO+5GQzZacRttxosczAKkJ65tejgHZ3rcTBKqljOJ5Dw3jbh4+ABYLH9cY+GzEIodQvgpJzjcGqeWZNUlYdmEqXKsFEZcDdgvnDJJtkrHg8YQmJEwk9DVtyCnHYapXAcsK6xlaB14GIuLKbyZMw3n4tJ33+afusUdIXT1eJtYP3zKjY8VnHZWHFXnvrN7F7pynnKON8WSx4NZa3Wov290ByhPYglSdFTVX9zul7hPD4ZMfCJ5Om3Iz1O1m5yvLckn/y2IBwIGraXgvlXMKhqMMlb9Zvy2mmZWIOViOl/gG7g6LzbGbJMmj4vD95/Iv3FPO/j+M2F/xRUxjaGPIvhzP1Cd+P0NUZxPo5JQj0JYikDx0PTQd8RTOnzQ71YMXPbiL8Td1NcxwLrLqQLU5/lUoLIxusTDeMOu0EGbK43HAU6AlyAtxgjsTiva8OmR/AjfdHINotiBchoYjq9ZRrBzxakBvDLr+gnYn8UAdm6AoE8DOhz3ZoIgFiyjvNkQ31wWacoZrCoszY4ZE2QBwhXyfq7iAqJkPtg4qiftLnmOEMeyLEnKJM/kFk2tpYhxyBgLbxjdRG4WHaIXjE7lmKpzsPy43WnWJQMYFI3BuuC0dfDjuRbjy5s=
9+
- secure: DXaytAv0L3pV8GlTbcCe0u0ajKDxnZhLnvBk3d8w9Y0AuncgWw4BMngeG2n+kATILRJwV0TS3a0yMRTqMF8o4yWwguHZtqKkU5dvWtbfQowoYaFbXkJZOCkaJL89h0LMTzTyXxNUQurp/U3XDSQARxyoXKBd65eZmj06oRIm5GyzQvc3kKzke7Jy/WhQ5r+3aEm0qUwomwaLVI9KFY81qo5eXkbndF1VLIhELhQgpB+brWUoRnzjssYIYPsYUgeTHrdhgePXbGP5Rk7T9OK/+giNCt4c5PLqUpnQ0SK4gGVpukAxKvoA/5KMxefrPdDypQ6If/TC01B7tYbH8QP88C0vZKccJlKyh9CLMmW3HBRFXGfMXISky1Kwn/8OCUZZrUISvGcDRAVmZx6+cOg6qbhYGHPjbJELA71mVRaIQfm8yQGXpPZeikpSLttzPAZMPb8Dgy3fGOlh3jppipeWO9jv2tJPaMnWBBVoXuWEpJXQXiRhhYrK7RLlBBJLyS3DGVd9c2G2b7o8SXPfQuvcxSMloEQtbBJUC0DENXwFwcfuNo1STGUrsHuUaLgRzjzL1tmkcDp8tU9f01qbhjrCHolWJTOFISDu8xQWPkWFapihWfrhshNizjnagicFxBgD6zhjSXgXHLEZQnkzgkBugToZZB+K4wDKD3xTaR8rt70=
10+
- secure: QEQ2B9+5jinULaZgWAelkndYg+0RAczxv9OSEMYxEj9kzr8W6EJYeZi/KsTAY6kKI4IDZwptclDbKF+uVAruQ52UtDiNIu69AWfdYu2IL1YwQ3YGJRFtvA0qZpELAY3VHyB6zR9Qm0A1DeDtcYglL+QUlwL54lqVnz8Z+4hp8zikGKb7nYl+8oztWGYaghQSf641/7nZuZFyhOzhS34CN7tWEM8aSzYxBVg2G4x6bYTgbGJL00blzENbyqrWe4ZsMCXc1AWtxNLtS8TalOJxISKw97Gx5EksbSKPaaEhlfik1ooQ+w2UAgMAeSrcaMhFoOqZ6QLItoFveVu1CskHHwHngp7OziemroOG/8Ef8m11lVloZIRc7qogivYPHxhoFD49+n0xiaWsMXMOtUzP74z5T4P5AvbVtq4qycyCAxgMqh2c/wqTkezUQC+cw1Qho6kJM/bAxfyLPSOvOWMKbrRU09sM5/OA0+1JiU1QYbVuYY9w/z+9MaRMaFTsIioWWyAD8FF5TSMroBsjkFsQm7/uZFxWXFFZt8d6Tnq28nZfW31T0PwtIr8jknRe9p3ijLqqRh1i13DIE5u13ZyKsLJEBZyJdPyA3g3+oq7UfKFbIxFdjRM3JA+FQVh5yvrfxqu5qgC0RaU4uMXDu6Vg9AvuSVNedo9JjVjFwCcTU6Q=
11+
- secure: gcOuRG1xp+o17hL2X29qPikn1Hkl2NI0TRSnbuiT8n8gZrpyrP3+BpDR/XxbedrOGLgU6lZFGY3ZX6m1+8aD2Xkh9nCK/X1TakJ02qSDzpvpBBHbroyd9fWS4Y6bMGNkdzO102MMg6q9ICiFhcOaxz7mFHt49TBlVI+YqL2xRUXOHq/ZMdopLiVxjpATXdFb9NV9MqVsCS/7XV9+o61QVqfpvHErbiKK7AqMj7X5VJjwDfW28tJHmq8VeFh4ZGzvEn7HF85Aq7W6FCuacejdP3rmY5z5yz5Z1kZTFV22+yXLKqe1Gt4yCn2lufw0soQTW+++2yVj9tgH/g7y9/YrDJbkjCfpYwOXRjQIS7NHMWB8qngMn4sGajt9VWTCP8EDx6WYdoYzOeq+grl1dH+pdwxtgmp+0nAZMsBwc16t+X6Jbx5yTu4mtacZOi/yTuy/3Zaas464XwW83oRHpw0PNi1H6lwmmJGW1+4L9HqqdDzjT/xeqwPGpcrSdAR6ENWSxaKfcVmfGt4BFDKzCW0LVSV555pW4lJMlzEr/L2DtL9QdpPGPtcAFfHuuzQBGt0i6cn4GRe+mMWatBnmlVX8Jb8VbOloWOWD4R3AzcQzso4FRtuUoQdFeQ+cVM7pzY8EhSoGkn8cbljOT/MVusdkfH03vVVUJnD2mLvjaSlqtwA=

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
# Aliyun TableStore SDK for JAVA
1+
# Aliyun TableStore SDK for JAVA
22

33
[![Software License](https://img.shields.io/badge/license-apache2-brightgreen.svg)](LICENSE)
44
[![GitHub version](https://badge.fury.io/gh/aliyun%2Faliyun-tablestore-java-sdk.svg)](https://badge.fury.io/gh/aliyun%2Faliyun-tablestore-java-sdk)
5+
[![Build Status](https://travis-ci.org/aliyun/aliyun-tablestore-java-sdk.svg)](https://travis-ci.org/aliyun/aliyun-tablestore-java-sdk)
56

67
## 关于
78
- 此JAVA SDK基于[阿里云表格存储服务](http://www.aliyun.com/product/ots/) API构建。
@@ -15,7 +16,7 @@
1516

1617
## 安装
1718
#### Maven方式
18-
下载[最新版JAR](https://search.maven.org/remote_content?g=com.aliyun.openservices&a=ots-public&v=LATEST)或者通过Maven:
19+
下载[最新版JAR包](https://search.maven.org/remote_content?g=com.aliyun.openservices&a=ots-public&v=LATEST)或者通过Maven:
1920
```xml
2021
<dependency>
2122
<groupId>com.aliyun.openservices</groupId>

pom.xml

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212

1313
<licenses>
1414
<license>
15-
<name></name>
16-
<url></url>
17-
<distribution></distribution>
15+
<name>The Apache Software License, Version 2.0</name>
16+
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
1817
</license>
1918
</licenses>
2019
<scm>
@@ -92,7 +91,7 @@
9291
<configuration>
9392
<source>1.6</source>
9493
<target>1.6</target>
95-
<encoding>UTF-8</encoding>
94+
<encoding>utf-8</encoding>
9695
</configuration>
9796
</plugin>
9897
<plugin>
@@ -228,31 +227,6 @@
228227
</execution>
229228
</executions>
230229
</plugin>
231-
<plugin>
232-
<groupId>org.apache.maven.plugins</groupId>
233-
<artifactId>maven-gpg-plugin</artifactId>
234-
<version>1.5</version>
235-
<executions>
236-
<execution>
237-
<id>sign-artifacts</id>
238-
<phase>verify</phase>
239-
<goals>
240-
<goal>sign</goal>
241-
</goals>
242-
</execution>
243-
</executions>
244-
</plugin>
245-
<plugin>
246-
<groupId>org.sonatype.plugins</groupId>
247-
<artifactId>nexus-staging-maven-plugin</artifactId>
248-
<version>1.6.3</version>
249-
<extensions>true</extensions>
250-
<configuration>
251-
<serverId>sonatype-nexus-staging</serverId>
252-
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
253-
<autoReleaseAfterClose>true</autoReleaseAfterClose>
254-
</configuration>
255-
</plugin>
256230
</plugins>
257231
</build>
258232
</project>

src/main/java/com/aliyun/openservices/ots/DefaultOTSWriter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import com.aliyun.openservices.ots.internal.writer.RowChangeEventHandler;
66
import com.aliyun.openservices.ots.internal.writer.WriterConfig;
77
import com.aliyun.openservices.ots.model.*;
8-
import com.aliyun.openservices.ots.utils.CalculateHelper;
98
import com.aliyun.openservices.ots.utils.ParamChecker;
109
import com.aliyun.openservices.ots.utils.Preconditions;
1110
import com.lmax.disruptor.InsufficientCapacityException;

src/main/java/com/aliyun/openservices/ots/OTSWriter.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010
/**
1111
* OTS提供了BatchWriteRow接口让用户能够向OTS批量导入数据,但是在实际使用过程中,BatchWriteRow接口的使用方式对开发者并不友好。例如用户
1212
* 需要自己计算并控制一次BatchWriteRow的数据量大小,需要关注行大小或者列大小是否超过OTS的限制,需要对主键去重以及处理单行错误的重试等等。
13-
* <p/>
13+
*
1414
* OTSWriter旨在针对批量数据导入的场景提供一个更加易用的接口,但是不是所有场景均适用OTSWriter,在使用之前,请详细了解它的行为,否则会造成数据正确性的问题:
1515
* - OTSWriter所有接口保证线程安全。
1616
* - 调用{@link #addRowChange}接口向OTSWriter写入一行返回后,并不代表该行已经写入OTS,该行会保存在OTSWriter的本地缓冲中,等待flush,flush成功后该行才会被写入OTS。
1717
* - 向OTSWriter写入的行的顺序与最终写入OTS的行的顺序不保证一致。
1818
* - 所有通过OTSWriter的写入操作,需要使用者保证是幂等的,因为OTSWriter内部默认会启用重试,某一行可能会多次写入。
19-
* - OTSWriter对缓冲区的flush时机由两个因素来控制:一个是<string>flushInterval</string>,根据时间定期的进行flush;
19+
* - OTSWriter对缓冲区的flush时机由两个因素来控制:一个是flushInterval,根据时间定期的进行flush;
2020
* 另一个是{@link com.aliyun.openservices.ots.internal.writer.WriterConfig#maxBatchSize},根据缓冲区的数据量来决定是否需要flush。
2121
* - OTSWriter在写入数据时,会自动对导入失败的行进行重试,但是并不保证所有行重试后最终一定能够被写入成功(例如:某一行在OTS中已经超过了256KB限制,则无法再向该行写入新的列)。
22-
* 此时经过若干次重试后若还有数据无法被写入成功,则这些行会被认为是脏数据,脏数据会通过<string>OTSCallback</string>反馈给使用者
22+
* 此时经过若干次重试后若还有数据无法被写入成功,则这些行会被认为是脏数据,脏数据会通OTSCallback反馈给使用者
2323
* - 再向OTSWriter写入数据之前,请先注册好Callback,否则若在注册CallBack之前已经有数据写入失败,则失败的行会直接被抛弃。
2424
* - 程序退出前,需要显式调用{@link #flush}或{@link #close},将还存在缓冲区中的数据进行flush,否则会造成这部分数据丢失。
2525
*
@@ -38,20 +38,20 @@
3838
public interface OTSWriter {
3939
/**
4040
* 向本地缓冲区增加一行数据。
41-
* <p/>
41+
*
4242
* 在写入缓冲区之前,会对该行数据做如下检查:
4343
* - 该行的主键的Schema是否与表定义的相同。
4444
* - 该行的主键列或属性列的值大小是否超过限制,值的限制配置在{@link com.aliyun.openservices.ots.internal.writer.WriterConfig#maxPKColumnSize}和{@link com.aliyun.openservices.ots.internal.writer.WriterConfig#maxAttrColumnSize}。
4545
* - 该行的属性列的个数是否超过{@link com.aliyun.openservices.ots.internal.writer.WriterConfig#maxColumnsCount}。
4646
* - 该行的大小是否超过{@link com.aliyun.openservices.ots.internal.writer.WriterConfig#maxBatchSize}。
4747
* - 属性列中是否有列名与主键列相同。
4848
*
49-
* 若在写入缓冲区之前被判定为脏数据,该部分数据不会触发CallBack的调用。<br/>
49+
* 若在写入缓冲区之前被判定为脏数据,该部分数据不会触发CallBack的调用。
5050
*
5151
* 以上检查会在SDK端带来额外的CPU消耗,但是这些检查是必要的,为了减少不必要的RPC开销,以及避免脏数据污染同一批次Batch写入的行。
52-
* <p/>
52+
*
5353
* 注意:若缓冲区满,则该操作会被block。
54-
* <p/>
54+
*
5555
* 若判断该行为脏数据,该接口会抛出{@link com.aliyun.openservices.ots.ClientException}。
5656
*
5757
* @param rowChange 要写入的行
@@ -61,9 +61,9 @@ public interface OTSWriter {
6161

6262
/**
6363
* 向本地缓冲区批量写入行。
64-
* <p/>
64+
*
6565
* 批量写入的每一行会做与{@link #addRowChange(RowChange)}一样的检查,若批量写入的行中存在脏数据,则该函数会抛{@link ClientException},
66-
* 且所有的脏数据会写入{@param dirtyRows}
66+
* 且所有的脏数据会写入dirtyRows
6767
6868
* @param rowChanges 批量写入的行
6969
* @param dirtyRows 用于传出脏数据的列表
@@ -73,7 +73,7 @@ public interface OTSWriter {
7373

7474
/**
7575
* 设置Callback,数据写入成功或者失败均会通过Callback来反馈。
76-
* <br/>
76+
*
7777
* 注意:callback会被写入OTSWriter的所有行共享,会被并发的调用。
7878
* 这与{@link com.aliyun.openservices.ots.OTSAsync}中每个接口的Callback不同,其callback会与每个请求一一对应,且可以是独立的。
7979
* 但是这里的Callback是与RowChange对应,且所有RowChange都共享该callback。
@@ -98,14 +98,14 @@ public interface OTSWriter {
9898

9999
/**
100100
* 主动flush缓冲区中的数据,该函数会等待缓冲区中的所有数据被flush完毕。
101-
* <p/>
101+
*
102102
* 注意:若在调用flush之后继续向缓冲区中写入数据,flush不会等待这部分新数据的写入,新数据的flush需要重新调用一次flush。
103103
*/
104104
public void flush() throws ClientException;
105105

106106
/**
107107
* 关闭OTSWriter,在关闭之前,会先flush掉缓冲区内的所有数据。
108-
* <p/>
108+
*
109109
* 注意:若在close过程中或者close之后仍然调用{@link #addRowChange}向缓冲区写入数据,则该部分数据不保证会写入OTS。
110110
*/
111111
public void close();

src/main/java/com/aliyun/openservices/ots/auth/ServiceCredentials.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public ServiceCredentials(String accessKeyId, String accessKeySecret){
7373
* Access Key ID。
7474
* @param accessKeySecret
7575
* Access Key Secret。
76+
* @param stsToken
77+
* Aliyun STS token value
7678
* @exception NullPointerException accessKeyId或accessKeySecret为空指针。
7779
*/
7880
public ServiceCredentials(String accessKeyId, String accessKeySecret, String stsToken){
@@ -84,7 +86,7 @@ public ServiceCredentials(String accessKeyId, String accessKeySecret, String sts
8486
/**
8587
* 获取短期访问凭证。
8688
* 详细信息请参考阿里云STS (Security Token Service) 服务文档。
87-
* @return
89+
* @return token value
8890
*/
8991
public String getStsToken() {
9092
return stsToken;
@@ -93,7 +95,7 @@ public String getStsToken() {
9395
/**
9496
* 设置短期访问凭证。
9597
* 详细信息请参考阿里云STS (Security Token Service) 服务文档。
96-
* @param stsToken
98+
* @param stsToken STS的临时token值
9799
*/
98100
public void setStsToken(String stsToken) {
99101
this.stsToken = stsToken;

src/main/java/com/aliyun/openservices/ots/comm/ExecutionContext.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public ExecutionContext() {
2323
/**
2424
* Returns the default encoding (charset). Default: "UTF-8"
2525
*
26-
* @return
26+
* @return 编码类型
2727
*/
2828
public String getCharset() {
2929
return charset;
@@ -32,7 +32,7 @@ public String getCharset() {
3232
/**
3333
* Sets the default encoding (charset). Default: "UTF-8"
3434
*
35-
* @param defaultEncoding
35+
* @param defaultEncoding 编码类型
3636
*/
3737
public void setCharset(String defaultEncoding) {
3838
this.charset = defaultEncoding;

src/main/java/com/aliyun/openservices/ots/comm/RequestHandler.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ public interface RequestHandler {
1111

1212
/**
1313
* 预处理需要发送的请求数据
14+
* @param message 请求数据
15+
* @throws ServiceException
16+
* @throws ClientException
1417
*/
1518
public void handle(RequestMessage message)
1619
throws ServiceException, ClientException;

src/main/java/com/aliyun/openservices/ots/comm/ResponseHandler.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ public interface ResponseHandler {
1111

1212
/**
1313
* 处理返回的结果
14+
* @param responseData 服务器返回的数据
15+
* @throws ServiceException
16+
* @throws ClientException
1417
*/
1518
public void handle(ResponseMessage responseData)
1619
throws ServiceException, ClientException;

src/main/java/com/aliyun/openservices/ots/internal/OTSAlwaysRetryStrategy.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void setMaxRetryPauseInMillis(int maxRetryPauseInMillis) {
3535
*
3636
* @param action 操作名,比如"ListTable"、"GetRow"、"PutRow"等
3737
* @param ex 上次访问失败的错误信息、为ClientException或OTSException
38-
* @param retries 表示本次判断的为第retries次重试,retries > 0
38+
* @param retries 表示本次判断的为第retries次重试,retries 大于 0
3939
* @return
4040
*/
4141
@Override
@@ -52,7 +52,7 @@ public boolean shouldRetry(String action, Exception ex, int retries) {
5252
*
5353
* @param action 操作名,比如"ListTable"、"GetRow"、"PutRow"等
5454
* @param ex 上次访问失败的错误信息、为ClientException或OTSException
55-
* @param retries 表示将要发起第retries次重试, retries > 0
55+
* @param retries 表示将要发起第retries次重试, retries 大于 0
5656
* @return
5757
*/
5858
@Override

0 commit comments

Comments
 (0)