diff --git a/spring-cloud-starter-tencent-metadata-transfer/pom.xml b/spring-cloud-starter-tencent-metadata-transfer/pom.xml index 7cfc26733..86185cfe6 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/pom.xml +++ b/spring-cloud-starter-tencent-metadata-transfer/pom.xml @@ -61,8 +61,8 @@ com.alibaba transmittable-thread-local + true - diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/MetadataWrap.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/MetadataWrap.java deleted file mode 100644 index 46c8203c3..000000000 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/MetadataWrap.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making Spring Cloud Tencent available. - * - * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. - * - * Licensed under the BSD 3-Clause License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://opensource.org/licenses/BSD-3-Clause - * - * Unless required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - * - */ - -package com.tencent.cloud.metadata.concurrent; - -/** - * Metadata Wrapper interface. - *

- * Used to mark wrapper types, for example: - * - * @author wlx - */ -public interface MetadataWrap { - - /** - * unwrap to the original/underneath one. - * - * @return a unWrap instance - */ - T unWrap(); - -} diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutor.java index 58f6667d0..b7dbbd04a 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutor.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutor.java @@ -21,10 +21,10 @@ package com.tencent.cloud.metadata.concurrent.executor; import java.util.Objects; import java.util.concurrent.Executor; +import com.alibaba.ttl.spi.TtlWrapper; import com.alibaba.ttl.threadpool.TtlExecutors; import com.alibaba.ttl.threadpool.agent.TtlAgent; import com.tencent.cloud.common.metadata.MetadataContext; -import com.tencent.cloud.metadata.concurrent.MetadataWrap; import org.springframework.lang.NonNull; @@ -35,7 +35,7 @@ import org.springframework.lang.NonNull; * * @author wlx */ -class MetadataExecutor implements Executor, MetadataWrap { +class MetadataExecutor implements Executor, TtlWrapper { private final Executor delegate; @@ -71,8 +71,7 @@ class MetadataExecutor implements Executor, MetadataWrap { } @Override - public Executor unWrap() { + public Executor unwrap() { return TtlExecutors.unwrap(delegate); } - } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorService.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorService.java index 983826813..4ef6944d7 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorService.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorService.java @@ -123,7 +123,7 @@ class MetadataExecutorService extends MetadataExecutor implements ExecutorServic } @Override - public ExecutorService unWrap() { + public ExecutorService unwrap() { return TtlExecutors.unwrap(delegate); } @@ -143,5 +143,4 @@ class MetadataExecutorService extends MetadataExecutor implements ExecutorServic public int hashCode() { return Objects.hash(delegate); } - } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutors.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutors.java index 030c2cf9e..3f9155ff1 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutors.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutors.java @@ -22,7 +22,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.ScheduledExecutorService; -import com.tencent.cloud.metadata.concurrent.MetadataWrap; +import com.alibaba.ttl.spi.TtlWrapper; import org.springframework.lang.Nullable; @@ -85,7 +85,7 @@ public final class MetadataExecutors { if (!isMetadataWrap(executor)) { return executor; } - return (T) ((MetadataExecutor) executor).unWrap(); + return (T) ((MetadataExecutor) executor).unwrap(); } /** @@ -100,10 +100,9 @@ public final class MetadataExecutors { * @return if the parameter executor is MetadataExecutor wrapper */ public static boolean isMetadataWrap(@Nullable T executor) { - return executor instanceof MetadataWrap; + return executor instanceof TtlWrapper; } private MetadataExecutors() { } - } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorService.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorService.java index e49adbc64..e012e90c7 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorService.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorService.java @@ -77,7 +77,7 @@ class MetadataScheduledExecutorService extends MetadataExecutorService } @Override - public ScheduledExecutorService unWrap() { + public ScheduledExecutorService unwrap() { return TtlExecutors.unwrap(delegate); } @@ -97,5 +97,4 @@ class MetadataScheduledExecutorService extends MetadataExecutorService public int hashCode() { return Objects.hash(delegate); } - } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/MetadataTestUtil.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/MetadataTestUtil.java index bc23f174c..eff9b671c 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/MetadataTestUtil.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/MetadataTestUtil.java @@ -46,6 +46,5 @@ public final class MetadataTestUtil { customMetadata = MetadataContextHolder.get().getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE); Assertions.assertThat(customMetadata.get("a")).isEqualTo("1"); Assertions.assertThat(customMetadata.get("b")).isEqualTo("2"); - } } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorServiceTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorServiceTest.java index 1c21c36de..88a9723ed 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorServiceTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorServiceTest.java @@ -124,5 +124,4 @@ public class MetadataExecutorServiceTest { @SpringBootApplication protected static class TestApplication { } - } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorTest.java index 068d04875..cb30aa505 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorTest.java @@ -74,7 +74,7 @@ public class MetadataExecutorTest { metadataExecutor.execute(() -> { Map fragmentContext = MetadataContextHolder.get().getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE); - Assertions.assertThat(fragmentContextAfterInit.equals(fragmentContext)); + Assertions.assertThat(fragmentContextAfterInit.equals(fragmentContext)).isTrue(); }); // wait 200ms for metadataExecutor execute task @@ -84,7 +84,7 @@ public class MetadataExecutorTest { @Test public void metadataExecutorUnWrap() { MetadataExecutor metadataExecutor = new MetadataExecutor(executorService); - Executor executor = metadataExecutor.unWrap(); + Executor executor = metadataExecutor.unwrap(); Assertions.assertThat(executor).isEqualTo(executorService); } @@ -129,5 +129,4 @@ public class MetadataExecutorTest { @SpringBootApplication protected static class TestApplication { } - } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorsTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorsTest.java index 3ec40c81f..07604640c 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorsTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataExecutorsTest.java @@ -60,5 +60,4 @@ public class MetadataExecutorsTest { MetadataExecutors.getMetadataScheduledExecutorService(scheduledExecutorService)); Assertions.assertThat(unwrap).isEqualTo(scheduledExecutorService); } - } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorServiceTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorServiceTest.java index a281d225c..631d0ab6f 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorServiceTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/concurrent/executor/MetadataScheduledExecutorServiceTest.java @@ -85,5 +85,4 @@ public class MetadataScheduledExecutorServiceTest { @SpringBootApplication protected static class TestApplication { } - } diff --git a/spring-cloud-tencent-commons/pom.xml b/spring-cloud-tencent-commons/pom.xml index 495fc4a15..3d9dcee20 100644 --- a/spring-cloud-tencent-commons/pom.xml +++ b/spring-cloud-tencent-commons/pom.xml @@ -105,6 +105,12 @@ spring-boot-actuator-autoconfigure true + + + com.alibaba + transmittable-thread-local + true + diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java index e92c526b3..62a567064 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java @@ -22,6 +22,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +import com.alibaba.ttl.TransmittableThreadLocal; import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; @@ -34,7 +35,7 @@ import org.springframework.util.CollectionUtils; */ public final class MetadataContextHolder { - private static final ThreadLocal METADATA_CONTEXT = new InheritableThreadLocal<>(); + private static final ThreadLocal METADATA_CONTEXT = new TransmittableThreadLocal<>(); private static MetadataLocalProperties metadataLocalProperties; private static StaticMetadataManager staticMetadataManager; diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml index a0abe8b36..3816ab265 100644 --- a/spring-cloud-tencent-dependencies/pom.xml +++ b/spring-cloud-tencent-dependencies/pom.xml @@ -241,7 +241,6 @@ transmittable-thread-local ${transmittable-thread-local.version} -