WillemJiang closed pull request #266: SCB-864 URL: https://github.com/apache/incubator-servicecomb-saga/pull/266
This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/saga-core/src/main/java/org/apache/servicecomb/saga/transports/TransportFactory.java b/saga-core/src/main/java/org/apache/servicecomb/saga/transports/TransportFactory.java index b34b5bdf..053149fa 100644 --- a/saga-core/src/main/java/org/apache/servicecomb/saga/transports/TransportFactory.java +++ b/saga-core/src/main/java/org/apache/servicecomb/saga/transports/TransportFactory.java @@ -17,7 +17,9 @@ package org.apache.servicecomb.saga.transports; -public interface TransportFactory { +import org.apache.servicecomb.saga.core.Transport; - RestTransport restTransport(); +public interface TransportFactory<T extends Transport> { + + T getTransport(); } diff --git a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonFallback.java b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonFallback.java index a70aafbb..c6cbd476 100644 --- a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonFallback.java +++ b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonFallback.java @@ -20,6 +20,7 @@ import org.apache.servicecomb.saga.core.Fallback; import org.apache.servicecomb.saga.core.Operation; import org.apache.servicecomb.saga.core.SagaResponse; +import org.apache.servicecomb.saga.core.Transport; import org.apache.servicecomb.saga.transports.TransportFactory; import com.fasterxml.jackson.annotation.JsonCreator; @@ -39,7 +40,7 @@ @Type(value = JacksonRestFallback.class, name = Operation.TYPE_REST), @Type(value = NopJacksonFallback.class, name = Operation.TYPE_NOP) }) -public interface JacksonFallback extends Fallback, TransportAware { +public interface JacksonFallback<T extends Transport> extends Fallback, TransportAware<T> { JacksonFallback NOP_TRANSPORT_AWARE_FALLBACK = new NopJacksonFallback(TYPE_NOP); diff --git a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonRestFallback.java b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonRestFallback.java index 35c54fe3..92db35af 100644 --- a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonRestFallback.java +++ b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonRestFallback.java @@ -19,10 +19,12 @@ import java.util.Map; +import org.apache.servicecomb.saga.transports.RestTransport; + import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -class JacksonRestFallback extends JacksonRestOperation implements JacksonFallback { +class JacksonRestFallback extends JacksonRestOperation implements JacksonFallback<RestTransport> { private final String type; diff --git a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonRestOperation.java b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonRestOperation.java index c2921689..e9dd762a 100644 --- a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonRestOperation.java +++ b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JacksonRestOperation.java @@ -28,7 +28,7 @@ import org.apache.servicecomb.saga.core.SagaResponse; import org.apache.servicecomb.saga.transports.RestTransport; -class JacksonRestOperation extends RestOperation implements TransportAware { +class JacksonRestOperation extends RestOperation implements TransportAware<RestTransport> { @JsonIgnore private RestTransport transport; @@ -38,8 +38,8 @@ } @Override - public JacksonRestOperation with(TransportFactory transport) { - this.transport = transport.restTransport(); + public JacksonRestOperation with(TransportFactory<RestTransport> transport) { + this.transport = transport.getTransport(); return this; } diff --git a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JsonRestSagaRequest.java b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JsonRestSagaRequest.java index 9660eb4e..f91d29b3 100644 --- a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JsonRestSagaRequest.java +++ b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JsonRestSagaRequest.java @@ -20,6 +20,7 @@ import static org.apache.servicecomb.saga.format.JacksonFallback.NOP_TRANSPORT_AWARE_FALLBACK; import org.apache.servicecomb.saga.core.SagaRequestImpl; +import org.apache.servicecomb.saga.transports.RestTransport; import org.apache.servicecomb.saga.transports.TransportFactory; import com.fasterxml.jackson.annotation.JsonCreator; @@ -27,7 +28,7 @@ import org.apache.servicecomb.saga.core.Operation; -public class JsonRestSagaRequest extends SagaRequestImpl implements JsonSagaRequest { +public class JsonRestSagaRequest extends SagaRequestImpl implements JsonSagaRequest<RestTransport> { private final JacksonRestTransaction transaction; private final JacksonRestCompensation compensation; diff --git a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JsonSagaRequest.java b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JsonSagaRequest.java index 45d39810..a25542f3 100644 --- a/saga-format/src/main/java/org/apache/servicecomb/saga/format/JsonSagaRequest.java +++ b/saga-format/src/main/java/org/apache/servicecomb/saga/format/JsonSagaRequest.java @@ -19,6 +19,7 @@ import org.apache.servicecomb.saga.core.Operation; import org.apache.servicecomb.saga.core.SagaRequest; +import org.apache.servicecomb.saga.core.Transport; import org.apache.servicecomb.saga.transports.TransportFactory; import com.fasterxml.jackson.annotation.JsonSubTypes; @@ -33,7 +34,7 @@ @JsonSubTypes({ @Type(value = JsonRestSagaRequest.class, name = Operation.TYPE_REST) }) -public interface JsonSagaRequest extends SagaRequest { +public interface JsonSagaRequest<T extends Transport> extends SagaRequest { JsonSagaRequest with(TransportFactory transportFactory); } diff --git a/saga-format/src/main/java/org/apache/servicecomb/saga/format/TransportAware.java b/saga-format/src/main/java/org/apache/servicecomb/saga/format/TransportAware.java index edcabf7d..10b353ab 100644 --- a/saga-format/src/main/java/org/apache/servicecomb/saga/format/TransportAware.java +++ b/saga-format/src/main/java/org/apache/servicecomb/saga/format/TransportAware.java @@ -17,10 +17,11 @@ package org.apache.servicecomb.saga.format; +import org.apache.servicecomb.saga.core.Transport; import org.apache.servicecomb.saga.transports.TransportFactory; import org.apache.servicecomb.saga.core.Operation; -interface TransportAware { +interface TransportAware<T extends Transport> { - Operation with(TransportFactory transport); + Operation with(TransportFactory<T> transport); } diff --git a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonFromJsonFormatTest.java b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonFromJsonFormatTest.java index f2ae7242..aafe1051 100644 --- a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonFromJsonFormatTest.java +++ b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonFromJsonFormatTest.java @@ -191,7 +191,7 @@ public String apply(SagaRequest sagaRequest) { @Before public void setUp() throws Exception { - when(transportFactory.restTransport()).thenReturn(restTransport); + when(transportFactory.getTransport()).thenReturn(restTransport); when(restTransport.with("aaa", "/rest/as", "post", singletonMap("form", singletonMap("foo", "as")))) .thenReturn(response11); diff --git a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonRestOperationTest.java b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonRestOperationTest.java index 9241289e..91f380d7 100644 --- a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonRestOperationTest.java +++ b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonRestOperationTest.java @@ -50,7 +50,7 @@ @Before public void setUp() throws Exception { - when(transportFactory.restTransport()).thenReturn(transport); + when(transportFactory.getTransport()).thenReturn(transport); restOperation.with(transportFactory); } diff --git a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JsonRestSagaRequestTest.java b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JsonRestSagaRequestTest.java index 4ef870ce..fe105555 100644 --- a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JsonRestSagaRequestTest.java +++ b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JsonRestSagaRequestTest.java @@ -69,7 +69,7 @@ public void blowsUpIfCompensationIsNotSpecified() { @SuppressWarnings("unchecked") @Test public void defaultToNopFallbackIfNotSpecified() { - when(transportFactory.restTransport()).thenReturn(restTransport); + when(transportFactory.getTransport()).thenReturn(restTransport); JsonRestSagaRequest request = newSagaRequest(transaction, compensation, null); request.with(transportFactory); diff --git a/saga-format/src/test/java/org/apache/servicecomb/saga/format/SagaEventFormatTest.java b/saga-format/src/test/java/org/apache/servicecomb/saga/format/SagaEventFormatTest.java index fc509e46..ad6fb625 100644 --- a/saga-format/src/test/java/org/apache/servicecomb/saga/format/SagaEventFormatTest.java +++ b/saga-format/src/test/java/org/apache/servicecomb/saga/format/SagaEventFormatTest.java @@ -80,12 +80,12 @@ @Before public void setUp() throws Exception { - when(transportFactory.restTransport()).thenReturn(restTransport); + when(transportFactory.getTransport()).thenReturn(restTransport); } @After public void tearDown() throws Exception { - verify(transportFactory, times(3)).restTransport(); + verify(transportFactory, times(3)).getTransport(); } @Test ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on 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