You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2017/12/27 04:55:14 UTC
[incubator-servicecomb-saga] 07/11: SCB-97 glued request
interception with transaction aop
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 eb79f26d9534ad9228cfd8979dc3cce30ec8d854
Author: seanyinx <se...@huawei.com>
AuthorDate: Tue Dec 26 18:37:52 2017 +0800
SCB-97 glued request interception with transaction aop
Signed-off-by: seanyinx <se...@huawei.com>
---
integration-tests/pack-tests/pom.xml | 10 +++++++---
.../integration/pack/tests/GreetingController.java | 12 +-----------
.../saga/integration/pack/tests/PackIT.java | 18 ++++++++++++++++--
.../servicecomb/saga/omega/context/OmegaContext.java | 20 ++++++++++++++++++++
.../saga/omega/context}/UniqueIdGenerator.java | 5 +----
.../saga/omega/context/OmegaContextTest.java | 2 +-
omega/omega-spring-starter/pom.xml | 4 ----
.../saga/omega/spring/OmegaSpringConfig.java | 13 +++++++++++++
.../transaction/spring/TransactionAspectConfig.java | 4 ----
.../spring/TransactionInterceptionTest.java | 6 ++++++
.../transport/resttemplate/RestTemplateConfig.java | 10 ++--------
.../TransactionClientHttpRequestInterceptor.java | 19 +++++++------------
.../resttemplate/TransactionHandlerInterceptor.java | 18 +++++++-----------
.../src/main/resources/META-INF/spring.factories | 19 +++++++++++++++++++
.../TransactionClientHttpRequestInterceptorTest.java | 10 +++++-----
.../TransactionHandlerInterceptorTest.java | 8 +++++---
.../resttemplate/UniqueIdGeneratorTest.java | 2 ++
17 files changed, 112 insertions(+), 68 deletions(-)
diff --git a/integration-tests/pack-tests/pom.xml b/integration-tests/pack-tests/pom.xml
index bc7717c..41a40d8 100644
--- a/integration-tests/pack-tests/pom.xml
+++ b/integration-tests/pack-tests/pom.xml
@@ -46,6 +46,10 @@
<artifactId>omega-spring-starter</artifactId>
</dependency>
<dependency>
+ <groupId>io.servicecomb.saga</groupId>
+ <artifactId>omega-transport-resttemplate</artifactId>
+ </dependency>
+ <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
@@ -193,9 +197,9 @@
<version>${maven.failsafe.version}</version>
<configuration>
<systemPropertyVariables>
- <saga.address>
- http://${docker.hostname}:${alpha.port}
- </saga.address>
+ <alpha.cluster.address>
+ ${docker.hostname}:${alpha.port}
+ </alpha.cluster.address>
</systemPropertyVariables>
<argLine>${jacoco.failsafe.argLine}</argLine>
</configuration>
diff --git a/integration-tests/pack-tests/src/test/java/io/servicecomb/saga/integration/pack/tests/GreetingController.java b/integration-tests/pack-tests/src/test/java/io/servicecomb/saga/integration/pack/tests/GreetingController.java
index 11aa0e8..1a6d489 100644
--- a/integration-tests/pack-tests/src/test/java/io/servicecomb/saga/integration/pack/tests/GreetingController.java
+++ b/integration-tests/pack-tests/src/test/java/io/servicecomb/saga/integration/pack/tests/GreetingController.java
@@ -17,8 +17,6 @@
package io.servicecomb.saga.integration.pack.tests;
-import java.util.UUID;
-
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
@@ -26,27 +24,19 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
-import io.servicecomb.saga.omega.context.OmegaContext;
-
@Controller
@RequestMapping("/")
public class GreetingController {
private final GreetingService greetingService;
- private final OmegaContext context;
@Autowired
- public GreetingController(GreetingService greetingService, OmegaContext context) {
+ public GreetingController(GreetingService greetingService) {
this.greetingService = greetingService;
- this.context = context;
}
@GetMapping("/greet")
ResponseEntity<String> greet(@RequestParam String name) {
- // TODO: 2017/12/26 to be removed when tx id retrieval is done
- context.setGlobalTxId(UUID.randomUUID().toString());
- context.setLocalTxId(UUID.randomUUID().toString());
-
return ResponseEntity.ok(greetingService.greet(name));
}
}
diff --git a/integration-tests/pack-tests/src/test/java/io/servicecomb/saga/integration/pack/tests/PackIT.java b/integration-tests/pack-tests/src/test/java/io/servicecomb/saga/integration/pack/tests/PackIT.java
index ad6bed1..3c1d0eb 100644
--- a/integration-tests/pack-tests/src/test/java/io/servicecomb/saga/integration/pack/tests/PackIT.java
+++ b/integration-tests/pack-tests/src/test/java/io/servicecomb/saga/integration/pack/tests/PackIT.java
@@ -17,23 +17,29 @@
package io.servicecomb.saga.integration.pack.tests;
+import static io.servicecomb.saga.omega.context.OmegaContext.GLOBAL_TX_ID_KEY;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
+import static org.springframework.http.HttpMethod.GET;
import static org.springframework.http.HttpStatus.OK;
+import java.util.UUID;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner;
import io.servicecomb.saga.omega.context.OmegaContext;
@RunWith(SpringRunner.class)
-@SpringBootTest(classes = GreetingApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT, properties = {"alpha.cluster.address=localhost:32782"})
+@SpringBootTest(classes = GreetingApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT)
public class PackIT {
@Autowired
private TestRestTemplate restTemplate;
@@ -44,7 +50,15 @@ public class PackIT {
@Test
public void updatesTxStateToAlpha() throws Exception {
- ResponseEntity<String> entity = restTemplate.getForEntity("/greet?name={name}", String.class, "mike");
+ HttpHeaders headers = new HttpHeaders();
+
+ headers.set(GLOBAL_TX_ID_KEY, UUID.randomUUID().toString());
+
+ ResponseEntity<String> entity = restTemplate.exchange("/greet?name={name}",
+ GET,
+ new HttpEntity<>(headers),
+ String.class,
+ "mike");
assertThat(entity.getStatusCode(), is(OK));
assertThat(entity.getBody(), is("Greetings, mike"));
diff --git a/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/OmegaContext.java b/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/OmegaContext.java
index 17c6246..d8cca65 100644
--- a/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/OmegaContext.java
+++ b/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/OmegaContext.java
@@ -23,10 +23,24 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class OmegaContext {
+ public static final String GLOBAL_TX_ID_KEY = "X-Pack-Global-Transaction-Id";
+ public static final String LOCAL_TX_ID_KEY = "X-Pack-Local-Transaction-Id";
+
private final ThreadLocal<String> globalTxId = new ThreadLocal<>();
private final ThreadLocal<String> localTxId = new ThreadLocal<>();
private final ThreadLocal<String> parentTxId = new ThreadLocal<>();
private final Map<String, CompensationContext> compensationContexts = new ConcurrentHashMap<>();
+ private final IdGenerator<String> idGenerator;
+
+ public OmegaContext(IdGenerator<String> idGenerator) {
+ this.idGenerator = idGenerator;
+ }
+
+ public String newGlobalTxId() {
+ String id = idGenerator.nextId();
+ globalTxId.set(id);
+ return id;
+ }
public void setGlobalTxId(String txId) {
globalTxId.set(txId);
@@ -36,6 +50,12 @@ public class OmegaContext {
return globalTxId.get();
}
+ public String newLocalTxId() {
+ String id = idGenerator.nextId();
+ localTxId.set(id);
+ return id;
+ }
+
public void setLocalTxId(String localTxId) {
this.localTxId.set(localTxId);
}
diff --git a/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/UniqueIdGenerator.java b/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/UniqueIdGenerator.java
similarity index 89%
rename from omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/UniqueIdGenerator.java
rename to omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/UniqueIdGenerator.java
index 8cb3eb1..300b522 100644
--- a/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/UniqueIdGenerator.java
+++ b/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/UniqueIdGenerator.java
@@ -13,15 +13,12 @@
* 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 io.servicecomb.saga.omega.transport.resttemplate;
+package io.servicecomb.saga.omega.context;
import java.util.UUID;
-import io.servicecomb.saga.omega.context.IdGenerator;
-
public class UniqueIdGenerator implements IdGenerator<String> {
@Override
public String nextId() {
diff --git a/omega/omega-context/src/test/java/io/servicecomb/saga/omega/context/OmegaContextTest.java b/omega/omega-context/src/test/java/io/servicecomb/saga/omega/context/OmegaContextTest.java
index e890c18..752f0b8 100644
--- a/omega/omega-context/src/test/java/io/servicecomb/saga/omega/context/OmegaContextTest.java
+++ b/omega/omega-context/src/test/java/io/servicecomb/saga/omega/context/OmegaContextTest.java
@@ -29,7 +29,7 @@ import org.junit.Test;
public class OmegaContextTest {
- private final OmegaContext omegaContext = new OmegaContext();
+ private final OmegaContext omegaContext = new OmegaContext(() -> "ignored");
@Test
public void eachThreadGetsDifferentGlobalTxId() throws Exception {
diff --git a/omega/omega-spring-starter/pom.xml b/omega/omega-spring-starter/pom.xml
index b900a47..59b81f8 100644
--- a/omega/omega-spring-starter/pom.xml
+++ b/omega/omega-spring-starter/pom.xml
@@ -31,10 +31,6 @@
<dependencies>
<dependency>
<groupId>io.servicecomb.saga</groupId>
- <artifactId>omega-transport-resttemplate</artifactId>
- </dependency>
- <dependency>
- <groupId>io.servicecomb.saga</groupId>
<artifactId>omega-spring-tx</artifactId>
</dependency>
<dependency>
diff --git a/omega/omega-spring-starter/src/main/java/io/servicecomb/saga/omega/spring/OmegaSpringConfig.java b/omega/omega-spring-starter/src/main/java/io/servicecomb/saga/omega/spring/OmegaSpringConfig.java
index ae92123..33a0cbc 100644
--- a/omega/omega-spring-starter/src/main/java/io/servicecomb/saga/omega/spring/OmegaSpringConfig.java
+++ b/omega/omega-spring-starter/src/main/java/io/servicecomb/saga/omega/spring/OmegaSpringConfig.java
@@ -27,6 +27,9 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import io.servicecomb.saga.omega.connector.thrift.ThriftMessageSender;
+import io.servicecomb.saga.omega.context.IdGenerator;
+import io.servicecomb.saga.omega.context.OmegaContext;
+import io.servicecomb.saga.omega.context.UniqueIdGenerator;
import io.servicecomb.saga.omega.format.NativeMessageFormat;
import io.servicecomb.saga.omega.transaction.MessageSender;
@@ -35,6 +38,16 @@ class OmegaSpringConfig {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@Bean
+ IdGenerator<String> idGenerator() {
+ return new UniqueIdGenerator();
+ }
+
+ @Bean
+ OmegaContext omegaContext(IdGenerator<String> idGenerator) {
+ return new OmegaContext(idGenerator);
+ }
+
+ @Bean
MessageSender messageSender(@Value("${alpha.cluster.address}") String[] addresses) {
// TODO: 2017/12/26 connect to the one with lowest latency
for (String address : addresses) {
diff --git a/omega/omega-spring-tx/src/main/java/io/servicecomb/saga/omega/transaction/spring/TransactionAspectConfig.java b/omega/omega-spring-tx/src/main/java/io/servicecomb/saga/omega/transaction/spring/TransactionAspectConfig.java
index 59f7d2e..358ef26 100644
--- a/omega/omega-spring-tx/src/main/java/io/servicecomb/saga/omega/transaction/spring/TransactionAspectConfig.java
+++ b/omega/omega-spring-tx/src/main/java/io/servicecomb/saga/omega/transaction/spring/TransactionAspectConfig.java
@@ -28,10 +28,6 @@ import io.servicecomb.saga.omega.transaction.TransactionAspect;
@Configuration
@EnableAspectJAutoProxy
public class TransactionAspectConfig {
- @Bean
- OmegaContext omegaContext() {
- return new OmegaContext();
- }
@Bean
TransactionAspect transactionAspect(MessageSender sender, OmegaContext context) {
diff --git a/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java b/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java
index 5aefb68..67fdff9 100644
--- a/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java
+++ b/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java
@@ -41,6 +41,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.junit4.SpringRunner;
import io.servicecomb.saga.omega.context.OmegaContext;
+import io.servicecomb.saga.omega.context.UniqueIdGenerator;
import io.servicecomb.saga.omega.transaction.MessageHandler;
import io.servicecomb.saga.omega.transaction.MessageSender;
import io.servicecomb.saga.omega.transaction.TxEvent;
@@ -123,6 +124,11 @@ public class TransactionInterceptionTest {
private final List<byte[]> messages = new ArrayList<>();
@Bean
+ OmegaContext omegaContext() {
+ return new OmegaContext(new UniqueIdGenerator());
+ }
+
+ @Bean
List<byte[]> messages() {
return messages;
}
diff --git a/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/RestTemplateConfig.java b/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/RestTemplateConfig.java
index 34683b1..053e3ff 100644
--- a/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/RestTemplateConfig.java
+++ b/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/RestTemplateConfig.java
@@ -25,22 +25,16 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.web.client.RestTemplate;
-import io.servicecomb.saga.omega.context.IdGenerator;
import io.servicecomb.saga.omega.context.OmegaContext;
@Configuration
public class RestTemplateConfig {
@Bean
- IdGenerator<String> idGenerator() {
- return new UniqueIdGenerator();
- }
-
- @Bean
- public RestTemplate restTemplate(IdGenerator<String> idGenerator, OmegaContext context) {
+ public RestTemplate restTemplate(OmegaContext context) {
RestTemplate template = new RestTemplate();
List<ClientHttpRequestInterceptor> interceptors = template.getInterceptors();
- interceptors.add(new TransactionClientHttpRequestInterceptor(context, idGenerator));
+ interceptors.add(new TransactionClientHttpRequestInterceptor(context));
template.setInterceptors(interceptors);
return template;
}
diff --git a/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionClientHttpRequestInterceptor.java b/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionClientHttpRequestInterceptor.java
index 158fbc8..35bc9d0 100644
--- a/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionClientHttpRequestInterceptor.java
+++ b/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionClientHttpRequestInterceptor.java
@@ -18,6 +18,9 @@
package io.servicecomb.saga.omega.transport.resttemplate;
+import static io.servicecomb.saga.omega.context.OmegaContext.GLOBAL_TX_ID_KEY;
+import static io.servicecomb.saga.omega.context.OmegaContext.LOCAL_TX_ID_KEY;
+
import java.io.IOException;
import org.springframework.http.HttpRequest;
@@ -25,20 +28,14 @@ import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
-import io.servicecomb.saga.omega.context.IdGenerator;
import io.servicecomb.saga.omega.context.OmegaContext;
-public class TransactionClientHttpRequestInterceptor implements ClientHttpRequestInterceptor {
-
- public static final String GLOBAL_TX_ID_KEY = "X-Pack-Global-Transaction-Id";
- public static final String LOCAL_TX_ID_KEY = "X-Pack-Local-Transaction-Id";
+class TransactionClientHttpRequestInterceptor implements ClientHttpRequestInterceptor {
private final OmegaContext omegaContext;
- private final IdGenerator<String> idGenerator;
- TransactionClientHttpRequestInterceptor(OmegaContext omegaContext, IdGenerator<String> idGenerator) {
+ TransactionClientHttpRequestInterceptor(OmegaContext omegaContext) {
this.omegaContext = omegaContext;
- this.idGenerator = idGenerator;
}
@Override
@@ -54,8 +51,7 @@ public class TransactionClientHttpRequestInterceptor implements ClientHttpReques
String globalTxId = omegaContext.globalTxId();
if (globalTxId == null) {
- globalTxId = idGenerator.nextId();
- omegaContext.setGlobalTxId(globalTxId);
+ return omegaContext.newGlobalTxId();
}
return globalTxId;
}
@@ -64,8 +60,7 @@ public class TransactionClientHttpRequestInterceptor implements ClientHttpReques
String localTxId = omegaContext.localTxId();
if (localTxId == null) {
- localTxId = idGenerator.nextId();
- omegaContext.setLocalTxId(localTxId);
+ return omegaContext.newLocalTxId();
}
return localTxId;
}
diff --git a/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionHandlerInterceptor.java b/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionHandlerInterceptor.java
index 6363e4f..d71c558 100644
--- a/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionHandlerInterceptor.java
+++ b/omega/omega-transport/omega-transport-resttemplate/src/main/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionHandlerInterceptor.java
@@ -20,8 +20,8 @@
package io.servicecomb.saga.omega.transport.resttemplate;
-import static io.servicecomb.saga.omega.transport.resttemplate.TransactionClientHttpRequestInterceptor.GLOBAL_TX_ID_KEY;
-import static io.servicecomb.saga.omega.transport.resttemplate.TransactionClientHttpRequestInterceptor.LOCAL_TX_ID_KEY;
+import static io.servicecomb.saga.omega.context.OmegaContext.GLOBAL_TX_ID_KEY;
+import static io.servicecomb.saga.omega.context.OmegaContext.LOCAL_TX_ID_KEY;
import java.lang.invoke.MethodHandles;
@@ -35,13 +35,13 @@ import org.springframework.web.servlet.ModelAndView;
import io.servicecomb.saga.omega.context.OmegaContext;
-public class TransactionHandlerInterceptor implements HandlerInterceptor {
+class TransactionHandlerInterceptor implements HandlerInterceptor {
private static Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
private final OmegaContext omegaContext;
- public TransactionHandlerInterceptor(OmegaContext omegaContext) {
+ TransactionHandlerInterceptor(OmegaContext omegaContext) {
this.omegaContext = omegaContext;
}
@@ -49,15 +49,11 @@ public class TransactionHandlerInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
String globalTxId = request.getHeader(GLOBAL_TX_ID_KEY);
if (globalTxId == null) {
- LOG.info("no such header: {}", GLOBAL_TX_ID_KEY);
+ LOG.debug("no such header: {}", GLOBAL_TX_ID_KEY);
} else {
omegaContext.setGlobalTxId(globalTxId);
- }
- String parentTxId = request.getHeader(LOCAL_TX_ID_KEY);
- if (parentTxId == null) {
- LOG.info("no such header: {}", LOCAL_TX_ID_KEY);
- } else {
- omegaContext.setParentTxId(parentTxId);
+ omegaContext.newLocalTxId();
+ omegaContext.setParentTxId(request.getHeader(LOCAL_TX_ID_KEY));
}
return true;
}
diff --git a/omega/omega-transport/omega-transport-resttemplate/src/main/resources/META-INF/spring.factories b/omega/omega-transport/omega-transport-resttemplate/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..7d03c78
--- /dev/null
+++ b/omega/omega-transport/omega-transport-resttemplate/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ io.servicecomb.saga.omega.transport.resttemplate.WebConfig,\
+ io.servicecomb.saga.omega.transport.resttemplate.RestTemplateConfig
diff --git a/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionClientHttpRequestInterceptorTest.java b/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionClientHttpRequestInterceptorTest.java
index 41da9ec..223b56c 100644
--- a/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionClientHttpRequestInterceptorTest.java
+++ b/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionClientHttpRequestInterceptorTest.java
@@ -19,8 +19,8 @@
package io.servicecomb.saga.omega.transport.resttemplate;
import static com.seanyinx.github.unit.scaffolding.Randomness.uniquify;
-import static io.servicecomb.saga.omega.transport.resttemplate.TransactionClientHttpRequestInterceptor.GLOBAL_TX_ID_KEY;
-import static io.servicecomb.saga.omega.transport.resttemplate.TransactionClientHttpRequestInterceptor.LOCAL_TX_ID_KEY;
+import static io.servicecomb.saga.omega.context.OmegaContext.GLOBAL_TX_ID_KEY;
+import static io.servicecomb.saga.omega.context.OmegaContext.LOCAL_TX_ID_KEY;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
@@ -57,10 +57,10 @@ public class TransactionClientHttpRequestInterceptorTest {
private final String localTxId = uniquify("local tx id");
private final IdGenerator<String> idGenerator = Mockito.mock(IdGenerator.class);
- private final OmegaContext omegaContext = new OmegaContext();
+ private final OmegaContext omegaContext = new OmegaContext(idGenerator);
private final ClientHttpRequestInterceptor clientHttpRequestInterceptor = new TransactionClientHttpRequestInterceptor(
- omegaContext,
- idGenerator);
+ omegaContext
+ );
@Before
public void setUp() throws Exception {
diff --git a/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionHandlerInterceptorTest.java b/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionHandlerInterceptorTest.java
index a6c29cb..4aabddd 100644
--- a/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionHandlerInterceptorTest.java
+++ b/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/TransactionHandlerInterceptorTest.java
@@ -18,9 +18,10 @@
package io.servicecomb.saga.omega.transport.resttemplate;
-import static io.servicecomb.saga.omega.transport.resttemplate.TransactionClientHttpRequestInterceptor.GLOBAL_TX_ID_KEY;
-import static io.servicecomb.saga.omega.transport.resttemplate.TransactionClientHttpRequestInterceptor.LOCAL_TX_ID_KEY;
+import static io.servicecomb.saga.omega.context.OmegaContext.GLOBAL_TX_ID_KEY;
+import static io.servicecomb.saga.omega.context.OmegaContext.LOCAL_TX_ID_KEY;
import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
@@ -43,7 +44,7 @@ public class TransactionHandlerInterceptorTest {
private static final String localTxId = UUID.randomUUID().toString();
- private final OmegaContext omegaContext = new OmegaContext();
+ private final OmegaContext omegaContext = new OmegaContext(() -> "ignored");
private HandlerInterceptor requestInterceptor = new TransactionHandlerInterceptor(omegaContext);
@@ -66,6 +67,7 @@ public class TransactionHandlerInterceptorTest {
requestInterceptor.preHandle(request, response, null);
assertThat(omegaContext.globalTxId(), is(globalTxId));
+ assertThat(omegaContext.localTxId(), is(notNullValue()));
assertThat(omegaContext.parentTxId(), is(localTxId));
}
diff --git a/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/UniqueIdGeneratorTest.java b/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/UniqueIdGeneratorTest.java
index 87338ea..720eb0b 100644
--- a/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/UniqueIdGeneratorTest.java
+++ b/omega/omega-transport/omega-transport-resttemplate/src/test/java/io/servicecomb/saga/omega/transport/resttemplate/UniqueIdGeneratorTest.java
@@ -34,6 +34,8 @@ import java.util.concurrent.Future;
import org.junit.Test;
+import io.servicecomb.saga.omega.context.UniqueIdGenerator;
+
public class UniqueIdGeneratorTest {
private final UniqueIdGenerator idGenerator = new UniqueIdGenerator();
--
To stop receiving notification emails like this one, please contact
"commits@servicecomb.apache.org" <co...@servicecomb.apache.org>.