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/incubator-servicecomb-saga.git
commit 22082fece5243be6b65499552089913cff2d9bb0 Author: KomachiSion <263976...@qq.com> AuthorDate: Fri Aug 24 11:19:17 2018 +0800 SCB-866 extend SQLTransport type --- .../apache/servicecomb/saga/core/Operation.java | 1 + .../core/{Operation.java => SQLOperation.java} | 41 ++++++++++++++++++---- .../SQLTransport.java} | 14 ++++---- 3 files changed, 43 insertions(+), 13 deletions(-) diff --git a/saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java b/saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java index 99e760b..5950865 100644 --- a/saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java +++ b/saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java @@ -21,6 +21,7 @@ public interface Operation { String TYPE_NOP = "NOP"; String TYPE_REST = "rest"; + String TYPE_SQL = "sql"; SagaResponse SUCCESSFUL_SAGA_RESPONSE = new SuccessfulSagaResponse("success"); SagaResponse send(String address); diff --git a/saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java b/saga-core/src/main/java/org/apache/servicecomb/saga/core/SQLOperation.java similarity index 51% copy from saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java copy to saga-core/src/main/java/org/apache/servicecomb/saga/core/SQLOperation.java index 99e760b..6444e2b 100644 --- a/saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java +++ b/saga-core/src/main/java/org/apache/servicecomb/saga/core/SQLOperation.java @@ -17,13 +17,42 @@ package org.apache.servicecomb.saga.core; -public interface Operation { +import java.util.Collections; +import java.util.List; - String TYPE_NOP = "NOP"; - String TYPE_REST = "rest"; - SagaResponse SUCCESSFUL_SAGA_RESPONSE = new SuccessfulSagaResponse("success"); +public class SQLOperation implements Operation { - SagaResponse send(String address); + private final String sql; + private final List<String> params; - SagaResponse send(String address, SagaResponse response); + public SQLOperation(String sql, List<String> params) { + this.sql = sql; + this.params = params == null ? Collections.<String>emptyList() : params; + } + + public String sql() { + return sql; + } + + public List<String> params() { + return params; + } + + @Override + public String toString() { + return "SQLOperation{" + + "sql='" + sql + '\'' + + ", params=" + params + + '}'; + } + + @Override + public SagaResponse send(String datasource) { + return SUCCESSFUL_SAGA_RESPONSE; + } + + @Override + public SagaResponse send(String datasource, SagaResponse response) { + return send(datasource); + } } diff --git a/saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java b/saga-core/src/main/java/org/apache/servicecomb/saga/transports/SQLTransport.java similarity index 72% copy from saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java copy to saga-core/src/main/java/org/apache/servicecomb/saga/transports/SQLTransport.java index 99e760b..6e534dd 100644 --- a/saga-core/src/main/java/org/apache/servicecomb/saga/core/Operation.java +++ b/saga-core/src/main/java/org/apache/servicecomb/saga/transports/SQLTransport.java @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.servicecomb.saga.core; +package org.apache.servicecomb.saga.transports; -public interface Operation { +import java.util.List; - String TYPE_NOP = "NOP"; - String TYPE_REST = "rest"; - SagaResponse SUCCESSFUL_SAGA_RESPONSE = new SuccessfulSagaResponse("success"); +import org.apache.servicecomb.saga.core.SagaResponse; +import org.apache.servicecomb.saga.core.Transport; - SagaResponse send(String address); +public interface SQLTransport extends Transport { + + SagaResponse with(String datasource, String sql, List<String> params); - SagaResponse send(String address, SagaResponse response); }