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 77de3313dd4308cfd249d78c0e650e51af9fa9ef Author: Lei Zhang <[email protected]> AuthorDate: Mon Mar 7 18:33:09 2022 +0800 SCB-2421 Upgrade Spring Boot and Spring Cloud * Upgrade spring-boot to 2.3.12.RELEASE * Upgrade spring-cloud to Hoxton.SR12 --- .../acceptance-pack-spring-demo-with-nacos/pom.xml | 4 +- .../pack/alpha/fsm/FsmAutoConfiguration.java | 4 +- .../ElasticsearchTransactionRepository.java | 158 +++++++-------------- .../servicecomb/pack/alpha/fsm/SagaActorTest.java | 14 +- .../pack/alpha/fsm/SagaIntegrationTest.java | 16 ++- .../ElasticsearchTransactionRepositoryTest.java | 11 +- .../alpha/server/AlphaEventControllerTest.java | 6 +- .../alpha/server/AlphaIntegrationWithSSLTest.java | 5 +- .../pack/alpha/server/api/APIv1ControllerTest.java | 14 +- .../cluster/master/ClusterLockServiceTest.java | 5 +- .../alpha/server/fsm/AlphaIntegrationFsmTest.java | 4 +- .../server/tcc/AlphaTccEventControllerTest.java | 6 +- .../alpha/server/tcc/MemoryAlphaTccServerTest.java | 5 +- .../alpha/server/tcc/RdbAlphaTccServerTest.java | 5 +- .../pack/alpha/server/tcc/TccApplication.java | 1 - .../alpha/server/tcc/TccCallbackEngineTest.java | 5 +- .../server/tcc/service/TccTxEventServiceTest.java | 13 +- .../service/TccTxEventServiceTransactionTest.java | 14 +- .../consul/AlphaConsulAutoConfiguration.java | 4 +- alpha/alpha-spring-cloud-starter-nacos/pom.xml | 2 +- .../nacos/GrpcStartableStartedEventListener.java | 5 +- .../pack/demo/inventory/InventoryServiceTest.java | 8 +- .../pack/demo/payment/PaymentServiceTest.java | 8 +- omega/omega-spring-cloud-nacos-starter/pom.xml | 2 +- .../omega/spring/cloud/OmegaSpringNacosConfig.java | 2 +- .../spring/CompensableAnnotationCheckingTest.java | 9 ++ .../transaction/spring/TccInterceptorTest.java | 6 +- .../spring/TransactionInterceptionTest.java | 6 +- pack-dependencies/pom.xml | 49 +++++-- .../jpa/EclipseLinkJpaConfiguration.java | 7 +- 30 files changed, 198 insertions(+), 200 deletions(-) diff --git a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/pom.xml b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/pom.xml index 6b66a04..5313b59 100644 --- a/acceptance-tests/acceptance-pack-spring-demo-with-nacos/pom.xml +++ b/acceptance-tests/acceptance-pack-spring-demo-with-nacos/pom.xml @@ -53,14 +53,14 @@ <configuration> <images> <image> - <name>nacos/nacos-server</name> + <name>nacos/nacos-server:1.4.2</name> <alias>nacos</alias> <run> <env> <MODE>standalone</MODE> </env> <wait> - <log>Completed initialization in</log> + <log>Nacos started successfully</log> <tcp> <ports> <port>8848</port> 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 6facf00..aeef923 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 @@ -46,7 +46,7 @@ import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.ConfigurableEnvironment; -import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; @Configuration @ImportAutoConfiguration({ @@ -110,7 +110,7 @@ public class FsmAutoConfiguration { @Bean @ConditionalOnProperty(value = "alpha.feature.akka.transaction.repository.type", havingValue = "elasticsearch") public TransactionRepository transactionRepository(MetricsService metricsService, - ElasticsearchTemplate template) { + ElasticsearchRestTemplate template) { return new ElasticsearchTransactionRepository(template, metricsService, repositoryElasticsearchBatchSize, repositoryElasticsearchRefreshTime); } 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 a92b27b..0743f68 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 @@ -31,31 +31,23 @@ import org.apache.servicecomb.pack.alpha.core.fsm.repository.model.GlobalTransac import org.apache.servicecomb.pack.alpha.core.fsm.repository.model.PagingGlobalTransactions; import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService; import org.apache.servicecomb.pack.alpha.fsm.repository.TransactionRepository; -import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest; -import org.elasticsearch.action.admin.indices.stats.IndicesStatsResponse; -import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; -import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; -import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.data.domain.Pageable; -import org.springframework.data.elasticsearch.core.DefaultResultMapper; -import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; -import org.springframework.data.elasticsearch.core.SearchResultMapper; -import org.springframework.data.elasticsearch.core.aggregation.AggregatedPage; -import org.springframework.data.elasticsearch.core.aggregation.impl.AggregatedPageImpl; -import org.springframework.data.elasticsearch.core.query.GetQuery; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; +import org.springframework.data.elasticsearch.core.SearchHit; +import org.springframework.data.elasticsearch.core.SearchHits; +import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.data.elasticsearch.core.query.IndexQuery; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; -import org.springframework.data.elasticsearch.core.query.SearchQuery; +import org.springframework.data.elasticsearch.core.query.Query; public class ElasticsearchTransactionRepository implements TransactionRepository { @@ -63,7 +55,7 @@ public class ElasticsearchTransactionRepository implements TransactionRepository public static final String INDEX_NAME = "alpha_global_transaction"; public static final String INDEX_TYPE = "alpha_global_transaction_type"; private static final long SCROLL_TIMEOUT = 3000; - private final ElasticsearchTemplate template; + private final ElasticsearchRestTemplate template; private final MetricsService metricsService; private final ObjectMapper mapper = new ObjectMapper(); private int batchSize; @@ -73,7 +65,7 @@ public class ElasticsearchTransactionRepository implements TransactionRepository private final Object lock = new Object(); public ElasticsearchTransactionRepository( - ElasticsearchTemplate template, MetricsService metricsService, int batchSize, + ElasticsearchRestTemplate template, MetricsService metricsService, int batchSize, int refreshTime) { this.template = template; this.metricsService = metricsService; @@ -103,11 +95,9 @@ public class ElasticsearchTransactionRepository implements TransactionRepository @Override public GlobalTransaction getGlobalTransactionByGlobalTxId(String globalTxId) { - GetQuery getQuery = new GetQuery(); - getQuery.setId(globalTxId); - GlobalTransactionDocument globalTransaction = this.template - .queryForObject(getQuery, GlobalTransactionDocument.class); - return globalTransaction; + Query query = new NativeSearchQueryBuilder().withIds(Collections.singletonList(globalTxId)).build(); + SearchHit<GlobalTransactionDocument> result = this.template.searchOne(query, GlobalTransactionDocument.class); + return result.getContent(); } @Override @@ -117,38 +107,30 @@ public class ElasticsearchTransactionRepository implements TransactionRepository @Override public PagingGlobalTransactions getGlobalTransactions(String state, int page, int size) { - //ElasticsearchTemplate.prepareScroll() does not add sorting https://jira.spring.io/browse/DATAES-457 long start = System.currentTimeMillis(); PagingGlobalTransactions pagingGlobalTransactions; List<GlobalTransaction> globalTransactions = new ArrayList(); try{ - IndicesExistsRequest request = new IndicesExistsRequest(INDEX_NAME); - if (this.template.getClient().admin().indices().exists(request).actionGet().isExists()) { - QueryBuilder query; + if (this.template.indexOps(IndexCoordinates.of(INDEX_NAME)).exists()) { + NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder(); + queryBuilder.withSearchType(SearchType.valueOf(INDEX_TYPE)); if (state != null && state.trim().length() > 0) { - query = QueryBuilders.termQuery("state.keyword", state); + queryBuilder.withQuery(QueryBuilders.termQuery("state.keyword", state)); } else { - query = QueryBuilders.matchAllQuery(); + queryBuilder.withQuery(QueryBuilders.matchAllQuery()); } - SearchResponse response = this.template.getClient().prepareSearch(INDEX_NAME) - .setTypes(INDEX_TYPE) - .setQuery(query) - .addSort(SortBuilders.fieldSort("beginTime").order(SortOrder.DESC).unmappedType("date")) - .setSize(size) - .setFrom(page * size) - .execute() - .actionGet(); - ObjectMapper jsonMapper = new ObjectMapper(); - response.getHits().forEach(hit -> { + queryBuilder.withSort(SortBuilders.fieldSort("beginTime").order(SortOrder.DESC).unmappedType("date")); + queryBuilder.withPageable(PageRequest.of(page, size)); + + SearchHits<GlobalTransactionDocument> result = this.template.search(queryBuilder.build(), GlobalTransactionDocument.class); + result.forEach(hit -> { try { - GlobalTransactionDocument dto = jsonMapper - .readValue(hit.getSourceAsString(), GlobalTransactionDocument.class); - globalTransactions.add(dto); + globalTransactions.add(hit.getContent()); } catch (Exception e) { LOG.error(e.getMessage(), e); } }); - pagingGlobalTransactions = PagingGlobalTransactions.builder().page(page).size(size).total(response.getHits().getTotalHits()) + pagingGlobalTransactions = PagingGlobalTransactions.builder().page(page).size(size).total(result.getTotalHits()) .globalTransactions(globalTransactions).elapsed(System.currentTimeMillis() - start).build(); } else { LOG.warn("[alpha_global_transaction] index not exist"); @@ -165,91 +147,49 @@ public class ElasticsearchTransactionRepository implements TransactionRepository } public Map<String, Long> getTransactionStatistics() { - TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders - .terms("count_group_by_state").field("state.keyword"); - SearchQuery searchQuery = new NativeSearchQueryBuilder() - .withIndices(INDEX_NAME) - .addAggregation(termsAggregationBuilder) + Map<String, Long> statistics = new HashMap<>(); + + Query query = new NativeSearchQueryBuilder() + .addAggregation(AggregationBuilders.terms("count_group_by_state").field("state.keyword")) .build(); - return this.template.query(searchQuery, response -> { - Map<String, Long> statistics = new HashMap<>(); - if (response.getHits().totalHits > 0) { - final StringTerms groupState = response.getAggregations().get("count_group_by_state"); - statistics = groupState.getBuckets() - .stream() - .collect(Collectors.toMap(MultiBucketsAggregation.Bucket::getKeyAsString, - MultiBucketsAggregation.Bucket::getDocCount)); - } - return statistics; - }); + SearchHits<Map> result = this.template.search(query,Map.class,IndexCoordinates.of(INDEX_NAME)); + if (result.getTotalHits() > 0) { + final StringTerms groupState = result.getAggregations().get("count_group_by_state"); + statistics = groupState.getBuckets() + .stream() + .collect(Collectors.toMap(MultiBucketsAggregation.Bucket::getKeyAsString, + MultiBucketsAggregation.Bucket::getDocCount)); + } + + return statistics; } @Override public List<GlobalTransaction> getSlowGlobalTransactionsTopN(int n) { - // ElasticsearchTemplate.prepareScroll() does not add sorting https://jira.spring.io/browse/DATAES-457 - ObjectMapper jsonMapper = new ObjectMapper(); List<GlobalTransaction> globalTransactions = new ArrayList(); - IndicesStatsResponse indicesStatsResponse = this.template.getClient().admin().indices().prepareStats(INDEX_NAME).get(); - if(indicesStatsResponse.getIndices().get(INDEX_NAME).getTotal().docs.getCount()>0){ - SearchResponse response = this.template.getClient().prepareSearch(INDEX_NAME) - .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) - .setQuery(QueryBuilders.matchAllQuery()) - .addSort(SortBuilders.fieldSort("durationTime").order(SortOrder.DESC)) - .setFrom(0).setSize(n).setExplain(true) - .get(); - response.getHits().forEach(hit -> { - try { - GlobalTransactionDocument dto = jsonMapper - .readValue(hit.getSourceAsString(), GlobalTransactionDocument.class); - globalTransactions.add(dto); - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - }); - } + Query query = new NativeSearchQueryBuilder() + .withSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .withQuery(QueryBuilders.matchAllQuery()) + .withSort(SortBuilders.fieldSort("durationTime").order(SortOrder.DESC)) + .withPageable(PageRequest.of(0,n)) + .build(); + SearchHits<GlobalTransactionDocument> result = this.template.search(query,GlobalTransactionDocument.class); + result.forEach(hit -> { + globalTransactions.add(hit.getContent()); + }); return globalTransactions; } - private final SearchResultMapper searchResultMapper = new DefaultResultMapper() { - @Override - public <T> AggregatedPage<T> mapResults(SearchResponse response, Class<T> aClass, - Pageable pageable) { - List<GlobalTransactionDocument> result = new ArrayList<>(); - for (SearchHit hit : response.getHits()) { - if (response.getHits().getHits().length <= 0) { - return new AggregatedPageImpl<T>(Collections.EMPTY_LIST, pageable, - response.getHits().getTotalHits(), response.getScrollId()); - } - GlobalTransactionDocument globalTransactionDocument = null; - try { - globalTransactionDocument = mapper.readValue(hit.getSourceAsString(), - GlobalTransactionDocument.class); - } catch (IOException e) { - throw new RuntimeException(e.getMessage(), e); - } - result.add(globalTransactionDocument); - } - if (result.isEmpty()) { - return new AggregatedPageImpl<T>(Collections.EMPTY_LIST, pageable, - response.getHits().getTotalHits(), response.getScrollId()); - } - return new AggregatedPageImpl<T>((List<T>) result, pageable, - response.getHits().getTotalHits(), response.getScrollId()); - } - }; - private IndexQuery convert(GlobalTransaction transaction) throws JsonProcessingException { IndexQuery indexQuery = new IndexQuery(); indexQuery.setId(transaction.getGlobalTxId()); indexQuery.setSource(mapper.writeValueAsString(transaction)); - indexQuery.setIndexName(INDEX_NAME); - indexQuery.setType(INDEX_TYPE); return indexQuery; } private void save(long begin) { - template.bulkIndex(queries); - template.refresh(INDEX_NAME); + template.bulkIndex(queries, IndexCoordinates.of(INDEX_NAME)); + template.indexOps(IndexCoordinates.of(INDEX_NAME)).refresh(); metricsService.metrics().doRepositoryAccepted(queries.size()); long end = System.currentTimeMillis(); metricsService.metrics().doRepositoryAvgTime((end - begin) / queries.size()); 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 9dcfbbe..8b3a7e4 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 @@ -20,6 +20,9 @@ package org.apache.servicecomb.pack.alpha.fsm; import static org.apache.servicecomb.pack.alpha.fsm.spring.integration.akka.SagaDataExtension.SAGA_DATA_EXTENSION_PROVIDER; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; +import static org.mockito.Mockito.mock; import akka.actor.ActorRef; import akka.actor.ActorSystem; @@ -37,10 +40,10 @@ import org.apache.servicecomb.pack.alpha.core.fsm.TxState; import org.apache.servicecomb.pack.alpha.core.fsm.event.base.BaseEvent; import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService; import org.apache.servicecomb.pack.alpha.fsm.model.SagaData; +import org.apache.servicecomb.pack.alpha.fsm.repository.TransactionRepository; import org.apache.servicecomb.pack.alpha.fsm.repository.TransactionRepositoryChannel; import org.apache.servicecomb.pack.alpha.fsm.repository.channel.DefaultTransactionRepositoryChannel; 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.spring.integration.akka.SagaDataExtension; import org.junit.After; import org.junit.AfterClass; @@ -48,9 +51,12 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentMatchers; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; +import org.springframework.data.elasticsearch.core.IndexOperations; +import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import static org.hamcrest.CoreMatchers.*; @@ -60,7 +66,7 @@ public class SagaActorTest { static ActorSystem system; @Mock - ElasticsearchTemplate template; + ElasticsearchRestTemplate template; static MetricsService metricsService = new MetricsService(); @@ -99,6 +105,8 @@ public class SagaActorTest { @Before public void before(){ + when(template.indexOps(ArgumentMatchers.any(IndexCoordinates.class))).thenReturn(mock(IndexOperations.class)); + TransactionRepository repository = new ElasticsearchTransactionRepository(template, metricsService, 0,0); TransactionRepositoryChannel repositoryChannel = new DefaultTransactionRepositoryChannel(repository, metricsService); SAGA_DATA_EXTENSION_PROVIDER.get(system).setRepositoryChannel(repositoryChannel); diff --git a/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaIntegrationTest.java b/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaIntegrationTest.java index f7b927e..48753d7 100644 --- a/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaIntegrationTest.java +++ b/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/SagaIntegrationTest.java @@ -21,6 +21,8 @@ import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import akka.actor.ActorSystem; import java.util.UUID; @@ -30,12 +32,16 @@ import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService; import org.apache.servicecomb.pack.alpha.fsm.model.SagaData; import org.apache.servicecomb.pack.alpha.fsm.spring.integration.akka.SagaDataExtension; import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentMatchers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; +import org.springframework.data.elasticsearch.core.IndexOperations; +import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @@ -66,7 +72,13 @@ public class SagaIntegrationTest { MetricsService metricsService; @MockBean - ElasticsearchTemplate elasticsearchTemplate; + ElasticsearchRestTemplate elasticsearchRestTemplate; + + @Before + public void before(){ + when(elasticsearchRestTemplate.indexOps(ArgumentMatchers.any(IndexCoordinates.class))).thenReturn(mock( + IndexOperations.class)); + } @After public void after(){ diff --git a/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/repository/ElasticsearchTransactionRepositoryTest.java b/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/repository/ElasticsearchTransactionRepositoryTest.java index cc7778b..4437da8 100644 --- a/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/repository/ElasticsearchTransactionRepositoryTest.java +++ b/alpha/alpha-fsm/src/test/java/org/apache/servicecomb/pack/alpha/fsm/repository/ElasticsearchTransactionRepositoryTest.java @@ -20,6 +20,8 @@ package org.apache.servicecomb.pack.alpha.fsm.repository; import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.Date; @@ -32,19 +34,24 @@ import org.apache.servicecomb.pack.alpha.core.fsm.repository.model.GlobalTransac import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentMatchers; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; +import org.springframework.data.elasticsearch.core.IndexOperations; +import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; @RunWith(MockitoJUnitRunner.class) public class ElasticsearchTransactionRepositoryTest { @Mock - ElasticsearchTemplate template; + ElasticsearchRestTemplate template; MetricsService metricsService; @Before public void before() { + when(template.indexOps(ArgumentMatchers.any(IndexCoordinates.class))).thenReturn(mock( + IndexOperations.class)); metricsService = new MetricsService(); } diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/AlphaEventControllerTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/AlphaEventControllerTest.java index d600563..afd041b 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/AlphaEventControllerTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/AlphaEventControllerTest.java @@ -36,13 +36,13 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; @RunWith(SpringRunner.class) -@WebMvcTest(AlphaEventController.class) -@ActiveProfiles("test") +@WebMvcTest(value = AlphaEventController.class, properties = { + "spring.profiles.active=test" +}) public class AlphaEventControllerTest { private final TxEvent someEvent = someEvent(); diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/AlphaIntegrationWithSSLTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/AlphaIntegrationWithSSLTest.java index 140238e..e5e279a 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/AlphaIntegrationWithSSLTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/AlphaIntegrationWithSSLTest.java @@ -24,7 +24,6 @@ import javax.net.ssl.SSLException; import org.junit.BeforeClass; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import io.grpc.netty.GrpcSslContexts; @@ -34,13 +33,13 @@ import io.netty.handler.ssl.SslContext; import io.netty.handler.ssl.SslProvider; @RunWith(SpringRunner.class) -@ActiveProfiles("ssl") @SpringBootTest(classes = {AlphaApplication.class, AlphaConfig.class}, properties = { "alpha.server.host=0.0.0.0", "alpha.server.port=8092", "alpha.event.pollingInterval=1", - "spring.main.allow-bean-definition-overriding=true" + "spring.main.allow-bean-definition-overriding=true", + "spring.profiles.active=ssl" }) public class AlphaIntegrationWithSSLTest extends AlphaIntegrationTest { private static final int port = 8092; diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/api/APIv1ControllerTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/api/APIv1ControllerTest.java index 10fbd49..bb9b3b5 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/api/APIv1ControllerTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/api/APIv1ControllerTest.java @@ -57,7 +57,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.http.MediaType; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; @@ -83,7 +83,7 @@ public class APIv1ControllerTest { NodeStatus nodeStatus; @MockBean - ElasticsearchTemplate template; + ElasticsearchRestTemplate template; @MockBean TransactionRepository transactionRepository; @@ -111,7 +111,7 @@ public class APIv1ControllerTest { mockMvc.perform(get("/alpha/api/v1/metrics")) .andExpect(status().isOk()) .andExpect( - MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)) + MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.metrics.eventReceived").value(1)) .andExpect(jsonPath("$.metrics.eventAccepted").value(1)) .andExpect(jsonPath("$.metrics.eventRejected").value(0)) @@ -201,7 +201,7 @@ public class APIv1ControllerTest { mockMvc.perform(get("/alpha/api/v1/transaction?page=0&size=50")) .andExpect(status().isOk()) .andExpect( - MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)) + MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.total").value(1)) .andExpect(jsonPath("$.page").value(0)) .andExpect(jsonPath("$.size").value(50)) @@ -290,7 +290,7 @@ public class APIv1ControllerTest { .andDo(print()) .andExpect(status().isOk()) .andExpect( - MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)) + MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.globalTxId") .value(globalTransaction.getGlobalTxId())) .andExpect(jsonPath("$.type") @@ -324,7 +324,7 @@ public class APIv1ControllerTest { mockMvc.perform(get("/alpha/api/v1/transaction/statistics")) .andExpect(status().isOk()) .andExpect( - MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)) + MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.COMMITTED").value(statistics.get("COMMITTED"))) .andExpect(jsonPath("$.SUSPENDED").value(statistics.get("SUSPENDED"))) .andExpect(jsonPath("$.COMPENSATED").value(statistics.get("COMPENSATED"))) @@ -346,7 +346,7 @@ public class APIv1ControllerTest { mockMvc.perform(get("/alpha/api/v1/transaction/slow")) .andExpect(status().isOk()) .andExpect( - MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)) + MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$", hasSize(10))) .andReturn(); } diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/cluster/master/ClusterLockServiceTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/cluster/master/ClusterLockServiceTest.java index 886356a..9644b76 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/cluster/master/ClusterLockServiceTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/cluster/master/ClusterLockServiceTest.java @@ -29,7 +29,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.apache.servicecomb.pack.alpha.server.cluster.master.provider.jdbc.MasterLockEntityRepository; @@ -41,14 +40,14 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; @RunWith(SpringRunner.class) -@ActiveProfiles("test") @SpringBootTest(classes = {AlphaApplication.class, AlphaConfig.class}, properties = { "alpha.cluster.master.enabled=true", "alpha.server.host=0.0.0.0", "alpha.server.port=8090", "alpha.event.pollingInterval=1", - "spring.main.allow-bean-definition-overriding=true" + "spring.main.allow-bean-definition-overriding=true", + "spring.profiles.active=test" }) public class ClusterLockServiceTest { 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 85da3cd..49966bc 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 @@ -48,7 +48,7 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @@ -85,7 +85,7 @@ public class AlphaIntegrationFsmTest { private Map<String, Map<String, OmegaCallback>> omegaCallbacks; @MockBean - ElasticsearchTemplate elasticsearchTemplate; + ElasticsearchRestTemplate elasticsearchRestTemplate; @BeforeClass public static void beforeClass() { diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/AlphaTccEventControllerTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/AlphaTccEventControllerTest.java index 94627df..09c1c9e 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/AlphaTccEventControllerTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/AlphaTccEventControllerTest.java @@ -36,13 +36,13 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; @RunWith(SpringRunner.class) -@WebMvcTest(AlphaTccEventController.class) -@ActiveProfiles("test") +@WebMvcTest(value = AlphaTccEventController.class, properties = { + "spring.profiles.active=test" +}) public class AlphaTccEventControllerTest { private final TccTxEvent someEvent = someEvent(); diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/MemoryAlphaTccServerTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/MemoryAlphaTccServerTest.java index 559c660..c0106e8 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/MemoryAlphaTccServerTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/MemoryAlphaTccServerTest.java @@ -21,16 +21,15 @@ import io.grpc.netty.NettyChannelBuilder; import org.junit.BeforeClass; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = {TccApplication.class}, properties = { "alpha.server.host=0.0.0.0", - "alpha.server.port=8190" + "alpha.server.port=8190", + "spring.profiles.active=memory,tccTest" }) -@ActiveProfiles("memory,tccTest") public class MemoryAlphaTccServerTest extends AlphaTccServerTestBase { @BeforeClass diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/RdbAlphaTccServerTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/RdbAlphaTccServerTest.java index b1d20c4..61661cd 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/RdbAlphaTccServerTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/RdbAlphaTccServerTest.java @@ -21,16 +21,15 @@ import io.grpc.netty.NettyChannelBuilder; import org.junit.BeforeClass; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = {TccApplication.class}, properties = { "alpha.server.host=0.0.0.0", - "alpha.server.port=8091" + "alpha.server.port=8091", + "spring.profiles.active=tccTest" }) -@ActiveProfiles("tccTest") public class RdbAlphaTccServerTest extends AlphaTccServerTestBase { @BeforeClass diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/TccApplication.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/TccApplication.java index 0562357..abd0f5f 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/TccApplication.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/TccApplication.java @@ -21,7 +21,6 @@ import org.apache.servicecomb.pack.alpha.server.GrpcServerConfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; @SpringBootApplication(scanBasePackageClasses = GrpcTccEventService.class) @Import({GrpcServerConfig.class,TccConfiguration.class}) diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/TccCallbackEngineTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/TccCallbackEngineTest.java index 7064a07..4d66ff7 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/TccCallbackEngineTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/TccCallbackEngineTest.java @@ -42,7 +42,6 @@ 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.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @@ -50,9 +49,9 @@ import org.springframework.test.context.junit4.SpringRunner; properties = { "alpha.server.host=0.0.0.0", "alpha.server.port=8092", - "alpha.compensation.retry.delay=30" + "alpha.compensation.retry.delay=30", + "spring.profiles.active=tccTest" }) -@ActiveProfiles("tccTest") public class TccCallbackEngineTest { @Autowired diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/service/TccTxEventServiceTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/service/TccTxEventServiceTest.java index ad334ee..e1c6e11 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/service/TccTxEventServiceTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/service/TccTxEventServiceTest.java @@ -47,14 +47,13 @@ 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.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = {TccApplication.class}, properties = { - "spring.jpa.show-sql=true" + "spring.jpa.show-sql=true", + "spring.profiles.active=tccTest" }) -@ActiveProfiles("tccTest") public class TccTxEventServiceTest { @Autowired @@ -160,8 +159,8 @@ public class TccTxEventServiceTest { tccTxEventService.clearCompletedGlobalTx(1); - assertThat(participatedEventRepository.findByGlobalTxId(globalTxId).isPresent(), is(false)); - assertThat(globalTxEventRepository.findByGlobalTxId(globalTxId).isPresent(), is(false)); + assertThat(participatedEventRepository.findByGlobalTxId(globalTxId).get().isEmpty(), is(true)); + assertThat(globalTxEventRepository.findByGlobalTxId(globalTxId).get().isEmpty(), is(true)); Optional<List<TccTxEvent>> events = tccTxEventRepository.findByGlobalTxId(globalTxId); assertThat(events.get().size(), is(5)); @@ -189,8 +188,8 @@ public class TccTxEventServiceTest { tccTxEventService.clearCompletedGlobalTx(2); - assertThat(participatedEventRepository.findByGlobalTxId(globalTxId).isPresent(), is(false)); - assertThat(globalTxEventRepository.findByGlobalTxId(globalTxId).isPresent(), is(false)); + assertThat(participatedEventRepository.findByGlobalTxId(globalTxId).get().isEmpty(), is(true)); + assertThat(globalTxEventRepository.findByGlobalTxId(globalTxId).get().isEmpty(), is(true)); Optional<List<TccTxEvent>> events = tccTxEventRepository.findByGlobalTxId(globalTxId); assertThat(events.get().size(), is(5)); diff --git a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/service/TccTxEventServiceTransactionTest.java b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/service/TccTxEventServiceTransactionTest.java index f7f5e6f..cea33d8 100644 --- a/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/service/TccTxEventServiceTransactionTest.java +++ b/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/tcc/service/TccTxEventServiceTransactionTest.java @@ -43,12 +43,12 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) -@SpringBootTest(classes = {TccApplication.class, TccConfiguration.class}) -@ActiveProfiles("tccTest") +@SpringBootTest(classes = {TccApplication.class, TccConfiguration.class}, properties = { + "spring.profiles.active=tccTest" +}) public class TccTxEventServiceTransactionTest { @Autowired @@ -101,19 +101,19 @@ public class TccTxEventServiceTransactionTest { tccTxEventService.onTccStartedEvent(tccStartEvent); Optional<List<GlobalTxEvent>> startEvents = globalTxEventRepository.findByGlobalTxId(globalTxId); - assertThat(startEvents.isPresent(), is(false)); + assertThat(startEvents.get().isEmpty(), is(true)); tccTxEventService.onParticipationStartedEvent(participatedEvent); Optional<List<ParticipatedEvent>> participates = participatedEventRepository.findByGlobalTxId(globalTxId); - assertThat(participates.isPresent(), is(false)); + assertThat(participates.get().isEmpty(), is(true)); tccTxEventService.onTccEndedEvent(tccEndEvent); Optional<List<GlobalTxEvent>> endEvents = globalTxEventRepository.findByGlobalTxId(globalTxId); - assertThat(endEvents.isPresent(), is(false)); + assertThat(endEvents.get().isEmpty(), is(true)); participatedEventRepository.save(participatedEvent); tccTxEventService.onCoordinatedEvent(coordinateEvent); participates = participatedEventRepository.findByGlobalTxId(globalTxId); - assertThat(participates.isPresent(), is(true)); + assertThat(participates.get().isEmpty(), is(false)); } } diff --git a/alpha/alpha-spring-cloud-starter-consul/src/main/java/org/apache/servicecomb/pack/alpha/server/discovery/consul/AlphaConsulAutoConfiguration.java b/alpha/alpha-spring-cloud-starter-consul/src/main/java/org/apache/servicecomb/pack/alpha/server/discovery/consul/AlphaConsulAutoConfiguration.java index 9bfaab4..989b888 100644 --- a/alpha/alpha-spring-cloud-starter-consul/src/main/java/org/apache/servicecomb/pack/alpha/server/discovery/consul/AlphaConsulAutoConfiguration.java +++ b/alpha/alpha-spring-cloud-starter-consul/src/main/java/org/apache/servicecomb/pack/alpha/server/discovery/consul/AlphaConsulAutoConfiguration.java @@ -18,6 +18,7 @@ package org.apache.servicecomb.pack.alpha.server.discovery.consul; import com.ecwid.consul.v1.ConsulClient; +import com.ecwid.consul.v1.QueryParams; import com.ecwid.consul.v1.Response; import com.ecwid.consul.v1.agent.model.NewService; import com.ecwid.consul.v1.catalog.model.CatalogService; @@ -106,7 +107,8 @@ public class AlphaConsulAutoConfiguration { if(instanceRegisteredEvent.getConfig() instanceof ConsulDiscoveryProperties){ ConsulDiscoveryProperties properties = (ConsulDiscoveryProperties)instanceRegisteredEvent.getConfig(); this.consuleInstanceId = formatConsulInstanceId(properties.getInstanceId()); - Response<List<CatalogService>> services = consulClient.getCatalogService(serviceName,null); + Response<List<CatalogService>> services = consulClient.getCatalogService(serviceName, + QueryParams.Builder.builder().build()); if(services.getValue() != null){ services.getValue().stream().filter(service -> service.getServiceId().equalsIgnoreCase(this.consuleInstanceId)).forEach(service -> { diff --git a/alpha/alpha-spring-cloud-starter-nacos/pom.xml b/alpha/alpha-spring-cloud-starter-nacos/pom.xml index 9207ea3..8cd96b5 100644 --- a/alpha/alpha-spring-cloud-starter-nacos/pom.xml +++ b/alpha/alpha-spring-cloud-starter-nacos/pom.xml @@ -43,7 +43,7 @@ <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <dependency> - <groupId>org.springframework.cloud</groupId> + <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> diff --git a/alpha/alpha-spring-cloud-starter-nacos/src/main/java/org/apache/servicecomb/pack/alpha/server/discovery/nacos/GrpcStartableStartedEventListener.java b/alpha/alpha-spring-cloud-starter-nacos/src/main/java/org/apache/servicecomb/pack/alpha/server/discovery/nacos/GrpcStartableStartedEventListener.java index 7f9b072..1582c20 100644 --- a/alpha/alpha-spring-cloud-starter-nacos/src/main/java/org/apache/servicecomb/pack/alpha/server/discovery/nacos/GrpcStartableStartedEventListener.java +++ b/alpha/alpha-spring-cloud-starter-nacos/src/main/java/org/apache/servicecomb/pack/alpha/server/discovery/nacos/GrpcStartableStartedEventListener.java @@ -17,6 +17,8 @@ package org.apache.servicecomb.pack.alpha.server.discovery.nacos; +import com.alibaba.cloud.nacos.NacosDiscoveryProperties; +import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; import org.apache.servicecomb.pack.alpha.core.event.GrpcStartableStartedEvent; @@ -26,8 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.cloud.alibaba.nacos.NacosDiscoveryAutoConfiguration; -import org.springframework.cloud.alibaba.nacos.NacosDiscoveryProperties; + import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; diff --git a/demo/tcc-spring-demo/inventory/src/test/java/org/apache/servicecomb/pack/demo/inventory/InventoryServiceTest.java b/demo/tcc-spring-demo/inventory/src/test/java/org/apache/servicecomb/pack/demo/inventory/InventoryServiceTest.java index 224c326..f2126a0 100644 --- a/demo/tcc-spring-demo/inventory/src/test/java/org/apache/servicecomb/pack/demo/inventory/InventoryServiceTest.java +++ b/demo/tcc-spring-demo/inventory/src/test/java/org/apache/servicecomb/pack/demo/inventory/InventoryServiceTest.java @@ -27,14 +27,14 @@ 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.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) // disable the omega to avoid the connection of Alpha -@ActiveProfiles("test") -@SpringBootTest(classes = {TccInventoryApplication.class}, - properties = {"omega.enabled=false"}) +@SpringBootTest(classes = {TccInventoryApplication.class}, properties = { + "omega.enabled=false", + "spring.profiles.active=test" +}) public class InventoryServiceTest { @Autowired private InventoryService inventoryService; diff --git a/demo/tcc-spring-demo/payment/src/test/java/org/apache/servicecomb/pack/demo/payment/PaymentServiceTest.java b/demo/tcc-spring-demo/payment/src/test/java/org/apache/servicecomb/pack/demo/payment/PaymentServiceTest.java index ca820c2..dffc908 100644 --- a/demo/tcc-spring-demo/payment/src/test/java/org/apache/servicecomb/pack/demo/payment/PaymentServiceTest.java +++ b/demo/tcc-spring-demo/payment/src/test/java/org/apache/servicecomb/pack/demo/payment/PaymentServiceTest.java @@ -31,14 +31,14 @@ 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.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) // disable the omega to avoid the connection of Alpha -@ActiveProfiles("test") -@SpringBootTest(classes = {TccPaymentApplication.class}, - properties = {"omega.enabled=false"}) +@SpringBootTest(classes = {TccPaymentApplication.class}, properties = { + "omega.enabled=false", + "spring.profiles.active=test" +}) public class PaymentServiceTest { @Autowired diff --git a/omega/omega-spring-cloud-nacos-starter/pom.xml b/omega/omega-spring-cloud-nacos-starter/pom.xml index a560702..3c4e7bc 100644 --- a/omega/omega-spring-cloud-nacos-starter/pom.xml +++ b/omega/omega-spring-cloud-nacos-starter/pom.xml @@ -43,7 +43,7 @@ <artifactId>omega-connector-grpc</artifactId> </dependency> <dependency> - <groupId>org.springframework.cloud</groupId> + <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> diff --git a/omega/omega-spring-cloud-nacos-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/cloud/OmegaSpringNacosConfig.java b/omega/omega-spring-cloud-nacos-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/cloud/OmegaSpringNacosConfig.java index 5083ea7..899737a 100644 --- a/omega/omega-spring-cloud-nacos-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/cloud/OmegaSpringNacosConfig.java +++ b/omega/omega-spring-cloud-nacos-starter/src/main/java/org/apache/servicecomb/pack/omega/spring/cloud/OmegaSpringNacosConfig.java @@ -24,6 +24,7 @@ package org.apache.servicecomb.pack.omega.spring.cloud; +import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration; import org.apache.servicecomb.pack.omega.connector.grpc.AlphaClusterDiscovery; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -31,7 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.cloud.alibaba.nacos.NacosDiscoveryAutoConfiguration; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.context.annotation.Bean; diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableAnnotationCheckingTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableAnnotationCheckingTest.java index cc2e629..018d08c 100644 --- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableAnnotationCheckingTest.java +++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/CompensableAnnotationCheckingTest.java @@ -34,6 +34,9 @@ public class CompensableAnnotationCheckingTest { try { try (ConfigurableApplicationContext ignored = new SpringApplicationBuilder(TransactionTestMain.class) .profiles("annotation-checking") + .properties("spring.jpa.hibernate.ddl-auto=none", + "spring.datasource.driver-class-name=org.h2.Driver", + "spring.datasource.url=jdbc:h2:mem:alpha;MODE=MYSQL") .run()) { expectFailing(BeanCreationException.class); } @@ -47,6 +50,9 @@ public class CompensableAnnotationCheckingTest { try { try (ConfigurableApplicationContext ignored = new SpringApplicationBuilder(TransactionTestMain.class) .profiles("annotation-retries-checking") + .properties("spring.jpa.hibernate.ddl-auto=none", + "spring.datasource.driver-class-name=org.h2.Driver", + "spring.datasource.url=jdbc:h2:mem:alpha;MODE=MYSQL") .run()) { expectFailing(BeanCreationException.class); } @@ -60,6 +66,9 @@ public class CompensableAnnotationCheckingTest { try { try (ConfigurableApplicationContext ignored = new SpringApplicationBuilder(TransactionTestMain.class) .profiles("omega-context-aware-checking") + .properties("spring.jpa.hibernate.ddl-auto=none", + "spring.datasource.driver-class-name=org.h2.Driver", + "spring.datasource.url=jdbc:h2:mem:alpha;MODE=MYSQL") .run()) { expectFailing(BeanCreationException.class); } diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java index 0cefd6b..375ae71 100644 --- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java +++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TccInterceptorTest.java @@ -44,7 +44,11 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) -@SpringBootTest(classes = {TransactionTestMain.class, MessageConfig.class}) +@SpringBootTest(properties = { + "spring.jpa.hibernate.ddl-auto=none", + "spring.datasource.driver-class-name=org.h2.Driver", + "spring.datasource.url=jdbc:h2:mem:alpha;MODE=MYSQL"}, + classes = {TransactionTestMain.class, MessageConfig.class}) public class TccInterceptorTest { private static final String globalTxId = UUID.randomUUID().toString(); diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java index 16ed116..69c9f9e 100644 --- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java +++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/pack/omega/transaction/spring/TransactionInterceptionTest.java @@ -66,7 +66,11 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) -@SpringBootTest(classes = {TransactionTestMain.class, MessageConfig.class}) +@SpringBootTest(properties = { + "spring.jpa.hibernate.ddl-auto=none", + "spring.datasource.driver-class-name=org.h2.Driver", + "spring.datasource.url=jdbc:h2:mem:alpha;MODE=MYSQL"}, + classes = {TransactionTestMain.class, MessageConfig.class}) @AutoConfigureMockMvc public class TransactionInterceptionTest { @SuppressWarnings("unchecked") diff --git a/pack-dependencies/pom.xml b/pack-dependencies/pom.xml index 586a320..9a0f9eb 100644 --- a/pack-dependencies/pom.xml +++ b/pack-dependencies/pom.xml @@ -39,21 +39,20 @@ <slf4j.version>1.7.25</slf4j.version> <!-- spring.io --> - <spring.boot.version>2.1.6.RELEASE</spring.boot.version> - <spring.cloud.version>Greenwich.SR1</spring.cloud.version> - <spring.cloud.starter.netflix.eureka.client.version>2.1.1.RELEASE</spring.cloud.starter.netflix.eureka.client.version> - <spring.cloud.starter.consul.discovery.version>2.1.1.RELEASE</spring.cloud.starter.consul.discovery.version> - <spring.cloud.starter.zookeeper.discovery.version>2.1.1.RELEASE</spring.cloud.starter.zookeeper.discovery.version> - <spring.cloud.starter.alibaba.nacos.discovery.version>0.2.2.RELEASE</spring.cloud.starter.alibaba.nacos.discovery.version> - <spring.cloud.stream.version>2.2.1.RELEASE</spring.cloud.stream.version> - <spring.cloud.function.version>2.1.1.RELEASE</spring.cloud.function.version> + <spring.boot.version>2.3.12.RELEASE</spring.boot.version> + <spring.cloud.version>Hoxton.SR12</spring.cloud.version> + <spring.cloud.starter.netflix.eureka.client.version>2.2.10.RELEASE</spring.cloud.starter.netflix.eureka.client.version> + <spring.cloud.starter.consul.discovery.version>2.2.8.RELEASE</spring.cloud.starter.consul.discovery.version> + <spring.cloud.starter.zookeeper.discovery.version>2.2.5.RELEASE</spring.cloud.starter.zookeeper.discovery.version> + <spring.cloud.starter.alibaba.nacos.discovery.version>2.2.7.RELEASE</spring.cloud.starter.alibaba.nacos.discovery.version> + <spring.cloud.stream.version>3.0.13.RELEASE</spring.cloud.stream.version> + <spring.cloud.function.version>3.0.14.RELEASE</spring.cloud.function.version> <!-- akka fsm --> <akka.version>2.5.32</akka.version> <alpakka.version>1.0.5</alpakka.version> <leveldbjni-all.version>1.8</leveldbjni-all.version> <akka-persistence-redis.version>0.4.0</akka-persistence-redis.version> - <kafka.version>2.1.1</kafka.version> <!-- grpc netty --> <grpc.version>1.44.1</grpc.version> @@ -171,7 +170,7 @@ <version>${spring.cloud.starter.zookeeper.discovery.version}</version> </dependency> <dependency> - <groupId>org.springframework.cloud</groupId> + <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${spring.cloud.starter.alibaba.nacos.discovery.version}</version> </dependency> @@ -504,6 +503,26 @@ </dependency> <dependency> <groupId>io.grpc</groupId> + <artifactId>grpc-api</artifactId> + <version>${grpc.version}</version> + </dependency> + <dependency> + <groupId>io.grpc</groupId> + <artifactId>grpc-context</artifactId> + <version>${grpc.version}</version> + </dependency> + <dependency> + <groupId>io.grpc</groupId> + <artifactId>grpc-core</artifactId> + <version>${grpc.version}</version> + </dependency> + <dependency> + <groupId>io.grpc</groupId> + <artifactId>grpc-protobuf-lite</artifactId> + <version>${grpc.version}</version> + </dependency> + <dependency> + <groupId>io.grpc</groupId> <artifactId>grpc-netty</artifactId> <version>${grpc.version}</version> </dependency> @@ -603,11 +622,11 @@ <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> - <dependency> - <groupId>org.apache.kafka</groupId> - <artifactId>kafka-clients</artifactId> - <version>${kafka.version}</version> - </dependency> +<!-- <dependency>--> +<!-- <groupId>org.apache.kafka</groupId>--> +<!-- <artifactId>kafka-clients</artifactId>--> +<!-- <version>${kafka.version}</version>--> +<!-- </dependency>--> <dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-core</artifactId> diff --git a/persistence/persistence-jpa/src/main/java/org/apache/servicecomb/pack/persistence/jpa/EclipseLinkJpaConfiguration.java b/persistence/persistence-jpa/src/main/java/org/apache/servicecomb/pack/persistence/jpa/EclipseLinkJpaConfiguration.java index 2c8da03..69dbf91 100644 --- a/persistence/persistence-jpa/src/main/java/org/apache/servicecomb/pack/persistence/jpa/EclipseLinkJpaConfiguration.java +++ b/persistence/persistence-jpa/src/main/java/org/apache/servicecomb/pack/persistence/jpa/EclipseLinkJpaConfiguration.java @@ -26,7 +26,6 @@ import javax.sql.DataSource; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; -import org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers; import org.springframework.context.annotation.Configuration; import org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter; import org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter; @@ -34,11 +33,11 @@ import org.springframework.transaction.jta.JtaTransactionManager; @Configuration public class EclipseLinkJpaConfiguration extends JpaBaseConfiguration { + EclipseLinkJpaConfiguration(DataSource dataSource, JpaProperties properties, - ObjectProvider<JtaTransactionManager> jtaTransactionManagerProvider, - ObjectProvider<TransactionManagerCustomizers> transactionManagerCustomizers) { - super(dataSource, properties, jtaTransactionManagerProvider, transactionManagerCustomizers); + ObjectProvider<JtaTransactionManager> jtaTransactionManagerProvider) { + super(dataSource, properties, jtaTransactionManagerProvider); } @Override
