[GitHub] [servicecomb-pack] cmonkey opened a new pull request #526: SCB-1416 Refactoring the core part of alpha-fsm module to move to alpha-core

2019-08-05 Thread GitBox
cmonkey opened a new pull request #526: SCB-1416 Refactoring the core part of 
alpha-fsm module to move to alpha-core
URL: https://github.com/apache/servicecomb-pack/pull/526
 
 
   Follow this checklist to help us incorporate your contribution quickly and 
easily:
   
- [ ] Make sure there is a [JIRA 
issue](https://issues.apache.org/jira/browse/SCB) filed for the change (usually 
before you start working on it).  Trivial changes like typos do not require a 
JIRA issue.  Your pull request should address just this issue, without pulling 
in other changes.
- [ ] Each commit in the pull request should have a meaningful subject line 
and body.
- [ ] Format the pull request title like `[SCB-XXX] Fixes bug in 
ApproximateQuantiles`, where you replace `SCB-XXX` with the appropriate JIRA 
issue.
- [ ] Write a pull request description that is detailed enough to 
understand what the pull request does, how, and why.
- [ ] Run `mvn clean install` to make sure basic checks pass. A more 
thorough check will be performed on your pull request automatically.
- [ ] If this contribution is large, please file an Apache [Individual 
Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   ---
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-java-chassis] jinyule opened a new issue #1287: 客户端用服务端接口,返回体的PO类必须与服务端完全保持一致问题

2019-08-05 Thread GitBox
jinyule opened a new issue #1287: 客户端用服务端接口,返回体的PO类必须与服务端完全保持一致问题
URL: https://github.com/apache/servicecomb-java-chassis/issues/1287
 
 
   目前发现客户端用服务端接口,返回体的PO必须与服务端完全保持,尽管按json定义好了PO类,但仍会报强转失败


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-samples] 1360098430 opened a new pull request #24: CustomerManage service and UserCenter service initail version

2019-08-05 Thread GitBox
1360098430 opened a new pull request #24: CustomerManage service and UserCenter 
service initail version
URL: https://github.com/apache/servicecomb-samples/pull/24
 
 
   @WillemJiang @yhs0092 the first commit of two of micro-services: 
CustomerManage and UserCenter


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-samples] 1360098430 closed pull request #23: CustomerManage service and UserCenter service initail version

2019-08-05 Thread GitBox
1360098430 closed pull request #23: CustomerManage service and UserCenter 
service initail version
URL: https://github.com/apache/servicecomb-samples/pull/23
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-samples] 1360098430 opened a new pull request #23: HouseCustomerManage service and UserCenter service initail versionrush

2019-08-05 Thread GitBox
1360098430 opened a new pull request #23: HouseCustomerManage service and 
UserCenter service initail versionrush
URL: https://github.com/apache/servicecomb-samples/pull/23
 
 
   @WillemJiang @yhs0092 the first commit of two of micro-services: 
CustomerManage and UserCenter


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[servicecomb-website] branch asf-site updated: Publish the website

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/servicecomb-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new e612542  Publish the website
e612542 is described below

commit e612542c9912aec6000a80ed567b8f6216250f72
Author: Willem Jiang 
AuthorDate: Tue Aug 6 09:30:19 2019 +0800

Publish the website
---
 .../index.html |  18 +-
 .../distributed-tracing/index.html |  16 +-
 .../quick-start-advance/flow-control/index.html|   8 +-
 .../quick-start-advance/load-balance/index.html|   8 +-
 .../service-management/index.html  |   8 +-
 content/cn/users/service-configurations/index.html | 192 ++---
 .../distributed-tracing/index.html |  17 +-
 .../quick-start-advance/flow-control/index.html|   8 +-
 .../quick-start-advance/load-balance/index.html|   8 +-
 .../service-management/index.html  |   8 +-
 content/feed.xml   |   2 +-
 content/users/service-configurations/index.html| 191 ++--
 12 files changed, 112 insertions(+), 372 deletions(-)

diff --git 
a/content/cn/docs/distributed-transactions-saga-implementation/index.html 
b/content/cn/docs/distributed-transactions-saga-implementation/index.html
index 82141e3..a3e7b37 100644
--- a/content/cn/docs/distributed-transactions-saga-implementation/index.html
+++ b/content/cn/docs/distributed-transactions-saga-implementation/index.html
@@ -381,13 +381,18 @@
   
 Saga分布式事务解决方案与实践
 
+本文为2018年QConBeijing Saga分布式事务解决方案与实践演讲实录。 
+【2019年8月更新】目前我们的集中式的Saga解决方案ServiceComb已经发布了7版,去年底项目更名为 ServiceComb 
Pack,提供TCC的支持。大家可以访问我们项目的https://github.com/apache/servicecomb-pack;>github地址,获取到更多与项目相关的详细信息,欢迎大家为项目加星哦。
+
 
 
 
-我先介绍一下我自己,我叫姜宁,来自于华为开源研究中心,现在负责的是ServiceComb这个开源项目。ServiceComb这个项目已经进到Apache孵化,应该是去年11月份时进到Apache孵化的,这个月我们帮刚发了1.0M1版,但对于SAGA来说我们属于探索的阶段,发布了0.1.0。
+我先介绍一下我自己,我叫姜宁,来自于华为开源能力中心,现在负责的是ServiceComb这个开源项目。ServiceComb这个项目已经进到Apache孵化,应该是去年11月份时进到Apache孵化的,这个月我们帮刚发了1.0M1版,但对于SAGA来说我们属于探索的阶段,发布了0.1.0。
 
 我参与过Apache一些项目,我也是Apache的 Member,是Apache CXF, Apache Camel 
还有的PMC。还有一件事情,前一段时间帮阿里同学孵化 
RocketMQ,我是以导师的身份参与的,属于见习的Mentor.这回带着ServiceComb这个项目,我感觉我把很多角色都玩了一遍。后面如果大家对开源项目进入Apache孵化感兴趣的话也可以来找到。
 
+【2019年8月更新】最近发现Apache Camel的国内小伙伴越来越多, 有兴趣想加入的朋友可以给我发邮件 willem.jiang AT 
gmail.
+
 
 
 
今天的议题围绕几个方面来展开,一个是微服务事务一致性的问题,然后讲一讲业界的SAGA解决方案,我们在ServiceComb里也提供了SAGA的实现。另外一件事情,我项目这边也在招新,欢迎广大感兴趣的同学一会儿加我微信。我们现在项目其实架子也都搭得不错了,基本功能都实现了,就是等着大家跳到碗里面,一起来解决微服务事务一致性问题。
@@ -557,9 +562,16 @@
 
 还有Omega需要解决多线程共享调用的问题。
 
-我们问题都列在下面的JIRA上面,大家可以通过这个https://issues.apache.org/jira/browse/SCB-333?jql=project%20%3D%20SCB%20AND%20status%20%3D%20Open%20AND%20fixVersion%20in%20(EMPTY%2C%20java-chassis-1.0.0-m2)%20AND%20labels%20%3D%20newbie">链接入门任务。
+【2019年8月更新】TCC的功能我们已经在https://github.com/apache/servicecomb-pack/releases/tag/0.3.0;>Pack 
0.3.0中提供, 并且在 https://github.com/apache/servicecomb-pack/releases/tag/0.4.0;>Pack 
0.4.0中提供了Alpha多活支持。现在开发的ServiceComb Pack 0.5.0 做了两个比较大的改进, 
一个是在客户端(Omega)提供异步调用的支持, 一个是服务端(Alpha)采用状态机追踪服务的调用情况。
+
+大家可以通过查看我们的https://github.com/apache/servicecomb-pack/blob/master/ROADMAP.md;>线路图,
 或者通过https://gitter.im/ServiceCombUsers/Saga;>gitter与社区开发人员互动。
 
-
+有关ServiceComb Pack交互的细节以及相关的架构设计,大家可以参考下面两篇文章:
+
+  http://servicecomb.apache.org/cn/docs/distributed-transaction-of-services-1/;>基于服务的分布式事务(上篇)
+  http://servicecomb.apache.org/cn/docs/distributed-transaction-of-services-2/;>基于服务的分布式事务(下篇)
+
+
 
 
简单小节一下,我们对事务一致性做了简单的回顾,业界的SAGA解决方案也提了一下,简单介绍一下ServiceComb的Saga实现,以及我们后续的开发计划。
 
diff --git a/content/cn/docs/quick-start-advance/distributed-tracing/index.html 
b/content/cn/docs/quick-start-advance/distributed-tracing/index.html
index 2bac60c..2b37936 100644
--- a/content/cn/docs/quick-start-advance/distributed-tracing/index.html
+++ b/content/cn/docs/quick-start-advance/distributed-tracing/index.html
@@ -420,14 +420,26 @@
   
 重启 体质指数计算器 微服务:
 
-mvn spring-boot:run -Drun.jvmArguments="-Dcse.handler.chain.Provider.default=tracing-provider"
+#spring-boot-maven-plugin 1.x
+mvn spring-boot:run -Drun.jvmArguments="-Dcse.handler.chain.Provider.default=tracing-provider"
+
+
+or
+#spring-boot-maven-plugin 2.x
+ mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcse.handler.chain.Provider.default=tracing-provider"
 
 
   
   
 重启 体质指数界面 微服务:
 
-mvn spring-boot:run -Drun.jvmArguments="-Dservicecomb.tracing.enabled=true"
+#spring-boot-maven-plugin 1.x
+mvn spring-boot:run -Drun.jvmArguments="-Dservicecomb.tracing.enabled=true"
+
+
+or
+#spring-boot-maven-plugin 2.x
+mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dservicecomb.tracing.enabled=true"
 
 
   
diff --git a/content/cn/docs/quick-start-advance/flow-control/index.html 

[servicecomb-website] 01/01: Merge branch 'master' into asf-site

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/servicecomb-website.git

commit b38d195c6d85830a63394d60356e955db4d43993
Merge: c2ecea7 2f451f1
Author: Willem Jiang 
AuthorDate: Tue Aug 6 09:15:24 2019 +0800

Merge branch 'master' into asf-site

 _docs/cn/distributed-tracing.md| 12 +
 _docs/cn/flow-control.md   |  6 +++
 _docs/cn/load-balance.md   |  6 +++
 _docs/cn/service-management.md |  6 +++
 _docs/distributed-tracing.md   | 15 ++
 _docs/flow-control.md  |  6 +++
 _docs/load-balance.md  |  6 +++
 _docs/service-management.md|  6 +++
 .../cn/2018-04-26-distributed-transactions-saga.md | 17 --
 _users/cn/service-configurations.md| 60 +-
 _users/service-configurations.md   | 59 +
 11 files changed, 79 insertions(+), 120 deletions(-)



[servicecomb-website] branch master updated (3c0bba6 -> 2f451f1)

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-website.git.


from 3c0bba6  SCB-1413 update the outdated loadbalance docs links
 add 2f451f1  Update the status of ServiceComb Pack project

No new revisions were added by this update.

Summary of changes:
 _posts/cn/2018-04-26-distributed-transactions-saga.md | 17 ++---
 1 file changed, 14 insertions(+), 3 deletions(-)



[servicecomb-website] branch asf-site updated (c2ecea7 -> b38d195)

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/servicecomb-website.git.


from c2ecea7  publish the website
 add 6f576c0  SCB-1390 add springboot maven plugin 2.x support 
-Dspring-boot.run.jvmArguments
 add 3c0bba6  SCB-1413 update the outdated loadbalance docs links
 add 2f451f1  Update the status of ServiceComb Pack project
 new b38d195  Merge branch 'master' into asf-site

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 _docs/cn/distributed-tracing.md| 12 +
 _docs/cn/flow-control.md   |  6 +++
 _docs/cn/load-balance.md   |  6 +++
 _docs/cn/service-management.md |  6 +++
 _docs/distributed-tracing.md   | 15 ++
 _docs/flow-control.md  |  6 +++
 _docs/load-balance.md  |  6 +++
 _docs/service-management.md|  6 +++
 .../cn/2018-04-26-distributed-transactions-saga.md | 17 --
 _users/cn/service-configurations.md| 60 +-
 _users/service-configurations.md   | 59 +
 11 files changed, 79 insertions(+), 120 deletions(-)
 mode change 100644 => 100755 _docs/cn/distributed-tracing.md
 mode change 100644 => 100755 _docs/cn/flow-control.md
 mode change 100644 => 100755 _docs/cn/service-management.md
 mode change 100644 => 100755 _docs/distributed-tracing.md
 mode change 100644 => 100755 _docs/flow-control.md
 mode change 100644 => 100755 _docs/service-management.md



[servicecomb-pack] 16/38: SCB-1369 Add paging query event list method and single event query method for APIs

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit a888641e1fafd6e1a89742dd2e2e7f85bd5b1670
Author: Lei Zhang 
AuthorDate: Fri Jul 26 18:41:51 2019 +0800

SCB-1369 Add paging query event list method and single event query method 
for APIs
---
 .../fsm/repository/NoneTransactionRepository.java  | 11 +++
 .../fsm/repository/TransactionRepository.java  |  7 ++
 .../ElasticsearchTransactionRepository.java| 99 --
 .../pack/alpha/server/api/APIControllerV1.java | 24 ++
 4 files changed, 135 insertions(+), 6 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
index c0cc566..9cd6d1e 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.pack.alpha.fsm.repository;
 
 import java.lang.invoke.MethodHandles;
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GloablTransaction;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGloablTransactions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -30,4 +31,14 @@ public class NoneTransactionRepository implements 
TransactionRepository {
   public void send(GloablTransaction transaction) {
 LOG.warn("Please configure 
alpha.feature.akka.transaction.repository.type=elasticsearch to use 
elasticsearch to persist transaction data.");
   }
+
+  @Override
+  public GloablTransaction getGloablTransactionByGlobalTxId(String globalTxId){
+throw new UnsupportedOperationException("NoneTransactionRepository 
Unsupported!");
+  }
+
+  @Override
+  public PagingGloablTransactions getGloablTransactions(int page, int size) 
throws Exception {
+throw new UnsupportedOperationException("NoneTransactionRepository 
Unsupported!");
+  }
 }
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
index 1916354..472aabc 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
@@ -18,8 +18,15 @@
 package org.apache.servicecomb.pack.alpha.fsm.repository;
 
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GloablTransaction;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGloablTransactions;
 
 public interface TransactionRepository {
 
   void send(GloablTransaction transaction) throws Exception;
+
+  GloablTransaction getGloablTransactionByGlobalTxId(String globalTxId)
+  throws Exception;
+
+  PagingGloablTransactions getGloablTransactions(int page, int size)
+  throws Exception;
 }
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
index b7dc0a1..ef62b18 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
@@ -19,22 +19,38 @@ package 
org.apache.servicecomb.pack.alpha.fsm.repository.elasticsearch;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService;
 import org.apache.servicecomb.pack.alpha.fsm.repository.TransactionRepository;
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GloablTransaction;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGloablTransactions;
+import org.elasticsearch.action.search.SearchResponse;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.search.SearchHit;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
+import 

[servicecomb-pack] 21/38: SCB-1369 rebase

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 7b7e1d37c811b8abfb4d5879a480d3feb44f610c
Author: Lei Zhang 
AuthorDate: Fri Jul 26 21:59:27 2019 +0800

SCB-1369 rebase
---
 docs/fsm/how_to_use_fsm_zh.md | 552 --
 docs/user_guide.md|   8 +-
 docs/user_guide_zh.md |   8 +-
 3 files changed, 331 insertions(+), 237 deletions(-)

diff --git a/docs/fsm/how_to_use_fsm_zh.md b/docs/fsm/how_to_use_fsm_zh.md
index 6c7909e..d5da9b8 100644
--- a/docs/fsm/how_to_use_fsm_zh.md
+++ b/docs/fsm/how_to_use_fsm_zh.md
@@ -2,18 +2,27 @@
 
 ## 快速开始
 
-使用 `alpha.feature.akka.enabled=true` 开启状态机模式
+* 启动 Alpha
+  使用 `alpha.feature.akka.enabled=true` 开启状态机模式
 
-```bash
-java -jar alpha-server-${version}-exec.jar \
-  --spring.datasource.url=jdbc:postgresql://0.0.0.0:5432/saga?useSSL=false
-  --spring.datasource.username=saga-user
-  --spring.datasource.password=saga-password
-  --spring.profiles.active=prd
-  --alpha.feature.akka.enabled=true
-```
+  ```bash
+  java -jar alpha-server-${version}-exec.jar \
+--spring.datasource.url=jdbc:postgresql://0.0.0.0:5432/saga?useSSL=false \
+--spring.datasource.username=saga-user \
+--spring.datasource.password=saga-password \
+--spring.profiles.active=prd \
+--alpha.feature.akka.enabled=true
+  ```
+
+* Omega 侧配置
+
+  使用 `alpha.feature.akka.enabled=true` 开启状态机模式
+
+  ```base
+  alpha.feature.akka.enabled=true
+  ```
 
-**注意:**状态机模式默认没有存储执行完毕的事务数据,如果想存储执行后的事务数据请看使用 Elasticsearch 存储终止的全局事务数据章节
+**注意:**状态机模式默认没有存储执行完毕的事务数据,如果想存储执行后的事务数据请参考 "使用 Elasticsearch 存储终止的全局事务数据章节"
 
 ## Alpha 事件通道类型
 
@@ -27,7 +36,8 @@ Alpha 收到 Omeag 发送的事件后放入事件通道等待Akka处理,默认
 
 **注意:** activemq, kafka, redis 还未实现 0_0
 
-## 性能度量
+## Alpha APIs
+ 性能度量
 
 Alpha 提供一个性能度量查询API,使用这个查询接口可以返回当前事务各个环节性能指标,你可以使用基准测试工具 `AlphaBenchmark` 
模拟发送数据后查看性能指标。
 
@@ -90,247 +100,319 @@ curl http://localhost:8090/alpha/api/v1/metrics
 * repositoryRejected: 存储模块拒绝的全局事务数量
 * repositoryAvgTime: 平均耗时(毫秒)
 
-## 使用 Elasticsearch 存储终止的全局事务数据
-
-> 只有终止的全局事务才会存储到 Elasticsearch 中,终止的全局事务包含正常终止或者挂起终止两种情况,执行中的全局事务需要通过调用 Alpha 
RESTfulAPI 进行查询
+ 事务数据查询
 
-使用 docker 启动一个 Elasticsearch 服务,如果你已经有 Elasticsearch 服务请忽略这个步骤
+> 需要启动 Elasticsearch 存储事务
 
-```bash
-docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e 
"discovery.type=single-node" elasticsearch:6.6.2
-```
-
-启动 Alpha 的时候配置 Elasticsearch 参数
-
-```bash
-java -jar alpha-server-${version}-exec.jar \
-  --spring.datasource.url=jdbc:postgresql://0.0.0.0:5432/saga?useSSL=false
-  --spring.datasource.username=saga-user
-  --spring.datasource.password=saga-password
-  --spring.profiles.active=prd
-  --alpha.feature.akka.enabled=true
-  --alpha.feature.akka.transaction.repository.type=elasticsearch
-  --spring.data.elasticsearch.cluster-name=docker-cluster
-  --spring.data.elasticsearch.cluster-nodes=localhost:9300
-  --spring.elasticsearch.rest.uris=http://localhost:9200
-```
-| 参数名   | 默认值 | 说明 
|
-|  | -- | 
 |
-| alpha.feature.akka.transaction.repository.type   || 
持久化类型,目前可选值 elasticsearch,如果不设置则不存储 |
-| alpha.feature.akka.transaction.repository.elasticsearch.memory.size | -1 
| 持久化数据队列,默认 Integer.MAX. Actor会将终止的事务数据放入此队列,并等待存入elasticsearch |
-| alpha.feature.akka.transaction.repository.elasticsearch.batchSize | 100| 
elasticsearch 批量入库数量   |
-| alpha.feature.akka.transaction.repository.elasticsearch.refreshTime | 5000   
| elasticsearch 定时同步到ES时间   |
-| spring.data.elasticsearch.cluster-name   || 
ES集群名称   |
-| spring.data.elasticsearch.cluster-nodes  || 
ES节点地址,格式:localhost:9300,多个地址逗号分隔   |
-| spring.elasticsearch.rest.uris   || ES 
rest访问地址,格式:http://localhost:9200 |
-
-使用 Elasticsearch APIs 查询事务
-Alpha 会在 Elasticsearch 中创建一个名为 `alpha_global_transaction` 的索引,你可以使用以下方法查询事务数据
-
-查询所有事务
-
-```bash
-curl http://localhost:9200/alpha_global_transaction/_search
-```
+* 查询事务列表
 
-查询匹配 globalTxId 的事务
+  ```bash
+  curl -X GET http://localhost:8090/alpha/api/v1/transaction?page=0=50
+  
+  {
+"total": 2002,
+"page": 0,
+"size": 50,
+"elapsed": 581,
+"gloablTransactions": [...]
+  }
+  ```
+
+  请求参数
+
+  * page 页号
+
+  * size 返回行树
+
+  返回参数
+
+  * total 总行数
+  * page 本次查询结果页号
+  * size 本次查询行数
+  * elapsed 本次查询耗时(毫秒)
+  * gloablTransactions 事件数据列表
+
+* 查询一条事务
+
+  ```bash
+  curl -X GET http://localhost:8090/alpha/api/v1/transaction/{globalTxId}
+  
+  {
+"globalTxId": 

[servicecomb-pack] 23/38: SCB-1369 Save transaction data to Elasticsearch after SagaActor stopped

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 1fe0bd2472fd8c09c7026be0e4b3f908af93
Author: Lei Zhang 
AuthorDate: Thu Jul 18 14:36:34 2019 +0800

SCB-1369 Save transaction data to Elasticsearch after SagaActor stopped
---
 .../org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
index b9a144e..3378260 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
@@ -69,7 +69,7 @@ import 
org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
 @ConditionalOnProperty(value = {"alpha.feature.akka.enabled"})
 public class FsmAutoConfiguration {
 
-  @Value("${alpha.feature.akka.channel.memory.size:-1}")
+  @Value("${alpha.feature.akka.elasticsearch.memory.size:-1}")
   int memoryEventChannelMemorySize;
 
   
@Value("${alpha.feature.akka.transaction.repository.elasticsearch.batchSize:100}")



[servicecomb-pack] 31/38: SCB-1369 Add unit test cases for APIControllerV1

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit b78efa78608b3d8d5dbbdebb871390ec3a322dce
Author: Lei Zhang 
AuthorDate: Sat Aug 3 00:08:22 2019 +0800

SCB-1369 Add unit test cases for APIControllerV1
---
 .../fsm/repository/model/GlobalTransaction.java|   3 +
 .../fsm/repository/model/SagaSubTransaction.java   |   3 +
 .../alpha/server/api/APIControllerV1Tests.java | 310 +
 3 files changed, 316 insertions(+)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/GlobalTransaction.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/GlobalTransaction.java
index 8ec31c4..28b4165 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/GlobalTransaction.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/GlobalTransaction.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.pack.alpha.fsm.repository.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.LinkedList;
@@ -31,7 +32,9 @@ public class GlobalTransaction {
   private TransactionType type;
   private String serviceName;
   private String instanceId;
+  @JsonFormat(shape = JsonFormat.Shape.NUMBER)
   private Date beginTime;
+  @JsonFormat(shape = JsonFormat.Shape.NUMBER)
   private Date endTime;
   private SagaActorState state;
   private Integer subTxSize;
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/SagaSubTransaction.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/SagaSubTransaction.java
index a70585e..0c07f35 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/SagaSubTransaction.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/SagaSubTransaction.java
@@ -17,13 +17,16 @@
 
 package org.apache.servicecomb.pack.alpha.fsm.repository.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
 import org.apache.servicecomb.pack.alpha.fsm.TxState;
 
 public class SagaSubTransaction {
   private String localTxId;
   private String parentTxId;
+  @JsonFormat(shape = JsonFormat.Shape.NUMBER)
   private Date beginTime;
+  @JsonFormat(shape = JsonFormat.Shape.NUMBER)
   private Date endTime;
   private TxState state;
   private Long durationTime;
diff --git 
a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/api/APIControllerV1Tests.java
 
b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/api/APIControllerV1Tests.java
new file mode 100644
index 000..e4914b2
--- /dev/null
+++ 
b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/api/APIControllerV1Tests.java
@@ -0,0 +1,310 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.pack.alpha.server.api;
+
+import static org.hamcrest.Matchers.hasSize;
+import static org.mockito.Mockito.when;
+import static 
org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static 
org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static 
org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonGenerator.Feature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+import org.apache.servicecomb.pack.alpha.core.NodeStatus;
+import org.apache.servicecomb.pack.alpha.core.NodeStatus.TypeEnum;
+import org.apache.servicecomb.pack.alpha.fsm.SagaActorState;
+import org.apache.servicecomb.pack.alpha.fsm.TransactionType;
+import org.apache.servicecomb.pack.alpha.fsm.TxState;
+import org.apache.servicecomb.pack.alpha.fsm.event.SagaEndedEvent;
+import 

[servicecomb-pack] 22/38: SCB-1369 Test APIs adds prefix /test

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit e7a43a44b870ebffbd5e654884daf8c3c7540cee
Author: Lei Zhang 
AuthorDate: Fri Jul 26 19:45:03 2019 +0800

SCB-1369 Test APIs adds prefix /test
---
 .../src/test/java/org/apache/servicecomb/pack/PackStepdefs.java | 6 --
 .../servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java| 5 ++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git 
a/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/java/org/apache/servicecomb/pack/PackStepdefs.java
 
b/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/java/org/apache/servicecomb/pack/PackStepdefs.java
index 9c6a194..c66e46f 100644
--- 
a/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/java/org/apache/servicecomb/pack/PackStepdefs.java
+++ 
b/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/java/org/apache/servicecomb/pack/PackStepdefs.java
@@ -56,6 +56,8 @@ public class PackStepdefs implements En {
   private static final Map submits = new HashMap<>();
 
   public PackStepdefs() {
+String[] globalTxId = new String[1];
+
 Given("^Car Service is up and running$", () -> {
   probe(System.getProperty(CAR_SERVICE_ADDRESS));
 });
@@ -102,7 +104,7 @@ public class PackStepdefs implements En {
   map.keySet().retainAll(dataTable.topCells());
   };
 
-  dataMatches(System.getProperty(ALPHA_REST_ADDRESS) + 
"/saga/akka/events/last", dataTable, columnStrippingConsumer);
+  dataMatches(System.getProperty(ALPHA_REST_ADDRESS) + 
"/test/saga/akka/events/last", dataTable, columnStrippingConsumer);
 });
 
 And("^Car Service contains the following booking orders$", (DataTable 
dataTable) -> {
@@ -127,7 +129,7 @@ public class PackStepdefs implements En {
 
 given()
 .when()
-.delete(System.getProperty(ALPHA_REST_ADDRESS) + "/saga/akka/events")
+.delete(System.getProperty(ALPHA_REST_ADDRESS) + 
"/test/saga/akka/events")
 .then()
 .statusCode(is(200));
 
diff --git 
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java
 
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java
index 3e28e42..88a635c 100644
--- 
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java
+++ 
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java
@@ -44,7 +44,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 
 @EnableKamon
 @Controller
-@RequestMapping("/saga/akka")
+@RequestMapping("/test/saga/akka")
 @Profile("test")
 @ConditionalOnProperty(name= "alpha.feature.akka.enabled", havingValue = 
"true")
 // Only export this Controller for test
@@ -59,7 +59,7 @@ class FsmSagaDataController {
   ResponseEntity> events() {
 LOG.info("Get the events request");
 List eventVos = new LinkedList<>();
-SagaData data = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
+SagaData data = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
 data.getEvents().forEach(event -> {
   Map obj = new HashMap();
   obj.put("serviceName",event.getServiceName());
@@ -75,7 +75,6 @@ class FsmSagaDataController {
   @Trace("deleteEvents")
   @DeleteMapping("/events")
   ResponseEntity clear() {
-SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).clearSagaData();
 return ResponseEntity.ok("All events deleted");
   }
 



[servicecomb-pack] 29/38: SCB-1369 Add license header

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit c19ef0c99e3af2fab818385a19e03d13ef5c13da
Author: Lei Zhang 
AuthorDate: Fri Aug 2 12:44:11 2019 +0800

SCB-1369 Add license header
---
 .../fsm/repository/model/PagingGloablTransactions.java  | 17 +
 1 file changed, 17 insertions(+)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/PagingGloablTransactions.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/PagingGloablTransactions.java
index 741cdbe..980a886 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/PagingGloablTransactions.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/PagingGloablTransactions.java
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.servicecomb.pack.alpha.fsm.repository.model;
 
 import java.util.List;



[servicecomb-pack] 38/38: SCB-1369 Modify warning message

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 958e59735376b3b13d600f90a889265500628b4c
Author: Lei Zhang 
AuthorDate: Mon Aug 5 16:17:53 2019 +0800

SCB-1369 Modify warning message
---
 .../pack/alpha/fsm/repository/NoneTransactionRepository.java| 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
index fac9cd2..a50bd47 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
@@ -29,7 +29,7 @@ public class NoneTransactionRepository implements 
TransactionRepository {
 
   @Override
   public void send(GlobalTransaction transaction) {
-LOG.warn("Please configure 
alpha.feature.akka.transaction.repository.type=elasticsearch to use 
elasticsearch to persist transaction data.");
+LOG.warn("NoneTransactionRepostory is set");
   }
 
   @Override



[servicecomb-pack] 26/38: SCB-1369 Fixed typo Global

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 398056424bd644bfc010648baa3d84b396c425a5
Author: Lei Zhang 
AuthorDate: Sun Jul 28 19:30:13 2019 +0800

SCB-1369 Fixed typo Global
---
 .../AbstractTransactionRepositoryChannel.java  |  6 ++---
 .../fsm/repository/NoneTransactionRepository.java  |  6 ++---
 .../fsm/repository/TransactionRepository.java  |  6 ++---
 .../repository/TransactionRepositoryChannel.java   |  4 +--
 .../MemoryTransactionRepositoryChannel.java| 14 +-
 .../ElasticsearchTransactionRepository.java| 14 +-
 .../elasticsearch/GloablTransactionDocument.java   |  4 +--
 ...oablTransaction.java => GlobalTransaction.java} | 30 +++---
 .../repository/model/PagingGloablTransactions.java | 14 +-
 .../spring/integration/akka/SagaDataExtension.java |  4 +--
 .../ElasticsearchTransactionRepositoryTest.java|  8 +++---
 .../pack/alpha/server/api/APIControllerV1.java |  8 +++---
 docs/fsm/how_to_use_fsm_zh.md  |  4 +--
 13 files changed, 61 insertions(+), 61 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/AbstractTransactionRepositoryChannel.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/AbstractTransactionRepositoryChannel.java
index 92ed257..01727d2 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/AbstractTransactionRepositoryChannel.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/AbstractTransactionRepositoryChannel.java
@@ -18,14 +18,14 @@
 package org.apache.servicecomb.pack.alpha.fsm.repository;
 
 import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService;
-import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GloablTransaction;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GlobalTransaction;
 
 public abstract class AbstractTransactionRepositoryChannel implements 
TransactionRepositoryChannel {
 
   protected final MetricsService metricsService;
   protected final TransactionRepository repository;
 
-  public abstract void sendTo(GloablTransaction transaction);
+  public abstract void sendTo(GlobalTransaction transaction);
 
   public AbstractTransactionRepositoryChannel(
   TransactionRepository repository,
@@ -34,7 +34,7 @@ public abstract class AbstractTransactionRepositoryChannel 
implements Transactio
 this.metricsService = metricsService;
   }
 
-  public void send(GloablTransaction transaction) {
+  public void send(GlobalTransaction transaction) {
 this.sendTo(transaction);
   }
 
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
index 9cd6d1e..e40629f 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.pack.alpha.fsm.repository;
 
 import java.lang.invoke.MethodHandles;
-import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GloablTransaction;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GlobalTransaction;
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGloablTransactions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -28,12 +28,12 @@ public class NoneTransactionRepository implements 
TransactionRepository {
   private static final Logger LOG = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @Override
-  public void send(GloablTransaction transaction) {
+  public void send(GlobalTransaction transaction) {
 LOG.warn("Please configure 
alpha.feature.akka.transaction.repository.type=elasticsearch to use 
elasticsearch to persist transaction data.");
   }
 
   @Override
-  public GloablTransaction getGloablTransactionByGlobalTxId(String globalTxId){
+  public GlobalTransaction getGloablTransactionByGlobalTxId(String globalTxId){
 throw new UnsupportedOperationException("NoneTransactionRepository 
Unsupported!");
   }
 
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
index 472aabc..7e81fc7 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
@@ -17,14 +17,14 

[servicecomb-pack] 17/38: SCB-1369 Clean up memory data after persisting data to ES

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit b54421e855f2590a646472de15943481788a017e
Author: Lei Zhang 
AuthorDate: Fri Jul 26 19:08:00 2019 +0800

SCB-1369 Clean up memory data after persisting data to ES
---
 .../spring/integration/akka/SagaDataExtension.java | 63 +++
 .../servicecomb/pack/alpha/fsm/SagaActorTest.java  | 33 +-
 .../pack/alpha/fsm/SagaIntegrationTest.java| 73 +++---
 3 files changed, 64 insertions(+), 105 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SagaDataExtension.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SagaDataExtension.java
index 5354f21..dbf7425 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SagaDataExtension.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SagaDataExtension.java
@@ -39,8 +39,6 @@ public class SagaDataExtension extends 
AbstractExtensionId {
 
   private static final Logger LOG = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
   public static final SagaDataExtension SAGA_DATA_EXTENSION_PROVIDER = new 
SagaDataExtension();
-  //TODO We could use test profile the enable this kind feature
-  public static boolean autoCleanSagaDataMap = true; // Only for Test
 
   @Override
   public SagaDataExt createExtension(ExtendedActorSystem system) {
@@ -48,30 +46,18 @@ public class SagaDataExtension extends 
AbstractExtensionId {
   }
 
   public static class SagaDataExt implements Extension {
-
+private SagaData lastSagaData;
 private final ConcurrentHashMap sagaDataMap = new 
ConcurrentHashMap();
-private String lastGlobalTxId;
-private CleanMemForTest cleanMemForTest = new CleanMemForTest(sagaDataMap);
 private MetricsService metricsService;
 private TransactionRepositoryChannel repositoryChannel;
 
-public SagaDataExt() {
-  // Just to avoid the overflow of the OldGen for stress testing
-  // Delete after SagaData persistence
-  if (autoCleanSagaDataMap) {
-new Thread(cleanMemForTest).start();
-  }
-}
-
 public void putSagaData(String globalTxId, SagaData sagaData) {
-  lastGlobalTxId = globalTxId;
   sagaDataMap.put(globalTxId, sagaData);
+  lastSagaData = sagaData;
 }
 
 public void stopSagaData(String globalTxId, SagaData sagaData) {
-  // TODO save SagaDate to database and clean sagaDataMap
   this.putSagaData(globalTxId, sagaData);
-  lastGlobalTxId = globalTxId;
   if (sagaData.getLastState() == SagaActorState.COMMITTED) {
 this.metricsService.metrics().doCommitted();
   } else if (sagaData.getLastState() == SagaActorState.COMPENSATED) {
@@ -102,22 +88,17 @@ public class SagaDataExtension extends 
AbstractExtensionId {
   .events(sagaData.getEvents())
   .build();
   repositoryChannel.send(record);
+  sagaDataMap.remove(globalTxId);
 }
 
-public SagaData getSagaData(String globalTxId) {
-  // TODO If globalTxId does not exist in sagaDataMap then
-  //  load from the database
-  return sagaDataMap.get(globalTxId);
+// Only for Test
+public SagaData getLastSagaDate() {
+  return lastSagaData;
 }
 
-// Only test
-public void clearSagaData() {
-  lastGlobalTxId = null;
-  sagaDataMap.clear();
-}
-
-public SagaData getLastSagaData() {
-  return getSagaData(lastGlobalTxId);
+// Only for Test
+public void cleanLastSagaData() {
+  lastSagaData = null;
 }
 
 public void doSagaBeginCounter() {
@@ -142,30 +123,4 @@ public class SagaDataExtension extends 
AbstractExtensionId {
   this.repositoryChannel = repositoryChannel;
 }
   }
-
-  static class CleanMemForTest implements Runnable {
-
-final ConcurrentHashMap sagaDataMap;
-
-public CleanMemForTest(ConcurrentHashMap sagaDataMap) {
-  this.sagaDataMap = sagaDataMap;
-}
-
-@Override
-public void run() {
-  while (true) {
-try {
-  sagaDataMap.clear();
-} catch (Exception e) {
-  LOG.error(e.getMessage(), e);
-} finally {
-  try {
-Thread.sleep(1);
-  } catch (InterruptedException e) {
-LOG.error(e.getMessage(), e);
-  }
-}
-  }
-}
-  }
 }
diff --git 
a/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaActorTest.java
 
b/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaActorTest.java
index 198ebf4..94e30a3 100644
--- 
a/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaActorTest.java
+++ 

[servicecomb-pack] 34/38: SCB-1369 Fixed typo

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 166e696272708690b29a3500b96321fb72964570
Author: Lei Zhang 
AuthorDate: Sat Aug 3 03:26:34 2019 +0800

SCB-1369 Fixed typo
---
 docs/user_guide.md| 2 +-
 docs/user_guide_zh.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/user_guide.md b/docs/user_guide.md
index 60446d7..791b08a 100644
--- a/docs/user_guide.md
+++ b/docs/user_guide.md
@@ -792,4 +792,4 @@ Alpha can be highly available by deploying multiple 
instances, enable cluster su
 
 ## Experiment
 
-[Alpha State Machine Mode](fsm/how_to_use_fsm_zh.md)
\ No newline at end of file
+[Alpha State Machine Mode](fsm/how_to_use_fsm.md)
\ No newline at end of file
diff --git a/docs/user_guide_zh.md b/docs/user_guide_zh.md
index 4c5e5d1..9bcbd44 100644
--- a/docs/user_guide_zh.md
+++ b/docs/user_guide_zh.md
@@ -778,4 +778,4 @@ Alpha 可以通过部署多实例的方式保证高可用,使用 `alpha.cluste
 
 ## 实验
 
-[Alpha 状态机模式](fsm/how_to_use_fsm_zh.md)
+[Alpha 状态机模式](fsm/how_to_use_fsm_zh.md)
\ No newline at end of file



[servicecomb-pack] 20/38: SCB-1369 Change @Autowired TransactionRepository required is false for Unit Tests

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 37b44cd6a2a5eb11519c5d452493ad9893338dd9
Author: Lei Zhang 
AuthorDate: Fri Jul 26 19:12:17 2019 +0800

SCB-1369 Change @Autowired TransactionRepository required is false for Unit 
Tests
---
 .../org/apache/servicecomb/pack/alpha/server/api/APIControllerV1.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/api/APIControllerV1.java
 
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/api/APIControllerV1.java
index 0c0481e..336b710 100644
--- 
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/api/APIControllerV1.java
+++ 
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/api/APIControllerV1.java
@@ -36,7 +36,7 @@ public class APIControllerV1 {
   @Autowired
   AlphaMetrics AlphaMetrics;
 
-  @Autowired
+  @Autowired(required = false)
   TransactionRepository transactionRepository;
 
   @GetMapping(value = "/metrics")



[servicecomb-pack] 28/38: SCB-1369 Fixed typo

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 8a55243fda762f948502645a7d0db68a2f794e18
Author: Lei Zhang 
AuthorDate: Mon Jul 29 16:57:16 2019 +0800

SCB-1369 Fixed typo
---
 .../spring/integration/akka/SagaDataExtension.java |  2 +-
 .../servicecomb/pack/alpha/fsm/SagaActorTest.java  | 26 -
 .../pack/alpha/fsm/SagaIntegrationTest.java| 48 -
 .../alpha/server/fsm/FsmSagaDataController.java|  2 +-
 .../alpha/server/fsm/AlphaIntegrationFsmTest.java  | 62 +++---
 5 files changed, 70 insertions(+), 70 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SagaDataExtension.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SagaDataExtension.java
index f4b8e3a..b741453 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SagaDataExtension.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/spring/integration/akka/SagaDataExtension.java
@@ -92,7 +92,7 @@ public class SagaDataExtension extends 
AbstractExtensionId {
 }
 
 // Only for Test
-public SagaData getLastSagaDate() {
+public SagaData getLastSagaData() {
   return lastSagaData;
 }
 
diff --git 
a/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaActorTest.java
 
b/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaActorTest.java
index 94e30a3..c09b416 100644
--- 
a/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaActorTest.java
+++ 
b/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaActorTest.java
@@ -171,7 +171,7 @@ public class SagaActorTest {
   Terminated terminated = expectMsgClass(Terminated.class);
   assertEquals(terminated.getActor(), saga);
 
-  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
+  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
   assertEquals(sagaData.getGlobalTxId(), globalTxId);
   assertEquals(sagaData.getTxEntityMap().size(), 3);
   sagaData.getTxEntityMap().forEach((k, v) -> {
@@ -259,7 +259,7 @@ public class SagaActorTest {
   Terminated terminated = expectMsgClass(Terminated.class);
   assertEquals(terminated.getActor(), recoveredSaga);
 
-  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
+  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
   assertEquals(sagaData.getGlobalTxId(), globalTxId);
   assertEquals(sagaData.getTxEntityMap().size(), 3);
   sagaData.getTxEntityMap().forEach((k, v) -> {
@@ -311,7 +311,7 @@ public class SagaActorTest {
   Terminated terminated = expectMsgClass(Terminated.class);
   assertEquals(terminated.getActor(), saga);
 
-  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
+  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
   assertEquals(sagaData.getGlobalTxId(), globalTxId);
   assertEquals(sagaData.getTxEntityMap().size(), 1);
   assertEquals(sagaData.getTxEntityMap().get(localTxId_1).getState(), 
TxState.FAILED);
@@ -373,7 +373,7 @@ public class SagaActorTest {
   Terminated terminated = expectMsgClass(Terminated.class);
   assertEquals(terminated.getActor(), saga);
 
-  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
+  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
   assertEquals(sagaData.getGlobalTxId(), globalTxId);
   assertEquals(sagaData.getTxEntityMap().size(), 2);
   assertEquals(sagaData.getTxEntityMap().get(localTxId_1).getState(), 
TxState.COMPENSATED);
@@ -446,7 +446,7 @@ public class SagaActorTest {
   Terminated terminated = expectMsgClass(Terminated.class);
   assertEquals(terminated.getActor(), saga);
 
-  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
+  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
   assertEquals(sagaData.getGlobalTxId(), globalTxId);
   assertEquals(sagaData.getTxEntityMap().size(), 3);
   assertEquals(sagaData.getTxEntityMap().get(localTxId_1).getState(), 
TxState.COMPENSATED);
@@ -519,7 +519,7 @@ public class SagaActorTest {
   Terminated terminated = expectMsgClass(Terminated.class);
   assertEquals(terminated.getActor(), saga);
 
-  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
+  SagaData sagaData = 
SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaData();
   assertEquals(sagaData.getGlobalTxId(), globalTxId);
   

[servicecomb-pack] 37/38: SCB-1369 Add License header

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 5ab27e84646c3dcd7e45eaee9957d1262239f11f
Author: Lei Zhang 
AuthorDate: Mon Aug 5 16:15:39 2019 +0800

SCB-1369 Add License header
---
 .../elasticsearch/GlobalTransactionDocument.java| 17 +
 1 file changed, 17 insertions(+)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/GlobalTransactionDocument.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/GlobalTransactionDocument.java
index 47c25d9..ebd542f 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/GlobalTransactionDocument.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/GlobalTransactionDocument.java
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.servicecomb.pack.alpha.fsm.repository.elasticsearch;
 
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GlobalTransaction;



[servicecomb-pack] 15/38: SCB-1369 Attribute events type changed to Map for deserialize the JSON

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 3ca881230aabf07d7434924d6fbea51396fb52f1
Author: Lei Zhang 
AuthorDate: Fri Jul 26 18:39:26 2019 +0800

SCB-1369 Attribute events type changed to Map for deserialize the JSON
---
 .../pack/alpha/fsm/repository/model/GloablTransaction.java  | 13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/GloablTransaction.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/GloablTransaction.java
index 045ec98..f0572a2 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/GloablTransaction.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/GloablTransaction.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 import org.apache.servicecomb.pack.alpha.fsm.SagaActorState;
 import org.apache.servicecomb.pack.alpha.fsm.TransactionType;
 import org.apache.servicecomb.pack.alpha.fsm.event.base.BaseEvent;
@@ -36,7 +37,7 @@ public class GloablTransaction {
   private Integer subTxSize;
   private Long durationTime;
   private List subTransactions = new ArrayList<>();
-  private List events = new LinkedList<>();
+  private List> events = new LinkedList<>();
 
   public String getGlobalTxId() {
 return globalTxId;
@@ -78,7 +79,7 @@ public class GloablTransaction {
 return subTransactions;
   }
 
-  public List getEvents() {
+  public List> getEvents() {
 return events;
   }
 
@@ -164,7 +165,13 @@ public class GloablTransaction {
   gloablTransaction.subTxSize = this.subTxSize;
   gloablTransaction.durationTime = this.endTime.getTime() - 
this.beginTime.getTime();
   gloablTransaction.subTransactions = this.subTransactions;
-  gloablTransaction.events = this.events;
+  for(BaseEvent event : events){
+try {
+  gloablTransaction.events.add(event.toMap());
+} catch (Exception e) {
+  new RuntimeException(e.getMessage(),e);
+}
+  }
   return gloablTransaction;
 }
   }



[servicecomb-pack] 33/38: SCB-1369 Modify APIs to return JSON date format to long

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit c9651fc346562f49db732d9d03f6e949032f4f69
Author: Lei Zhang 
AuthorDate: Sat Aug 3 00:25:21 2019 +0800

SCB-1369 Modify APIs to return JSON date format to long
---
 docs/fsm/how_to_use_fsm.md| 4 ++--
 docs/fsm/how_to_use_fsm_zh.md | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/docs/fsm/how_to_use_fsm.md b/docs/fsm/how_to_use_fsm.md
index 7a5fd5b..a0c61da 100644
--- a/docs/fsm/how_to_use_fsm.md
+++ b/docs/fsm/how_to_use_fsm.md
@@ -137,8 +137,8 @@ description
 "type": "SAGA",
 "serviceName": "alpha-benchmark",
 "instanceId": "alpha-benchmark-127.0.0.1",
-"beginTime": "2019-07-26T07:46:27.215+",
-"endTime": "2019-07-26T07:46:27.623+",
+"beginTime": 1564762932963,
+"endTime": 1564762933197,
 "state": "COMMITTED",
 "subTxSize": 3,
 "durationTime": 408,
diff --git a/docs/fsm/how_to_use_fsm_zh.md b/docs/fsm/how_to_use_fsm_zh.md
index 4bf743b..9e0ab71 100644
--- a/docs/fsm/how_to_use_fsm_zh.md
+++ b/docs/fsm/how_to_use_fsm_zh.md
@@ -143,8 +143,8 @@ curl http://localhost:8090/alpha/api/v1/metrics
 "type": "SAGA",
 "serviceName": "alpha-benchmark",
 "instanceId": "alpha-benchmark-127.0.0.1",
-"beginTime": "2019-07-26T07:46:27.215+",
-"endTime": "2019-07-26T07:46:27.623+",
+"beginTime": 1564762932963,
+"endTime": 1564762933197,
 "state": "COMMITTED",
 "subTxSize": 3,
 "durationTime": 408,



[servicecomb-pack] 27/38: SCB-1369 Fixed conflict

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit ceec64bb7115d4061a0e99b82bc96b8404fd7196
Author: Lei Zhang 
AuthorDate: Sun Jul 28 19:38:07 2019 +0800

SCB-1369 Fixed conflict
---
 docs/user_guide.md| 9 +++--
 docs/user_guide_zh.md | 4 +---
 2 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/docs/user_guide.md b/docs/user_guide.md
index 44eb353..60446d7 100644
--- a/docs/user_guide.md
+++ b/docs/user_guide.md
@@ -786,13 +786,10 @@ Alpha instance can register to the discovery service, 
Omega obtains Alpha's inst
 
 Alpha can be highly available by deploying multiple instances, enable cluster 
support with the `alpha.cluster.master.enabled=true` parameter.
 
-<<< HEAD
-
-
 [src-TransactionClientHttpRequestInterceptor]: 
../omega/omega-transport/omega-transport-resttemplate/src/main/java/org/apache/servicecomb/pack/omega/transport/resttemplate/TransactionClientHttpRequestInterceptor.java
 [src-TransactionHandlerInterceptor]: 
../omega/omega-transport/omega-transport-resttemplate/src/main/java/org/apache/servicecomb/pack/omega/transport/resttemplate/TransactionHandlerInterceptor.java
-===
+
+
 ## Experiment
 
-[Alpha State Machine Mode](fsm/how_to_use_fsm_zh.md)
->>> 2af60216... SCB-1369 Update FSM documents
+[Alpha State Machine Mode](fsm/how_to_use_fsm_zh.md)
\ No newline at end of file
diff --git a/docs/user_guide_zh.md b/docs/user_guide_zh.md
index 88bd429..4c5e5d1 100644
--- a/docs/user_guide_zh.md
+++ b/docs/user_guide_zh.md
@@ -773,11 +773,9 @@ public void bar(BarCommandWithTxContext cmdWithTxContext) {
 
 Alpha 可以通过部署多实例的方式保证高可用,使用 `alpha.cluster.master.enabled=true` 参数开启集群支持
 
-<<< HEAD
 [src-TransactionClientHttpRequestInterceptor]: 
../omega/omega-transport/omega-transport-resttemplate/src/main/java/org/apache/servicecomb/pack/omega/transport/resttemplate/TransactionClientHttpRequestInterceptor.java
 [src-TransactionHandlerInterceptor]: 
../omega/omega-transport/omega-transport-resttemplate/src/main/java/org/apache/servicecomb/pack/omega/transport/resttemplate/TransactionHandlerInterceptor.java
-===
+
 ## 实验
 
 [Alpha 状态机模式](fsm/how_to_use_fsm_zh.md)
->>> 2af60216... SCB-1369 Update FSM documents



[servicecomb-pack] 35/38: SCB-1369 Fixed transaction typo

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 131eb8386b850337d5c407a44e93468185fd1082
Author: Lei Zhang 
AuthorDate: Sat Aug 3 03:43:14 2019 +0800

SCB-1369 Fixed transaction typo
---
 .../org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
index b9a144e..17cb647 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
@@ -201,13 +201,13 @@ public class FsmAutoConfiguration {
 
   @Bean
   @ConditionalOnMissingBean(TransactionRepository.class)
-  public TransactionRepository transcationRepository() {
+  public TransactionRepository transactionRepository() {
 return new NoneTransactionRepository();
   }
 
   @Bean
   @ConditionalOnProperty(value = 
"alpha.feature.akka.transaction.repository.type", havingValue = "elasticsearch")
-  public TransactionRepository transcationRepository(MetricsService 
metricsService,
+  public TransactionRepository transactionRepository(MetricsService 
metricsService,
   ElasticsearchTemplate template) {
 return new ElasticsearchTransactionRepository(template, metricsService,
 repositoryElasticsearchBatchSize, repositoryElasticsearchRefreshTime);



[servicecomb-pack] 36/38: SCB-1369 Fixed global typo

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 4130d60488a314114c3aea6614c3c53ec6d0baa1
Author: Lei Zhang 
AuthorDate: Sat Aug 3 03:48:26 2019 +0800

SCB-1369 Fixed global typo
---
 .../fsm/repository/NoneTransactionRepository.java  |  4 +--
 .../fsm/repository/TransactionRepository.java  |  4 +--
 .../MemoryTransactionRepositoryChannel.java|  4 +--
 .../ElasticsearchTransactionRepository.java| 32 +++---
 ...ocument.java => GlobalTransactionDocument.java} |  2 +-
 .../repository/model/PagingGlobalTransactions.java |  2 +-
 .../pack/alpha/server/api/APIControllerV1.java |  4 +--
 .../alpha/server/api/APIControllerV1Tests.java |  6 ++--
 8 files changed, 29 insertions(+), 29 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
index f18f8ed..fac9cd2 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
@@ -33,12 +33,12 @@ public class NoneTransactionRepository implements 
TransactionRepository {
   }
 
   @Override
-  public GlobalTransaction getGloablTransactionByGlobalTxId(String globalTxId){
+  public GlobalTransaction getGlobalTransactionByGlobalTxId(String globalTxId){
 throw new UnsupportedOperationException("NoneTransactionRepository 
Unsupported!");
   }
 
   @Override
-  public PagingGlobalTransactions getGloablTransactions(int page, int size) 
throws Exception {
+  public PagingGlobalTransactions getGlobalTransactions(int page, int size) 
throws Exception {
 throw new UnsupportedOperationException("NoneTransactionRepository 
Unsupported!");
   }
 }
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
index 8079462..463ff59 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
@@ -24,9 +24,9 @@ public interface TransactionRepository {
 
   void send(GlobalTransaction transaction) throws Exception;
 
-  GlobalTransaction getGloablTransactionByGlobalTxId(String globalTxId)
+  GlobalTransaction getGlobalTransactionByGlobalTxId(String globalTxId)
   throws Exception;
 
-  PagingGlobalTransactions getGloablTransactions(int page, int size)
+  PagingGlobalTransactions getGlobalTransactions(int page, int size)
   throws Exception;
 }
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/channel/MemoryTransactionRepositoryChannel.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/channel/MemoryTransactionRepositoryChannel.java
index 8a143eb..abc5add 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/channel/MemoryTransactionRepositoryChannel.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/channel/MemoryTransactionRepositoryChannel.java
@@ -37,7 +37,7 @@ public class MemoryTransactionRepositoryChannel extends 
AbstractTransactionRepos
 super(repository, metricsService);
 this.size = size > 0 ? size : Integer.MAX_VALUE;
 globalTransactionQueue = new LinkedBlockingQueue(this.size);
-new Thread(new GloablTransactionConsumer(), 
"MemoryTransactionRepositoryChannel").start();
+new Thread(new GlobalTransactionConsumer(), 
"MemoryTransactionRepositoryChannel").start();
   }
 
   @Override
@@ -49,7 +49,7 @@ public class MemoryTransactionRepositoryChannel extends 
AbstractTransactionRepos
 }
   }
 
-  class GloablTransactionConsumer implements Runnable {
+  class GlobalTransactionConsumer implements Runnable {
 
 @Override
 public void run() {
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
index b802cdf..3a1a430 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
@@ -91,16 +91,16 @@ public class ElasticsearchTransactionRepository 

[servicecomb-pack] 25/38: SCB-1369 Default non-persistent transaction data

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 15956e176b29f08b86274fe053757adbbe41fc25
Author: Lei Zhang 
AuthorDate: Fri Jul 26 15:02:09 2019 +0800

SCB-1369 Default non-persistent transaction data
---
 .../org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
index 3378260..b9a144e 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
@@ -69,7 +69,7 @@ import 
org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
 @ConditionalOnProperty(value = {"alpha.feature.akka.enabled"})
 public class FsmAutoConfiguration {
 
-  @Value("${alpha.feature.akka.elasticsearch.memory.size:-1}")
+  @Value("${alpha.feature.akka.channel.memory.size:-1}")
   int memoryEventChannelMemorySize;
 
   
@Value("${alpha.feature.akka.transaction.repository.elasticsearch.batchSize:100}")



[servicecomb-pack] 30/38: SCB-1369 Update document

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 6b18f4e7ea67223d597a0c5f11ffb6ae0ebe9173
Author: Lei Zhang 
AuthorDate: Fri Aug 2 15:28:58 2019 +0800

SCB-1369 Update document
---
 .../{how_to_use_fsm_zh.md => how_to_use_fsm.md}| 302 +
 docs/fsm/how_to_use_fsm_zh.md  | 177 
 2 files changed, 312 insertions(+), 167 deletions(-)

diff --git a/docs/fsm/how_to_use_fsm_zh.md b/docs/fsm/how_to_use_fsm.md
similarity index 51%
copy from docs/fsm/how_to_use_fsm_zh.md
copy to docs/fsm/how_to_use_fsm.md
index c458f74..7a5fd5b 100644
--- a/docs/fsm/how_to_use_fsm_zh.md
+++ b/docs/fsm/how_to_use_fsm.md
@@ -1,9 +1,17 @@
-# 使用 Alpha 状态机模式
+# Alpha With State Machine
 
-## 快速开始
+## Quick Start
 
-* 启动 Alpha
-  使用 `alpha.feature.akka.enabled=true` 开启状态机模式
+The state machine mode save completed transaction data to elasticsearch
+
+* run elasticsearch with docker
+
+  ```bash
+  docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e 
"discovery.type=single-node" elasticsearch:6.6.2
+  ```
+
+* run Alpha
+  use  `alpha.feature.akka.enabled=true`  enabled state machine mode support
 
   ```bash
   java -jar alpha-server-${version}-exec.jar \
@@ -11,43 +19,34 @@
 --spring.datasource.username=saga-user \
 --spring.datasource.password=saga-password \
 --spring.profiles.active=prd \
---alpha.feature.akka.enabled=true
+--alpha.feature.akka.enabled=true \
+--alpha.feature.akka.transaction.repository.type=elasticsearch \
+--spring.data.elasticsearch.cluster-name=docker-cluster \
+--spring.data.elasticsearch.cluster-nodes=localhost:9300  
   ```
 
-* Omega 侧配置
+  **NOTE:**  `spring.data.elasticsearch.cluster-name` is elasticsearch cluster 
name, default is  `docker-cluster`  when run elasticsearch with docker,  you 
can query cluster name by  `curl http://localhost:9200/`  
+
+* Omega 
 
-  使用 `alpha.feature.akka.enabled=true` 开启状态机模式
+  use  `alpha.feature.akka.enabled=true`  enabled state machine mode support
 
   ```base
   alpha.feature.akka.enabled=true
   ```
 
-**注意:**状态机模式默认没有存储执行完毕的事务数据,如果想存储执行后的事务数据请参考 "使用 Elasticsearch 存储终止的全局事务数据章节"
-
-## Alpha 事件通道类型
-
-Alpha 收到 Omeag 
发送的事件后放入事件通道等待Akka处理,默认使用内存通道,内存通道不建议在生产环境使用,因为如果Alpha进程宕机,通道内的事件将丢失。生产环境建议使用 
activemq, kafka
-, redis 等通道类型,可以使用参数 `alpha.feature.akka.channel.type` 配置通道类型。
-
-| 参数名 | 默认值 | 说明   
 |
-| -- | -- | 
--- |
-| alpha.feature.akka.channel.type| memory | 可选类型有 activemq, kafka, 
redis   |
-| alpha.feature.akka.channel.memory.size | -1 | 
momory类型时内存队列大小,-1表示Integer.MAX |
-
-**注意:** activemq, kafka, redis 还未实现 0_0
-
 ## Alpha APIs
- 性能度量
+ Metrics
 
-Alpha 提供一个性能度量查询API,使用这个查询接口可以返回当前事务各个环节性能指标,你可以使用基准测试工具 `AlphaBenchmark` 
模拟发送数据后查看性能指标。
+You can query Alpha metrics by RESTful API, Use the  `AlphaBenchmark` to 
simulate sending data and quickly experience this feature.
 
-使用以下命令模拟 10 并发,发送 1000 个全局事务
+For exapmle; 10 concurrencies and send 1000 global transactions
 
 ```bash
 java -jar alpha-benchmark-0.5.0-SNAPSHOT-exec.jar 
--alpha.cluster.address=0.0.0.0:8080 --w=0 --n=1000 --c=10
 ```
 
-查询性能指标
+Query metrics
 
 ```bash
 curl http://localhost:8090/alpha/api/v1/metrics
@@ -77,34 +76,30 @@ curl http://localhost:8090/alpha/api/v1/metrics
 }
 ```
 
-例如以上指标中显示 `sagaAvgTime: 9` 表示每个全局事务在Akka的处理耗时9毫秒,`repositoryAvgTime: 0.88` 
表示每个全局事务入库耗时0.88毫秒
-
-指标说明
-
-* eventReceived: Alpha 收到的 gRPC 事件数量
-* eventAccepted:  Alpha 处理的 gRPC 事件数量(事件放入事件通道)
-* eventRejected:  Alpha 拒绝的 gRPC 事件数量
-* eventAvgTime: Alpha 平均耗时(毫秒)
-* actorReceived: Akka 收到的事件数量
-* actorAccepted:  Akka 处理的事件数量
-* actorRejected: Akka 拒绝的事件数量
-* actorAvgTime: Akka 平均耗时(毫秒)
-* sagaBeginCounter: 开始的 Saga 全局事务数量
-* sagaEndCounter: 结束的 Saga 全局事务数量
-* sagaAvgTime: 平均耗时(毫秒)
-* committed: COMMITTED状态的 Saga 全局事务数量
-* compensated: COMPENSATED状态的 Saga 全局事务数量
-* suspended: SUSPENDED状态的 Saga 的全局事务数量
-* repositoryReceived: 存储模块收到的全局事务数量
-* repositoryAccepted: 存储模块处理的全局事务数量
-* repositoryRejected: 存储模块拒绝的全局事务数量
-* repositoryAvgTime: 平均耗时(毫秒)
-
- 事务数据查询
-
-> 需要启动 Elasticsearch 存储事务
-
-* 查询事务列表
+description
+
+* eventReceived: number of gRPC events received
+* eventAccepted:  number of gRPC events accepted(events into the channel)
+* eventRejected:  number of gRPC events rejected
+* eventAvgTime: average elapsed time on events (milliseconds)
+* actorReceived: number of events received by actor
+* actorAccepted:  number of events accepted by actor
+* actorRejected: number of events rejected by actor
+* actorAvgTime: average elapsed time on actor (milliseconds)
+* sagaBeginCounter: saga global transaction start counter
+* sagaEndCounter: saga global transaction end counter
+* sagaAvgTime: average elapsed time 

[servicecomb-pack] 32/38: SCB-1369 Fixed typo

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 4207b6572bdcff17da09020b62f259c48fd52756
Author: Lei Zhang 
AuthorDate: Sat Aug 3 00:10:03 2019 +0800

SCB-1369 Fixed typo
---
 .../fsm/repository/NoneTransactionRepository.java  |  4 ++--
 .../alpha/fsm/repository/TransactionRepository.java|  4 ++--
 .../ElasticsearchTransactionRepository.java|  6 +++---
 ...Transactions.java => PagingGlobalTransactions.java} | 18 +-
 .../pack/alpha/server/api/APIControllerV1.java |  8 
 .../pack/alpha/server/api/APIControllerV1Tests.java|  4 ++--
 6 files changed, 22 insertions(+), 22 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
index e40629f..f18f8ed 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
@@ -19,7 +19,7 @@ package org.apache.servicecomb.pack.alpha.fsm.repository;
 
 import java.lang.invoke.MethodHandles;
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GlobalTransaction;
-import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGloablTransactions;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGlobalTransactions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,7 +38,7 @@ public class NoneTransactionRepository implements 
TransactionRepository {
   }
 
   @Override
-  public PagingGloablTransactions getGloablTransactions(int page, int size) 
throws Exception {
+  public PagingGlobalTransactions getGloablTransactions(int page, int size) 
throws Exception {
 throw new UnsupportedOperationException("NoneTransactionRepository 
Unsupported!");
   }
 }
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
index 7e81fc7..8079462 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/TransactionRepository.java
@@ -18,7 +18,7 @@
 package org.apache.servicecomb.pack.alpha.fsm.repository;
 
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GlobalTransaction;
-import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGloablTransactions;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGlobalTransactions;
 
 public interface TransactionRepository {
 
@@ -27,6 +27,6 @@ public interface TransactionRepository {
   GlobalTransaction getGloablTransactionByGlobalTxId(String globalTxId)
   throws Exception;
 
-  PagingGloablTransactions getGloablTransactions(int page, int size)
+  PagingGlobalTransactions getGloablTransactions(int page, int size)
   throws Exception;
 }
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
index 23e27da..b802cdf 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
@@ -27,7 +27,7 @@ import java.util.List;
 import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService;
 import org.apache.servicecomb.pack.alpha.fsm.repository.TransactionRepository;
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GlobalTransaction;
-import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGloablTransactions;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGlobalTransactions;
 import org.elasticsearch.action.search.SearchResponse;
 import org.elasticsearch.index.query.QueryBuilders;
 import org.elasticsearch.search.SearchHit;
@@ -100,7 +100,7 @@ public class ElasticsearchTransactionRepository implements 
TransactionRepository
   }
 
   @Override
-  public PagingGloablTransactions getGloablTransactions(int page, int size) {
+  public PagingGlobalTransactions getGloablTransactions(int page, int size) {
 long start = System.currentTimeMillis();
 List globalTransactions = new ArrayList();
 SearchQuery searchQuery = new NativeSearchQueryBuilder()
@@ -129,7 +129,7 @@ 

[servicecomb-pack] 19/38: SCB-1369 Modify the test case to get transaction data

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit a5156f66c7390613d8f825629b044171a2088d06
Author: Lei Zhang 
AuthorDate: Fri Jul 26 19:10:39 2019 +0800

SCB-1369 Modify the test case to get transaction data
---
 .../alpha/server/fsm/AlphaIntegrationFsmTest.java  | 64 +++---
 1 file changed, 32 insertions(+), 32 deletions(-)

diff --git 
a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/AlphaIntegrationFsmTest.java
 
b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/AlphaIntegrationFsmTest.java
index 257ca08..378f375 100644
--- 
a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/AlphaIntegrationFsmTest.java
+++ 
b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/fsm/AlphaIntegrationFsmTest.java
@@ -86,7 +86,6 @@ public class AlphaIntegrationFsmTest {
   @BeforeClass
   public static void beforeClass() {
 omegaEventSender.configClient(NettyChannelBuilder.forAddress("0.0.0.0", 
port).usePlaintext().build());
-//SagaDataExtension.autoCleanSagaDataMap=false;
   }
 
   @AfterClass
@@ -102,6 +101,7 @@ public class AlphaIntegrationFsmTest {
 
   @After
   public void after() {
+
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).cleanLastSagaData();
 omegaEventSender.onDisconnected();
   }
 
@@ -116,10 +116,10 @@ public class AlphaIntegrationFsmTest {
   omegaEventSender.getBlockingStub().onTxEvent(event);
 });
 await().atMost(2, SECONDS).until(() -> {
-  SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getSagaData(globalTxId);
+  SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
   return sagaData !=null && sagaData.isTerminated() && 
sagaData.getLastState()==SagaActorState.COMMITTED;
 });
-SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getSagaData(globalTxId);
+SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
 assertEquals(sagaData.getTxEntityMap().size(),3);
 assertNotNull(sagaData.getBeginTime());
 assertNotNull(sagaData.getEndTime());
@@ -138,10 +138,10 @@ public class AlphaIntegrationFsmTest {
   omegaEventSender.getBlockingStub().onTxEvent(event);
 });
 await().atMost(2, SECONDS).until(() -> {
-  SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getSagaData(globalTxId);
+  SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
   return sagaData !=null && sagaData.isTerminated() && 
sagaData.getLastState()==SagaActorState.COMPENSATED;
 });
-SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getSagaData(globalTxId);
+SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
 assertEquals(sagaData.getLastState(),SagaActorState.COMPENSATED);
 assertEquals(sagaData.getTxEntityMap().size(),1);
 assertNotNull(sagaData.getBeginTime());
@@ -160,10 +160,10 @@ public class AlphaIntegrationFsmTest {
   omegaEventSender.getBlockingStub().onTxEvent(event);
 });
 await().atMost(2, SECONDS).until(() -> {
-  SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getSagaData(globalTxId);
+  SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
   return sagaData !=null && sagaData.isTerminated() && 
sagaData.getLastState()==SagaActorState.COMPENSATED;
 });
-SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getSagaData(globalTxId);
+SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
 assertEquals(sagaData.getLastState(),SagaActorState.COMPENSATED);
 assertEquals(sagaData.getTxEntityMap().size(),2);
 assertNotNull(sagaData.getBeginTime());
@@ -184,10 +184,10 @@ public class AlphaIntegrationFsmTest {
   omegaEventSender.getBlockingStub().onTxEvent(event);
 });
 await().atMost(2, SECONDS).until(() -> {
-  SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getSagaData(globalTxId);
+  SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
   return sagaData !=null && sagaData.isTerminated() && 
sagaData.getLastState()==SagaActorState.COMPENSATED;
 });
-SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getSagaData(globalTxId);
+SagaData sagaData = 
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(system).getLastSagaDate();
 assertEquals(sagaData.getLastState(),SagaActorState.COMPENSATED);
 

[servicecomb-pack] 14/38: SCB-1369 Define Paging Query Object for APIs

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit c4cbc2484190782254a9700ab90c4a252c86f33a
Author: Lei Zhang 
AuthorDate: Fri Jul 26 18:36:04 2019 +0800

SCB-1369 Define Paging Query Object for APIs
---
 .../repository/model/PagingGloablTransactions.java | 83 ++
 1 file changed, 83 insertions(+)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/PagingGloablTransactions.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/PagingGloablTransactions.java
new file mode 100644
index 000..a477019
--- /dev/null
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/model/PagingGloablTransactions.java
@@ -0,0 +1,83 @@
+package org.apache.servicecomb.pack.alpha.fsm.repository.model;
+
+import java.util.List;
+
+public class PagingGloablTransactions {
+  private long total;
+  private int page;
+  private int size;
+  private long elapsed;
+
+  public long getTotal() {
+return total;
+  }
+
+  public int getPage() {
+return page;
+  }
+
+  public int getSize() {
+return size;
+  }
+
+  public long getElapsed() {
+return elapsed;
+  }
+
+  public List getGloablTransactions() {
+return gloablTransactions;
+  }
+
+  private List gloablTransactions;
+
+  public static Builder builder() {
+return new Builder();
+  }
+
+  public static final class Builder {
+
+private long total;
+private int page;
+private int size;
+private long elapsed;
+private List gloablTransactions;
+
+private Builder() {
+}
+
+public Builder total(long total) {
+  this.total = total;
+  return this;
+}
+
+public Builder page(int page) {
+  this.page = page;
+  return this;
+}
+
+public Builder size(int size) {
+  this.size = size;
+  return this;
+}
+
+public Builder elapsed(long elapsed) {
+  this.elapsed = elapsed;
+  return this;
+}
+
+public Builder gloablTransactions(List 
gloablTransactions) {
+  this.gloablTransactions = gloablTransactions;
+  return this;
+}
+
+public PagingGloablTransactions build() {
+  PagingGloablTransactions pagingGloablTransactions = new 
PagingGloablTransactions();
+  pagingGloablTransactions.total = this.total;
+  pagingGloablTransactions.gloablTransactions = this.gloablTransactions;
+  pagingGloablTransactions.page = this.page;
+  pagingGloablTransactions.size = this.size;
+  pagingGloablTransactions.elapsed = this.elapsed;
+  return pagingGloablTransactions;
+}
+  }
+}



[servicecomb-pack] 12/38: SCB-1369 Modify counter error

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 640c20a73ba21ab0c9d638d7efaebbc5843f8013
Author: Lei Zhang 
AuthorDate: Fri Jul 26 15:04:36 2019 +0800

SCB-1369 Modify counter error
---
 .../java/org/apache/servicecomb/pack/alpha/fsm/metrics/MetricsBean.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/metrics/MetricsBean.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/metrics/MetricsBean.java
index 55e8af2..5f68ce4 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/metrics/MetricsBean.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/metrics/MetricsBean.java
@@ -120,7 +120,7 @@ public class MetricsBean {
   }
 
   public void doRepositoryAccepted(int size) {
-repositoryAccepted.addAndGet(size);
+repositoryAccepted.getAndAdd(size);
   }
 
   public void doRepositoryRejected() {



[servicecomb-pack] 24/38: SCB-1369 Delete unused method & class

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit c79846efbfecf2ff1c61925fa1b93b62d62d57c9
Author: Lei Zhang 
AuthorDate: Fri Jul 26 14:51:05 2019 +0800

SCB-1369 Delete unused method & class
---
 alpha/alpha-server/src/main/resources/application.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/alpha/alpha-server/src/main/resources/application.yaml 
b/alpha/alpha-server/src/main/resources/application.yaml
index ba00719..ed2c41e 100644
--- a/alpha/alpha-server/src/main/resources/application.yaml
+++ b/alpha/alpha-server/src/main/resources/application.yaml
@@ -68,6 +68,7 @@ management:
 elasticsearch:
   enabled: false
 
+---
 spring:
   profiles: ssl
 alpha:



[servicecomb-pack] 02/38: SCB-1369 Resolve conflicts with Netty when initializing the number of client processors

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit a70fded17bfc7f463481caab0b9e909c955f8a0f
Author: Lei Zhang 
AuthorDate: Thu Jul 18 14:33:54 2019 +0800

SCB-1369 Resolve conflicts with Netty when initializing the number of 
client processors
---
 .../main/java/org/apache/servicecomb/pack/alpha/server/AlphaConfig.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git 
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaConfig.java
 
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaConfig.java
index d2e94b1..8e2a8ce 100644
--- 
a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaConfig.java
+++ 
b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaConfig.java
@@ -186,6 +186,8 @@ public class AlphaConfig {
 
   @PostConstruct
   void init() {
+//https://github.com/elastic/elasticsearch/issues/25741
+System.setProperty("es.set.netty.runtime.available.processors", "false");
 new PendingTaskRunner(pendingCompensations, delay).run();
   }
 



[servicecomb-pack] 07/38: SCB-1369 Merge cucumber feature & Redefine the byteman port number for booking, car, hotel

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit b8c1f65328092b90f05d3455f85334e58de6e5f5
Author: Lei Zhang 
AuthorDate: Fri Jul 26 14:46:47 2019 +0800

SCB-1369 Merge cucumber feature & Redefine the byteman port number for 
booking, car, hotel
---
 .../acceptance-pack-akka-spring-demo/pom.xml   | 27 ++
 1 file changed, 27 insertions(+)

diff --git a/acceptance-tests/acceptance-pack-akka-spring-demo/pom.xml 
b/acceptance-tests/acceptance-pack-akka-spring-demo/pom.xml
index 0e35229..9190412 100644
--- a/acceptance-tests/acceptance-pack-akka-spring-demo/pom.xml
+++ b/acceptance-tests/acceptance-pack-akka-spring-demo/pom.xml
@@ -118,6 +118,29 @@
   
 
 
+  elasticsearch:6.6.2
+  elasticsearch
+  
+
+  single-node
+
+
+  started
+  
+
+  9200
+  9300
+
+  
+  6
+
+
+  elasticsearch.rest.port:9200
+  elasticsearch.port:9300
+
+  
+
+
   alpha-server:${project.version}
   alpha
   
@@ -126,9 +149,13 @@
 -Dspring.profiles.active=prd,test
   
   
true
+  
elasticsearch
+  
docker-cluster
+  
elasticsearch.servicecomb.io:9300
 
 
   postgres:postgresql.servicecomb.io
+  elasticsearch:elasticsearch.servicecomb.io
 
 
   Started [a-zA-Z]+ in [0-9.]+ seconds



[servicecomb-pack] 04/38: SCB-1369 Rename Benchmark.md to benchmark_zh.md

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit a9cb93b9e6961b845e6f1c57153098a6f2f869be
Author: Lei Zhang 
AuthorDate: Thu Jul 25 00:44:00 2019 +0800

SCB-1369 Rename Benchmark.md to benchmark_zh.md
---
 docs/fsm/{Benchmark.md => benchmark_zh.md} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/docs/fsm/Benchmark.md b/docs/fsm/benchmark_zh.md
similarity index 100%
rename from docs/fsm/Benchmark.md
rename to docs/fsm/benchmark_zh.md



[servicecomb-pack] 09/38: SCB-1369 Modified to finally call the stopSagaData method

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 06aa10330ad22a4e5ae61923da988abcc69c3c6c
Author: Lei Zhang 
AuthorDate: Fri Jul 26 14:56:27 2019 +0800

SCB-1369 Modified to finally call the stopSagaData method
---
 .../java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java
index b998dcf..2675de3 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/SagaActor.java
@@ -358,14 +358,14 @@ public class SagaActor extends
   if (LOG.isDebugEnabled()) {
 LOG.debug("stop {} {}", data.getGlobalTxId(), state);
   }
-  data.setTerminated(true);
+  sagaEndTime = System.currentTimeMillis();
+  
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(context().system()).doSagaEndCounter();
+  
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(context().system()).doSagaAvgTime(sagaEndTime
 - sagaBeginTime);
   data.setLastState(state);
   data.setEndTime(new Date());
+  data.setTerminated(true);
   
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(getContext().getSystem())
   .stopSagaData(data.getGlobalTxId(), data);
-  sagaEndTime = System.currentTimeMillis();
-  
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(context().system()).doSagaEndCounter();
-  
SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER.get(context().system()).doSagaAvgTime(sagaEndTime
 - sagaBeginTime);
 }
 )
 );



[servicecomb-pack] 11/38: SCB-1369 Default non-persistent transaction data

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit f3c76ddbdc6c12acbb09a39e6a2b833f1902f0db
Author: Lei Zhang 
AuthorDate: Fri Jul 26 15:02:09 2019 +0800

SCB-1369 Default non-persistent transaction data
---
 .../pack/alpha/fsm/FsmAutoConfiguration.java   | 35 +++---
 .../fsm/repository/NoneTransactionRepository.java  | 33 
 2 files changed, 44 insertions(+), 24 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
index 28e517b..b9a144e 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
@@ -24,17 +24,14 @@ import akka.actor.ActorSystem;
 import com.typesafe.config.Config;
 import com.typesafe.config.ConfigFactory;
 import java.util.Map;
-<<< HEAD
-
-import org.apache.servicecomb.pack.alpha.core.NodeStatus;
-===
 import javax.annotation.PostConstruct;
->>> SCB-1369 Save transaction data to Elasticsearch after SagaActor stopped
+import org.apache.servicecomb.pack.alpha.core.NodeStatus;
 import org.apache.servicecomb.pack.alpha.fsm.channel.ActiveMQActorEventChannel;
 import org.apache.servicecomb.pack.alpha.fsm.channel.redis.MessagePublisher;
 import 
org.apache.servicecomb.pack.alpha.fsm.channel.redis.RedisMessagePublisher;
 import 
org.apache.servicecomb.pack.alpha.fsm.channel.redis.RedisMessageSubscriber;
 import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.NoneTransactionRepository;
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.elasticsearch.ElasticsearchTransactionRepository;
 import org.apache.servicecomb.pack.alpha.fsm.repository.TransactionRepository;
 import 
org.apache.servicecomb.pack.alpha.fsm.repository.channel.MemoryTransactionRepositoryChannel;
@@ -46,7 +43,6 @@ import 
org.apache.servicecomb.pack.alpha.fsm.channel.MemoryActorEventChannel;
 import org.apache.servicecomb.pack.alpha.fsm.channel.RedisActorEventChannel;
 import org.apache.servicecomb.pack.alpha.fsm.sink.SagaActorEventSender;
 import 
org.apache.servicecomb.pack.alpha.fsm.spring.integration.akka.AkkaConfigPropertyAdapter;
-import 
org.apache.servicecomb.pack.alpha.fsm.spring.integration.eventbus.EventSubscribeBeanPostProcessor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
@@ -58,7 +54,6 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.core.env.ConfigurableEnvironment;
-<<< HEAD
 import org.springframework.data.redis.connection.RedisConnection;
 import org.springframework.data.redis.connection.RedisConnectionFactory;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -68,15 +63,13 @@ import 
org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
 import org.springframework.data.redis.serializer.GenericToStringSerializer;
 import 
org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
 import org.springframework.data.redis.serializer.StringRedisSerializer;
-===
 import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
->>> SCB-1369 Save transaction data to Elasticsearch after SagaActor stopped
 
 @Configuration
 @ConditionalOnProperty(value = {"alpha.feature.akka.enabled"})
 public class FsmAutoConfiguration {
 
-  @Value("${alpha.feature.akka.elasticsearch.memory.size:-1}")
+  @Value("${alpha.feature.akka.channel.memory.size:-1}")
   int memoryEventChannelMemorySize;
 
   
@Value("${alpha.feature.akka.transaction.repository.elasticsearch.batchSize:100}")
@@ -114,11 +107,6 @@ public class FsmAutoConfiguration {
   }
 
   @Bean
-  public EventSubscribeBeanPostProcessor eventSubscribeBeanPostProcessor() {
-return new EventSubscribeBeanPostProcessor();
-  }
-
-  @Bean
   public MetricsService metricsService() {
 return new MetricsService();
   }
@@ -130,7 +118,6 @@ public class FsmAutoConfiguration {
 
   @Bean
   @ConditionalOnMissingBean(ActorEventChannel.class)
-  @ConditionalOnProperty(value = "alpha.feature.akka.channel.type", 
havingValue = "memory", matchIfMissing = true)
   public ActorEventChannel memoryEventChannel(ActorEventSink actorEventSink,
   MetricsService metricsService) {
 return new MemoryActorEventChannel(actorEventSink, 
memoryEventChannelMemorySize,
@@ -153,7 +140,6 @@ public class FsmAutoConfiguration {
 
   @Bean
   @ConditionalOnProperty(value = "alpha.feature.akka.channel.type", 
havingValue = "redis")

[servicecomb-pack] 10/38: SCB-1369 Use synchronization methods to avoid conflicts between thread refreshTimer and batch writes

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 690ebe1916fdcfa907866c1b8896ee17d8a52113
Author: Lei Zhang 
AuthorDate: Fri Jul 26 14:58:30 2019 +0800

SCB-1369 Use synchronization methods to avoid conflicts between thread 
refreshTimer and batch writes
---
 .../ElasticsearchTransactionRepository.java  | 20 +---
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
index 601249e..b7dc0a1 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
@@ -42,6 +42,7 @@ public class ElasticsearchTransactionRepository implements 
TransactionRepository
   private int batchSizeCounter;
   private int refreshTime;
   private final List queries = new ArrayList<>();
+  private final Boolean lock = true;
 
   public ElasticsearchTransactionRepository(
   ElasticsearchTemplate template, MetricsService metricsService, int 
batchSize,
@@ -50,10 +51,12 @@ public class ElasticsearchTransactionRepository implements 
TransactionRepository
 this.metricsService = metricsService;
 this.batchSize = batchSize;
 this.refreshTime = refreshTime;
-
 if (this.refreshTime > 0) {
   new Thread(new RefreshTimer(), 
"elasticsearch-repository-refresh").start();
 }
+if(!this.template.indexExists(INDEX_NAME)){
+  this.template.createIndex(INDEX_NAME);
+}
   }
 
   @Override
@@ -63,10 +66,11 @@ public class ElasticsearchTransactionRepository implements 
TransactionRepository
 batchSizeCounter++;
 metricsService.metrics().doRepositoryReceived();
 if (batchSize == 0 || batchSizeCounter == batchSize) {
-  save(begin);
-  batchSizeCounter = 0;
-  queries.clear();
-
+  synchronized (lock){
+save(begin);
+batchSizeCounter = 0;
+queries.clear();
+  }
 }
   }
 
@@ -93,8 +97,10 @@ public class ElasticsearchTransactionRepository implements 
TransactionRepository
 public void run() {
   while (true) {
 try {
-  if (!queries.isEmpty()) {
-save(System.currentTimeMillis());
+  synchronized (lock){
+if (!queries.isEmpty()) {
+  save(System.currentTimeMillis());
+}
   }
 } catch (Exception e) {
   LOG.error(e.getMessage(), e);



[servicecomb-pack] 08/38: SCB-1369 Delete unused method & class

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit b7f4cb0e2c0e5409cd922a45aa0f91e0f4512525
Author: Lei Zhang 
AuthorDate: Fri Jul 26 14:51:05 2019 +0800

SCB-1369 Delete unused method & class
---
 .../pack/alpha/core/fsm/PackSagaEvent.java | 150 -
 .../servicecomb/pack/alpha/fsm/model/SagaData.java |  18 ---
 .../eventbus/EventSubscribeBeanPostProcessor.java  |  62 -
 .../src/main/resources/application.yaml|   3 +-
 .../alpha/server/fsm/AlphaIntegrationFsmTest.java  |  13 +-
 5 files changed, 11 insertions(+), 235 deletions(-)

diff --git 
a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/PackSagaEvent.java
 
b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/PackSagaEvent.java
deleted file mode 100644
index 1588c55..000
--- 
a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/fsm/PackSagaEvent.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.pack.alpha.core.fsm;
-
-import java.util.Date;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-
-@Entity
-@Table(name = "PACK_SAGA_EVENT")
-public class PackSagaEvent {
-  @Transient
-  public static final long MAX_TIMESTAMP = 25340221440L; // -12-31 
00:00:00
-
-  @Id
-  @GeneratedValue(strategy = GenerationType.IDENTITY)
-  private Long surrogateId;
-
-  private String serviceName;
-  private String instanceId;
-  private Date creationTime;
-  private String globalTxId;
-  private String localTxId;
-  private String parentTxId;
-  private String type;
-  private String compensationMethod;
-  private Date expiryTime;
-  private String retryMethod;
-  private int retries;
-  private byte[] payloads;
-
-  public static Builder builder() {
-return new Builder();
-  }
-
-  public static final class Builder {
-
-private String serviceName;
-private String instanceId;
-private Date creationTime;
-private String globalTxId;
-private String localTxId;
-private String parentTxId;
-private String type;
-private String compensationMethod;
-private Date expiryTime;
-private String retryMethod;
-private int retries;
-private byte[] payloads;
-
-private Builder() {
-}
-
-public Builder serviceName(String serviceName) {
-  this.serviceName = serviceName;
-  return this;
-}
-
-public Builder instanceId(String instanceId) {
-  this.instanceId = instanceId;
-  return this;
-}
-
-public Builder creationTime(Date creationTime) {
-  this.creationTime = creationTime;
-  return this;
-}
-
-public Builder globalTxId(String globalTxId) {
-  this.globalTxId = globalTxId;
-  return this;
-}
-
-public Builder localTxId(String localTxId) {
-  this.localTxId = localTxId;
-  return this;
-}
-
-public Builder parentTxId(String parentTxId) {
-  this.parentTxId = parentTxId;
-  return this;
-}
-
-public Builder type(String type) {
-  this.type = type;
-  return this;
-}
-
-public Builder compensationMethod(String compensationMethod) {
-  this.compensationMethod = compensationMethod;
-  return this;
-}
-
-public Builder expiryTime(Date expiryTime) {
-  this.expiryTime = expiryTime;
-  return this;
-}
-
-public Builder retryMethod(String retryMethod) {
-  this.retryMethod = retryMethod;
-  return this;
-}
-
-public Builder retries(int retries) {
-  this.retries = retries;
-  return this;
-}
-
-public Builder payloads(byte[] payloads) {
-  this.payloads = payloads;
-  return this;
-}
-
-public PackSagaEvent build() {
-  PackSagaEvent packSagaEvent = new PackSagaEvent();
-  packSagaEvent.instanceId = this.instanceId;
-  packSagaEvent.serviceName = this.serviceName;
-  

[servicecomb-pack] branch master updated (b8abd1a -> 958e597)

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git.


from b8abd1a  SCB-1386 Added some comments on the SagaEnd annotation.
 new 601f6f4  SCB-1369 Add Elasticsearch Persistence Repository
 new a70fded  SCB-1369 Resolve conflicts with Netty when initializing the 
number of client processors
 new 9d5a712  SCB-1369 Save transaction data to Elasticsearch after 
SagaActor stopped
 new a9cb93b  SCB-1369 Rename Benchmark.md to benchmark_zh.md
 new 5e997a4  SCB-1369 Add how_to_use_fsm_zh.md
 new 19d7bb5  SCB-1369 Merge cucumber feature
 new b8c1f65  SCB-1369 Merge cucumber feature & Redefine the byteman port 
number for booking, car, hotel
 new b7f4cb0  SCB-1369 Delete unused method & class
 new 06aa103  SCB-1369 Modified to finally call the stopSagaData method
 new 690ebe1  SCB-1369 Use synchronization methods to avoid conflicts 
between thread refreshTimer and batch writes
 new f3c76dd  SCB-1369 Default non-persistent transaction data
 new 640c20a  SCB-1369 Modify counter error
 new 4e6b3ab  SCB-1369 Define Elasticsearch Document Object for Query
 new c4cbc24  SCB-1369 Define Paging Query Object for APIs
 new 3ca8812  SCB-1369 Attribute events type changed to Map for deserialize 
the JSON
 new a888641  SCB-1369 Add paging query event list method and single event 
query method for APIs
 new b54421e  SCB-1369 Clean up memory data after persisting data to ES
 new 4d2d9e0  SCB-1369 Event object built-in toMap method
 new a5156f6  SCB-1369 Modify the test case to get transaction data
 new 37b44cd  SCB-1369 Change @Autowired TransactionRepository required is 
false for Unit Tests
 new 7b7e1d3  SCB-1369 rebase
 new e7a43a4  SCB-1369 Test APIs adds prefix /test
 new 1fe0bd2  SCB-1369 Save transaction data to Elasticsearch after 
SagaActor stopped
 new c79846e  SCB-1369 Delete unused method & class
 new 15956e1  SCB-1369 Default non-persistent transaction data
 new 3980564  SCB-1369 Fixed typo Global
 new ceec64b  SCB-1369 Fixed conflict
 new 8a55243  SCB-1369 Fixed typo
 new c19ef0c  SCB-1369 Add license header
 new 6b18f4e  SCB-1369 Update document
 new b78efa7  SCB-1369 Add unit test cases for APIControllerV1
 new 4207b65  SCB-1369 Fixed typo
 new c9651fc  SCB-1369 Modify APIs to return JSON date format to long
 new 166e696  SCB-1369 Fixed typo
 new 131eb83  SCB-1369 Fixed transaction typo
 new 4130d60  SCB-1369 Fixed global typo
 new 5ab27e8  SCB-1369 Add License header
 new 958e597  SCB-1369 Modify warning message

The 38 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../acceptance-pack-akka-spring-demo/pom.xml   |  27 ++
 .../org/apache/servicecomb/pack/PackStepdefs.java  |   6 +-
 .../alpha_records_transaction_events.feature   | 169 +++
 ...ion_after_post_car_compensated_scenario.feature |  42 --
 ...n_after_post_hotel_compensated_scenario.feature |  46 --
 ...pack_booking_timeout_suspended_scenario.feature |  44 --
 .../pack_car_fail_compensated_scenario.feature |  37 --
 .../pack_hotel_fail_compensated_scenario.feature   |  41 --
 .../test/resources/pack_success_scenario.feature   |  41 --
 .../pack/alpha/core/fsm/PackSagaEvent.java | 150 ---
 alpha/alpha-fsm/pom.xml|  12 +
 .../pack/alpha/fsm/FsmAutoConfiguration.java   |  84 +++-
 .../servicecomb/pack/alpha/fsm/SagaActor.java  |  10 +-
 .../pack/alpha/fsm}/TransactionType.java   |   4 +-
 .../pack/alpha/fsm/event/base/BaseEvent.java   |  12 +-
 .../pack/alpha/fsm/metrics/MetricsBean.java|  46 ++
 .../servicecomb/pack/alpha/fsm/model/SagaData.java |  18 -
 .../servicecomb/pack/alpha/fsm/model/TxEntity.java |  17 +-
 .../AbstractTransactionRepositoryChannel.java} |  30 +-
 .../fsm/repository/NoneTransactionRepository.java  |  29 +-
 .../fsm/repository/TransactionRepository.java} |  17 +-
 .../TransactionRepositoryChannel.java} |   8 +-
 .../MemoryTransactionRepositoryChannel.java}   |  34 +-
 .../ElasticsearchTransactionRepository.java| 204 +
 .../elasticsearch/GlobalTransactionDocument.java   |  12 +-
 .../fsm/repository/model/GlobalTransaction.java| 181 
 .../repository/model/PagingGlobalTransactions.java | 100 +
 .../fsm/repository/model/SagaSubTransaction.java   | 109 +
 .../spring/integration/akka/SagaDataExtension.java | 106 ++---
 .../eventbus/EventSubscribeBeanPostProcessor.java  |  62 ---
 .../servicecomb/pack/alpha/fsm/SagaActorTest.java  |  55 ++-
 .../pack/alpha/fsm/SagaIntegrationTest.java|  73 +--
 

[servicecomb-pack] 18/38: SCB-1369 Event object built-in toMap method

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 4d2d9e083c09bd51ad27d91e369db9df05a42924
Author: Lei Zhang 
AuthorDate: Fri Jul 26 19:08:46 2019 +0800

SCB-1369 Event object built-in toMap method
---
 .../apache/servicecomb/pack/alpha/fsm/event/base/BaseEvent.java   | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/base/BaseEvent.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/base/BaseEvent.java
index ef27594..99c5e17 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/base/BaseEvent.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/event/base/BaseEvent.java
@@ -17,11 +17,13 @@
 
 package org.apache.servicecomb.pack.alpha.fsm.event.base;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.Map;
 
 public abstract class BaseEvent implements Serializable {
-
+  private final ObjectMapper mapper = new ObjectMapper();
   private String serviceName;
   private String instanceId;
   private String globalTxId;
@@ -96,4 +98,8 @@ public abstract class BaseEvent implements Serializable {
 ", createTime=" + createTime +
 '}';
   }
+
+  public Map toMap() throws Exception {
+return mapper.readValue(mapper.writeValueAsString(this), Map.class);
+  }
 }



[servicecomb-pack] 05/38: SCB-1369 Add how_to_use_fsm_zh.md

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 5e997a40136462e81b651b7a0ea3a1ebf3443d4c
Author: Lei Zhang 
AuthorDate: Thu Jul 25 00:44:43 2019 +0800

SCB-1369 Add how_to_use_fsm_zh.md
---
 docs/fsm/how_to_use_fsm_zh.md | 339 ++
 1 file changed, 339 insertions(+)

diff --git a/docs/fsm/how_to_use_fsm_zh.md b/docs/fsm/how_to_use_fsm_zh.md
new file mode 100644
index 000..6c7909e
--- /dev/null
+++ b/docs/fsm/how_to_use_fsm_zh.md
@@ -0,0 +1,339 @@
+# 使用 Alpha 状态机模式
+
+## 快速开始
+
+使用 `alpha.feature.akka.enabled=true` 开启状态机模式
+
+```bash
+java -jar alpha-server-${version}-exec.jar \
+  --spring.datasource.url=jdbc:postgresql://0.0.0.0:5432/saga?useSSL=false
+  --spring.datasource.username=saga-user
+  --spring.datasource.password=saga-password
+  --spring.profiles.active=prd
+  --alpha.feature.akka.enabled=true
+```
+
+**注意:**状态机模式默认没有存储执行完毕的事务数据,如果想存储执行后的事务数据请看使用 Elasticsearch 存储终止的全局事务数据章节
+
+## Alpha 事件通道类型
+
+Alpha 收到 Omeag 
发送的事件后放入事件通道等待Akka处理,默认使用内存通道,内存通道不建议在生产环境使用,因为如果Alpha进程宕机,通道内的事件将丢失。生产环境建议使用 
activemq, kafka
+, redis 等通道类型,可以使用参数 `alpha.feature.akka.channel.type` 配置通道类型。
+
+| 参数名 | 默认值 | 说明   
 |
+| -- | -- | 
--- |
+| alpha.feature.akka.channel.type| memory | 可选类型有 activemq, kafka, 
redis   |
+| alpha.feature.akka.channel.memory.size | -1 | 
momory类型时内存队列大小,-1表示Integer.MAX |
+
+**注意:** activemq, kafka, redis 还未实现 0_0
+
+## 性能度量
+
+Alpha 提供一个性能度量查询API,使用这个查询接口可以返回当前事务各个环节性能指标,你可以使用基准测试工具 `AlphaBenchmark` 
模拟发送数据后查看性能指标。
+
+使用以下命令模拟 10 并发,发送 1000 个全局事务
+
+```bash
+java -jar alpha-benchmark-0.5.0-SNAPSHOT-exec.jar 
--alpha.cluster.address=0.0.0.0:8080 --w=0 --n=1000 --c=10
+```
+
+查询性能指标
+
+```bash
+curl http://localhost:8090/alpha/api/v1/metrics
+
+{
+  nodeType: "MASTER",
+  metrics: {
+eventReceived: 8000,
+eventAccepted: 8000,
+eventRejected: 0,
+eventAvgTime: 0,
+actorReceived: 8000,
+actorAccepted: 8000,
+actorRejected: 0,
+actorAvgTime: 0,
+sagaBeginCounter: 1000,
+sagaEndCounter: 1000,
+sagaAvgTime: 9,
+committed: 1000,
+compensated: 0,
+suspended: 0,
+repositoryReceived: 1000,
+repositoryAccepted: 1000,
+repositoryRejected: 0,
+repositoryAvgTime: 0.88
+  }
+}
+```
+
+例如以上指标中显示 `sagaAvgTime: 9` 表示每个全局事务在Akka的处理耗时9毫秒,`repositoryAvgTime: 0.88` 
表示每个全局事务入库耗时0.88毫秒
+
+指标说明
+
+* eventReceived: Alpha 收到的 gRPC 事件数量
+* eventAccepted:  Alpha 处理的 gRPC 事件数量(事件放入事件通道)
+* eventRejected:  Alpha 拒绝的 gRPC 事件数量
+* eventAvgTime: Alpha 平均耗时(毫秒)
+* actorReceived: Akka 收到的事件数量
+* actorAccepted:  Akka 处理的事件数量
+* actorRejected: Akka 拒绝的事件数量
+* actorAvgTime: Akka 平均耗时(毫秒)
+* sagaBeginCounter: 开始的 Saga 全局事务数量
+* sagaEndCounter: 结束的 Saga 全局事务数量
+* sagaAvgTime: 平均耗时(毫秒)
+* committed: COMMITTED状态的 Saga 全局事务数量
+* compensated: COMPENSATED状态的 Saga 全局事务数量
+* suspended: SUSPENDED状态的 Saga 的全局事务数量
+* repositoryReceived: 存储模块收到的全局事务数量
+* repositoryAccepted: 存储模块处理的全局事务数量
+* repositoryRejected: 存储模块拒绝的全局事务数量
+* repositoryAvgTime: 平均耗时(毫秒)
+
+## 使用 Elasticsearch 存储终止的全局事务数据
+
+> 只有终止的全局事务才会存储到 Elasticsearch 中,终止的全局事务包含正常终止或者挂起终止两种情况,执行中的全局事务需要通过调用 Alpha 
RESTfulAPI 进行查询
+
+使用 docker 启动一个 Elasticsearch 服务,如果你已经有 Elasticsearch 服务请忽略这个步骤
+
+```bash
+docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e 
"discovery.type=single-node" elasticsearch:6.6.2
+```
+
+启动 Alpha 的时候配置 Elasticsearch 参数
+
+```bash
+java -jar alpha-server-${version}-exec.jar \
+  --spring.datasource.url=jdbc:postgresql://0.0.0.0:5432/saga?useSSL=false
+  --spring.datasource.username=saga-user
+  --spring.datasource.password=saga-password
+  --spring.profiles.active=prd
+  --alpha.feature.akka.enabled=true
+  --alpha.feature.akka.transaction.repository.type=elasticsearch
+  --spring.data.elasticsearch.cluster-name=docker-cluster
+  --spring.data.elasticsearch.cluster-nodes=localhost:9300
+  --spring.elasticsearch.rest.uris=http://localhost:9200
+```
+| 参数名   | 默认值 | 说明 
|
+|  | -- | 
 |
+| alpha.feature.akka.transaction.repository.type   || 
持久化类型,目前可选值 elasticsearch,如果不设置则不存储 |
+| alpha.feature.akka.transaction.repository.elasticsearch.memory.size | -1 
| 持久化数据队列,默认 Integer.MAX. Actor会将终止的事务数据放入此队列,并等待存入elasticsearch |
+| alpha.feature.akka.transaction.repository.elasticsearch.batchSize | 100| 
elasticsearch 批量入库数量   |
+| alpha.feature.akka.transaction.repository.elasticsearch.refreshTime | 5000   
| elasticsearch 定时同步到ES时间 

[servicecomb-pack] 01/38: SCB-1369 Add Elasticsearch Persistence Repository

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 601f6f4f9dba12e480324162085b007eb1622dea
Author: Lei Zhang 
AuthorDate: Thu Jul 18 14:25:10 2019 +0800

SCB-1369 Add Elasticsearch Persistence Repository
---
 alpha/alpha-fsm/pom.xml|  12 ++
 .../pack/alpha/fsm/TransactionType.java|  22 +++
 .../AbstractTransactionRepositoryChannel.java  |  41 +
 .../fsm/repository/TransactionRepository.java  |  25 +++
 .../repository/TransactionRepositoryChannel.java   |  24 +++
 .../MemoryTransactionRepositoryChannel.java|  71 +
 .../ElasticsearchTransactionRepository.java| 111 +
 .../fsm/repository/model/GloablTransaction.java| 171 +
 .../fsm/repository/model/SagaSubTransaction.java   | 106 +
 .../ElasticsearchTransactionRepositoryTest.java| 139 +
 10 files changed, 722 insertions(+)

diff --git a/alpha/alpha-fsm/pom.xml b/alpha/alpha-fsm/pom.xml
index 9f33266..4102be6 100644
--- a/alpha/alpha-fsm/pom.xml
+++ b/alpha/alpha-fsm/pom.xml
@@ -58,6 +58,7 @@
   spring-boot-autoconfigure
 
 
+
 
   org.apache.servicecomb.pack
   pack-common
@@ -66,6 +67,11 @@
   org.apache.servicecomb.pack
   alpha-core
 
+
+
+  org.springframework.boot
+  spring-boot-starter-data-elasticsearch
+
 
   com.google.guava
   guava
@@ -73,6 +79,12 @@
 
   org.springframework.boot
   spring-boot-starter-log4j2
+  
+
+  log4j-slf4j-impl
+  org.apache.logging.log4j
+
+  
 
 
   javax.persistence
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/TransactionType.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/TransactionType.java
new file mode 100644
index 000..7184783
--- /dev/null
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/TransactionType.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.pack.alpha.fsm;
+
+public enum TransactionType {
+  SAGA
+}
diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/AbstractTransactionRepositoryChannel.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/AbstractTransactionRepositoryChannel.java
new file mode 100644
index 000..92ed257
--- /dev/null
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/AbstractTransactionRepositoryChannel.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.pack.alpha.fsm.repository;
+
+import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GloablTransaction;
+
+public abstract class AbstractTransactionRepositoryChannel implements 
TransactionRepositoryChannel {
+
+  protected final MetricsService metricsService;
+  protected final TransactionRepository repository;
+
+  public abstract void sendTo(GloablTransaction transaction);
+
+  public AbstractTransactionRepositoryChannel(
+  TransactionRepository repository,
+  MetricsService metricsService) {
+this.repository = 

[GitHub] [servicecomb-pack] WillemJiang merged pull request #525: [SCB-1369] Save the terminated transaction data to elasticsearch

2019-08-05 Thread GitBox
WillemJiang merged pull request #525: [SCB-1369] Save the terminated 
transaction data to elasticsearch
URL: https://github.com/apache/servicecomb-pack/pull/525
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[servicecomb-pack] 03/38: SCB-1369 Save transaction data to Elasticsearch after SagaActor stopped

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 9d5a712edad07f41d61cf6430222c44d1caa9dfe
Author: Lei Zhang 
AuthorDate: Thu Jul 18 14:36:34 2019 +0800

SCB-1369 Save transaction data to Elasticsearch after SagaActor stopped
---
 .../pack/alpha/fsm/FsmAutoConfiguration.java   | 85 ++
 .../servicecomb/pack/alpha/fsm/SagaActor.java  |  2 +-
 .../pack/alpha/fsm/event/base/BaseEvent.java   |  4 +
 .../pack/alpha/fsm/metrics/MetricsBean.java| 46 
 .../servicecomb/pack/alpha/fsm/model/TxEntity.java | 17 +++--
 .../spring/integration/akka/SagaDataExtension.java | 43 ---
 .../servicecomb/pack/alpha/fsm/SagaActorTest.java  | 22 ++
 .../pack/alpha/fsm/SagaIntegrationTest.java| 14 +++-
 .../alpha/server/fsm/AlphaIntegrationFsmTest.java  | 14 +++-
 9 files changed, 213 insertions(+), 34 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
index 9101686..28e517b 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/FsmAutoConfiguration.java
@@ -24,13 +24,21 @@ import akka.actor.ActorSystem;
 import com.typesafe.config.Config;
 import com.typesafe.config.ConfigFactory;
 import java.util.Map;
+<<< HEAD
 
 import org.apache.servicecomb.pack.alpha.core.NodeStatus;
+===
+import javax.annotation.PostConstruct;
+>>> SCB-1369 Save transaction data to Elasticsearch after SagaActor stopped
 import org.apache.servicecomb.pack.alpha.fsm.channel.ActiveMQActorEventChannel;
 import org.apache.servicecomb.pack.alpha.fsm.channel.redis.MessagePublisher;
 import 
org.apache.servicecomb.pack.alpha.fsm.channel.redis.RedisMessagePublisher;
 import 
org.apache.servicecomb.pack.alpha.fsm.channel.redis.RedisMessageSubscriber;
 import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.elasticsearch.ElasticsearchTransactionRepository;
+import org.apache.servicecomb.pack.alpha.fsm.repository.TransactionRepository;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.channel.MemoryTransactionRepositoryChannel;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.TransactionRepositoryChannel;
 import org.apache.servicecomb.pack.alpha.fsm.sink.ActorEventSink;
 import org.apache.servicecomb.pack.alpha.fsm.channel.ActorEventChannel;
 import org.apache.servicecomb.pack.alpha.fsm.channel.KafkaActorEventChannel;
@@ -50,6 +58,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.core.env.ConfigurableEnvironment;
+<<< HEAD
 import org.springframework.data.redis.connection.RedisConnection;
 import org.springframework.data.redis.connection.RedisConnectionFactory;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -59,64 +68,92 @@ import 
org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
 import org.springframework.data.redis.serializer.GenericToStringSerializer;
 import 
org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
 import org.springframework.data.redis.serializer.StringRedisSerializer;
+===
+import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
+>>> SCB-1369 Save transaction data to Elasticsearch after SagaActor stopped
 
 @Configuration
 @ConditionalOnProperty(value = {"alpha.feature.akka.enabled"})
 public class FsmAutoConfiguration {
 
-  @Value("${alpha.feature.akka.channel.memory.size:-1}")
+  @Value("${alpha.feature.akka.elasticsearch.memory.size:-1}")
   int memoryEventChannelMemorySize;
 
+  
@Value("${alpha.feature.akka.transaction.repository.elasticsearch.batchSize:100}")
+  int repositoryElasticsearchBatchSize;
+
+  
@Value("${alpha.feature.akka.transaction.repository.elasticsearch.refreshTime:5000}")
+  int repositoryElasticsearchRefreshTime;
+
+  
@Value("${alpha.feature.akka.transaction.repository.elasticsearch.memory.size:-1}")
+  int memoryTransactionRepositoryChannelSize;
+
+  @PostConstruct
+  void init() {
+System.setProperty("es.set.netty.runtime.available.processors", "false");
+  }
+
   @Bean
-  public ActorSystem actorSystem(ConfigurableApplicationContext 
applicationContext, ConfigurableEnvironment environment) {
-ActorSystem system = ActorSystem.create("alpha-akka", 
akkaConfiguration(applicationContext,environment));
+  public ActorSystem actorSystem(ConfigurableApplicationContext 
applicationContext,
+  ConfigurableEnvironment environment, MetricsService metricsService,
+  

[servicecomb-pack] 13/38: SCB-1369 Define Elasticsearch Document Object for Query

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 4e6b3ab9e8f006f994a8727e0a19039463e6e18e
Author: Lei Zhang 
AuthorDate: Fri Jul 26 18:35:07 2019 +0800

SCB-1369 Define Elasticsearch Document Object for Query
---
 .../fsm/repository/elasticsearch/GloablTransactionDocument.java  | 9 +
 1 file changed, 9 insertions(+)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/GloablTransactionDocument.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/GloablTransactionDocument.java
new file mode 100644
index 000..d37639b
--- /dev/null
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/GloablTransactionDocument.java
@@ -0,0 +1,9 @@
+package org.apache.servicecomb.pack.alpha.fsm.repository.elasticsearch;
+
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GloablTransaction;
+import org.springframework.data.elasticsearch.annotations.Document;
+
+@Document(indexName = ElasticsearchTransactionRepository.INDEX_NAME, type = 
ElasticsearchTransactionRepository.INDEX_TYPE)
+public class GloablTransactionDocument extends GloablTransaction {
+
+}



[servicecomb-pack] 06/38: SCB-1369 Merge cucumber feature

2019-08-05 Thread ningjiang
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 19d7bb5f4874f6f2e9f1c37d48bf466c9e285125
Author: Lei Zhang 
AuthorDate: Fri Jul 26 14:44:37 2019 +0800

SCB-1369 Merge cucumber feature
---
 .../alpha_records_transaction_events.feature   | 169 +
 ...ion_after_post_car_compensated_scenario.feature |  42 -
 ...n_after_post_hotel_compensated_scenario.feature |  46 --
 ...pack_booking_timeout_suspended_scenario.feature |  44 --
 .../pack_car_fail_compensated_scenario.feature |  37 -
 .../pack_hotel_fail_compensated_scenario.feature   |  41 -
 .../test/resources/pack_success_scenario.feature   |  41 -
 7 files changed, 169 insertions(+), 251 deletions(-)

diff --git 
a/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/resources/alpha_records_transaction_events.feature
 
b/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/resources/alpha_records_transaction_events.feature
new file mode 100644
index 000..52b4d5b
--- /dev/null
+++ 
b/acceptance-tests/acceptance-pack-akka-spring-demo/src/test/resources/alpha_records_transaction_events.feature
@@ -0,0 +1,169 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+Feature: Alpha records transaction events
+
+  Scenario: 1.Success Scenario
+Given Car Service is up and running
+And Hotel Service is up and running
+And Booking Service is up and running
+And Alpha is up and running
+
+When User Sean requests to book 2 cars and 1 rooms success
+
+Then Alpha records the following events
+  | serviceName  | type |
+  | booking | SagaStartedEvent |
+  | car | TxStartedEvent   |
+  | car | TxEndedEvent |
+  | hotel   | TxStartedEvent   |
+  | hotel   | TxEndedEvent |
+  | booking | SagaEndedEvent   |
+
+And Car Service contains the following booking orders
+  | id | name | amount | confirmed | cancelled |
+  | 1  | Sean | 2  | true  | false |
+
+And Hotel Service contains the following booking orders
+  | id | name | amount | confirmed | cancelled |
+  | 1  | Sean | 1  | true  | false |
+
+
+  Scenario: 2.Booking Exception After Car Hotel Secenario
+Given Car Service is up and running
+And Hotel Service is up and running
+And Booking Service is up and running
+And Alpha is up and running
+
+Given Install the byteman script booking_exception_after_post_car.btm to 
Booking Service
+
+When User Sean requests to book 1 cars and 1 rooms fail
+
+Then Alpha records the following events
+  | serviceName  | type   |
+  | booking | SagaStartedEvent   |
+  | car | TxStartedEvent |
+  | car | TxEndedEvent   |
+  | booking | SagaAbortedEvent |
+  | car | TxCompensatedEvent |
+
+Then Car Service contains the following booking orders
+  | id | name | amount | confirmed | cancelled |
+  | 1  | Sean | 1  | false | true  |
+
+Then Hotel Service contains the following booking orders
+  | id | name | amount | confirmed | cancelled |
+
+  Scenario: 2.Booking Exception After Post Hotel Secenario
+Given Car Service is up and running
+And Hotel Service is up and running
+And Booking Service is up and running
+And Alpha is up and running
+
+Given Install the byteman script booking_exception_after_post_hotel.btm to 
Booking Service
+
+When User Sean requests to book 1 cars and 1 rooms fail
+
+Then Alpha records the following events
+  | serviceName  | type   |
+  | booking | SagaStartedEvent   |
+  | car | TxStartedEvent |
+  | car | TxEndedEvent   |
+  | hotel | TxStartedEvent |
+  | hotel | TxEndedEvent   |
+  | booking | SagaAbortedEvent |
+  | hotel | TxCompensatedEvent |
+  | car | TxCompensatedEvent |
+
+Then Car Service contains the following booking orders
+  | id | name | amount | confirmed | cancelled |
+  | 1  | Sean | 1  | false | true  |
+
+Then Hotel 

[GitHub] [servicecomb-toolkit] kakulisen opened a new pull request #12: test

2019-08-05 Thread GitBox
kakulisen opened a new pull request #12: test
URL: https://github.com/apache/servicecomb-toolkit/pull/12
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-pack] coveralls edited a comment on issue #525: [SCB-1369] Save the terminated transaction data to elasticsearch

2019-08-05 Thread GitBox
coveralls edited a comment on issue #525: [SCB-1369] Save the terminated 
transaction data to elasticsearch
URL: https://github.com/apache/servicecomb-pack/pull/525#issuecomment-517897539
 
 
   
   [![Coverage 
Status](https://coveralls.io/builds/24981799/badge)](https://coveralls.io/builds/24981799)
   
   Coverage increased (+0.5%) to 82.78% when pulling 
**cc59fb9f43f0fb2a68b1e397961d758509878da3 on coolbeevip:SCB-1369** into 
**b8abd1a21aa39ca3c628ae1d7b6078e2d773fff6 on apache:master**.
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-pack] coolbeevip commented on a change in pull request #525: [SCB-1369] Save the terminated transaction data to elasticsearch

2019-08-05 Thread GitBox
coolbeevip commented on a change in pull request #525: [SCB-1369] Save the 
terminated transaction data to elasticsearch
URL: https://github.com/apache/servicecomb-pack/pull/525#discussion_r310487992
 
 

 ##
 File path: 
alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/GlobalTransactionDocument.java
 ##
 @@ -0,0 +1,9 @@
+package org.apache.servicecomb.pack.alpha.fsm.repository.elasticsearch;
 
 Review comment:
   Oh, it has been corrected


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-pack] coolbeevip commented on a change in pull request #525: [SCB-1369] Save the terminated transaction data to elasticsearch

2019-08-05 Thread GitBox
coolbeevip commented on a change in pull request #525: [SCB-1369] Save the 
terminated transaction data to elasticsearch
URL: https://github.com/apache/servicecomb-pack/pull/525#discussion_r310488037
 
 

 ##
 File path: 
alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
 ##
 @@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.pack.alpha.fsm.repository;
+
+import java.lang.invoke.MethodHandles;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GlobalTransaction;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGlobalTransactions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class NoneTransactionRepository implements TransactionRepository {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
+  @Override
+  public void send(GlobalTransaction transaction) {
+LOG.warn("Please configure 
alpha.feature.akka.transaction.repository.type=elasticsearch to use 
elasticsearch to persist transaction data.");
 
 Review comment:
   Good advice


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-pack] WillemJiang commented on a change in pull request #525: [SCB-1369] Save the terminated transaction data to elasticsearch

2019-08-05 Thread GitBox
WillemJiang commented on a change in pull request #525: [SCB-1369] Save the 
terminated transaction data to elasticsearch
URL: https://github.com/apache/servicecomb-pack/pull/525#discussion_r310471131
 
 

 ##
 File path: 
alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/GlobalTransactionDocument.java
 ##
 @@ -0,0 +1,9 @@
+package org.apache.servicecomb.pack.alpha.fsm.repository.elasticsearch;
 
 Review comment:
   ASL header.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-pack] WillemJiang commented on a change in pull request #525: [SCB-1369] Save the terminated transaction data to elasticsearch

2019-08-05 Thread GitBox
WillemJiang commented on a change in pull request #525: [SCB-1369] Save the 
terminated transaction data to elasticsearch
URL: https://github.com/apache/servicecomb-pack/pull/525#discussion_r310470467
 
 

 ##
 File path: 
alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/NoneTransactionRepository.java
 ##
 @@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.pack.alpha.fsm.repository;
+
+import java.lang.invoke.MethodHandles;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.GlobalTransaction;
+import 
org.apache.servicecomb.pack.alpha.fsm.repository.model.PagingGlobalTransactions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class NoneTransactionRepository implements TransactionRepository {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
+  @Override
+  public void send(GlobalTransaction transaction) {
+LOG.warn("Please configure 
alpha.feature.akka.transaction.repository.type=elasticsearch to use 
elasticsearch to persist transaction data.");
 
 Review comment:
   I think we can add a line in the warning message "NoneTransactionRepostory 
is set."


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [servicecomb-java-chassis] coveralls edited a comment on issue #1281: [SCB-1402] BeanUtils.getImplClassFromBean can not return correctly in…

2019-08-05 Thread GitBox
coveralls edited a comment on issue #1281: [SCB-1402] 
BeanUtils.getImplClassFromBean can not return correctly in…
URL: 
https://github.com/apache/servicecomb-java-chassis/pull/1281#issuecomment-515904140
 
 
   
   [![Coverage 
Status](https://coveralls.io/builds/24980317/badge)](https://coveralls.io/builds/24980317)
   
   Coverage increased (+0.008%) to 85.693% when pulling 
**cd913ab7a71de58959ccbff6130c367ef2e58238 on AngLi2:rpc** into 
**e6a4850db7c12db9d2adbe2739923a9641ca3151 on apache:master**.
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services