From 6f9d1c1214cc8d5481d6fd13af76192ff543a9db Mon Sep 17 00:00:00 2001 From: Jerry Lee Date: Thu, 7 Dec 2023 00:48:03 +0800 Subject: [PATCH] =?UTF-8?q?chore(ci):=20use=20java=2017=20as=20default=20j?= =?UTF-8?q?dk=20instead=20of=20java=2011=20=E2=98=95=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-EN.md | 12 ++-- README.md | 16 +++--- docs/developer-guide-en.md | 6 +- docs/developer-guide.md | 8 +-- docs/performance-test.md | 4 +- docs/requirement-scenario.md | 4 +- pom.xml | 55 ++++++++----------- scripts/integration-test.sh | 4 +- ttl-agent/pom.xml | 4 +- .../java/com/alibaba/ttl3/agent/TtlAgent.java | 6 +- .../alibaba/ttl3/agent/TtlTransformer.java | 2 +- .../com/alibaba/ttl3/agent/package-info.java | 2 +- .../README.md | 2 +- ttl2-compatible/pom.xml | 4 +- .../ttl/threadpool/agent/TtlAgent.java | 6 +- .../ttl/threadpool/agent/TtlTransformer.java | 2 +- .../ttl/threadpool/agent/package-info.java | 2 +- 17 files changed, 66 insertions(+), 73 deletions(-) diff --git a/README-EN.md b/README-EN.md index 65c4a5ed7..7629bcead 100644 --- a/README-EN.md +++ b/README-EN.md @@ -58,7 +58,7 @@ 👉 `TransmittableThreadLocal`(`TTL`): The missing Java™ std lib(simple & 0-dependency) for framework/middleware, provide an enhanced `InheritableThreadLocal` that transmits values between threads even using thread pooling components. Support `Java 6~21`. -Class [`InheritableThreadLocal`](https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html) in `JDK` +Class [`InheritableThreadLocal`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/InheritableThreadLocal.html) in `JDK` can transmit value to child thread from parent thread. But when use thread pool, thread is cached up and used repeatedly. Transmitting value from parent thread to child thread has no meaning. @@ -245,7 +245,7 @@ At present, `TTL` agent has decorated below `JDK` execution components(aka. thre - decoration implementation code is in [`JdkExecutorTtlTransformlet.java`](ttl-agent/src/main/java/com/alibaba/ttl3/agent/transformlet/internal/JdkExecutorTtlTransformlet.java). - `java.util.concurrent.ForkJoinTask`(corresponding execution component is `java.util.concurrent.ForkJoinPool`) - decoration implementation code is in [`ForkJoinTtlTransformlet.java`](ttl-agent/src/main/java/com/alibaba/ttl3/agent/transformlet/internal/ForkJoinTtlTransformlet.java), supports since version **_`2.5.1`_**. - - **_NOTE_**: [**_`CompletableFuture`_**](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/CompletableFuture.html) and (parallel) [**_`Stream`_**](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/package-summary.html) introduced in Java 8 is executed through `ForkJoinPool` underneath, so after supporting `ForkJoinPool`, `TTL` also supports `CompletableFuture` and `Stream` transparently. 🎉 + - **_NOTE_**: [**_`CompletableFuture`_**](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html) and (parallel) [**_`Stream`_**](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/stream/package-summary.html) introduced in Java 8 is executed through `ForkJoinPool` underneath, so after supporting `ForkJoinPool`, `TTL` also supports `CompletableFuture` and `Stream` transparently. 🎉 - `java.util.TimerTask`(corresponding execution component is `java.util.Timer`) - decoration implementation code is in [`TimerTaskTtlTransformlet.java`](ttl-agent/src/main/java/com/alibaba/ttl3/agent/transformlet/internal/TimerTaskTtlTransformlet.java), supports since version **_`2.7.0`_**. - **_NOTE_**: Since version `2.11.2` decoration for `TimerTask` default is enable (because correctness is first concern, not the best practice like "It is not recommended to use `TimerTask`" :); before version `2.11.1` default is disable. @@ -299,8 +299,8 @@ The implementation of auto adding self agent jar to `boot classpath` use the `Bo More info: -- [`Java Agent Specification` - `JavaDoc`文档](https://docs.oracle.com/javase/10/docs/api/java/lang/instrument/package-summary.html#package.description) -- [JAR File Specification - JAR Manifest](https://docs.oracle.com/javase/10/docs/specs/jar/jar.html#jar-manifest) +- [`Java Agent Specification` - `JavaDoc`文档](https://docs.oracle.com/en/java/javase/21/docs/api/java.instrument/java/lang/instrument/package-summary.html#package.description) +- [JAR File Specification - JAR Manifest](https://docs.oracle.com/en/java/javase/21/docs/specs/jar/jar.html#jar-manifest) - [Working with Manifest Files - The Java™ Tutorials](https://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html) # 🔌 Java API Docs @@ -347,8 +347,8 @@ mvn install ## JDK Core Classes -- [WeakHashMap](https://docs.oracle.com/javase/10/docs/api/java/util/WeakHashMap.html) -- [InheritableThreadLocal](https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html) +- [WeakHashMap](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/WeakHashMap.html) +- [InheritableThreadLocal](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/InheritableThreadLocal.html) # 💗 Who Used diff --git a/README.md b/README.md index d001eaac6..70c192ff1 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ 👉 `TransmittableThreadLocal`(`TTL`):在使用线程池等会池化复用线程的执行组件情况下,提供`ThreadLocal`值的传递功能,解决异步执行时上下文传递的问题。一个`Java`标准库本应为框架/中间件设施开发提供的标配能力,本库功能聚焦 & 0依赖,支持`Java 6~21`。 -`JDK`的[`InheritableThreadLocal`](https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html)类可以完成父线程到子线程的值传递。但对于使用线程池等会池化复用线程的执行组件的情况,线程由线程池创建好,并且线程是池化起来反复使用的;这时父子线程关系的`ThreadLocal`值传递已经没有意义,应用需要的实际上是把 **任务提交给线程池时**的`ThreadLocal`值传递到 **任务执行时**。 +`JDK`的[`InheritableThreadLocal`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/InheritableThreadLocal.html)类可以完成父线程到子线程的值传递。但对于使用线程池等会池化复用线程的执行组件的情况,线程由线程池创建好,并且线程是池化起来反复使用的;这时父子线程关系的`ThreadLocal`值传递已经没有意义,应用需要的实际上是把 **任务提交给线程池时**的`ThreadLocal`值传递到 **任务执行时**。 本库提供的[`TransmittableThreadLocal`](ttl-core/src/main/java/com/alibaba/ttl3/TransmittableThreadLocal.java)类继承并加强`InheritableThreadLocal`类,解决上述的问题,使用详见 [User Guide](#-user-guide)。 @@ -98,7 +98,7 @@ 注意:如果传递的对象(引用类型)会被修改,且没有做深拷贝(如直接传递引用或是浅拷贝),那么 - 因为跨线程传递而不再有线程封闭,传递对象在多个线程之间是有共享的。 -- 与`JDK`的[`InheritableThreadLocal.childValue()`](https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html#childValue(T))一样,需要使用者/业务逻辑注意保证传递对象的线程安全。 +- 与`JDK`的[`InheritableThreadLocal.childValue()`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/InheritableThreadLocal.html#childValue(T))一样,需要使用者/业务逻辑注意保证传递对象的线程安全。
@@ -287,7 +287,7 @@ Demo参见[`AgentDemo.kt`](ttl2-compatible/src/test/java/com/alibaba/demo/ttl/ag - 修饰实现代码在[`JdkExecutorTtlTransformlet.java`](ttl-agent/src/main/java/com/alibaba/ttl3/agent/transformlet/internal/JdkExecutorTtlTransformlet.java)。 1. `java.util.concurrent.ForkJoinTask`(对应的执行器组件是`java.util.concurrent.ForkJoinPool`) - 修饰实现代码在[`ForkJoinTtlTransformlet.java`](ttl-agent/src/main/java/com/alibaba/ttl3/agent/transformlet/internal/ForkJoinTtlTransformlet.java)。从版本 **_`2.5.1`_** 开始支持。 - - **_注意_**:`Java 8`引入的[**_`CompletableFuture`_**](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/CompletableFuture.html)与(并行执行的)[**_`Stream`_**](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/package-summary.html)底层是通过`ForkJoinPool`来执行,所以支持`ForkJoinPool`后,`TTL`也就透明支持了`CompletableFuture`与`Stream`。🎉 + - **_注意_**:`Java 8`引入的[**_`CompletableFuture`_**](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html)与(并行执行的)[**_`Stream`_**](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/stream/package-summary.html)底层是通过`ForkJoinPool`来执行,所以支持`ForkJoinPool`后,`TTL`也就透明支持了`CompletableFuture`与`Stream`。🎉 1. `java.util.TimerTask`的子类(对应的执行器组件是`java.util.Timer`) - 修饰实现代码在[`TimerTaskTtlTransformlet.java`](ttl-agent/src/main/java/com/alibaba/ttl3/agent/transformlet/internal/TimerTaskTtlTransformlet.java)。从版本 **_`2.7.0`_** 开始支持。 - **_注意_**:从`2.11.2`版本开始缺省开启`TimerTask`的修饰(因为保证正确性是第一位,而不是最佳实践『不推荐使用`TimerTask`』:);`2.11.1`版本及其之前的版本没有缺省开启`TimerTask`的修饰。 @@ -304,7 +304,7 @@ Demo参见[`AgentDemo.kt`](ttl2-compatible/src/test/java/com/alibaba/demo/ttl/ag

TimerJDK 1.3的老类,不推荐使用Timer类。 -

推荐用ScheduledExecutorService
+

推荐用ScheduledExecutorService
ScheduledThreadPoolExecutor实现更强壮,并且功能更丰富。 如支持配置线程池的大小(Timer只有一个线程);TimerRunnable中抛出异常会中止定时执行。更多说明参见 10. Mandatory Run multiple TimeTask by using ScheduledExecutorService rather than Timer because Timer will kill all running threads in case of failing to catch exceptions. - Alibaba Java Coding Guidelines

@@ -365,8 +365,8 @@ These paths are searched by the bootstrap class loader after the platform specif

更多详见

@@ -495,8 +495,8 @@ JDK Bug: ## JDK Core Classes -- [WeakHashMap](https://docs.oracle.com/javase/10/docs/api/java/util/WeakHashMap.html) -- [InheritableThreadLocal](https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html) +- [WeakHashMap](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/WeakHashMap.html) +- [InheritableThreadLocal](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/InheritableThreadLocal.html) # 💗 Who Used diff --git a/docs/developer-guide-en.md b/docs/developer-guide-en.md index 568b72b6a..ef5aa5415 100644 --- a/docs/developer-guide-en.md +++ b/docs/developer-guide-en.md @@ -63,12 +63,12 @@ try { ## `JDK` core classes -- [WeakHashMap](https://docs.oracle.com/javase/10/docs/api/java/util/WeakHashMap.html) -- [InheritableThreadLocal](https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html) +- [WeakHashMap](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/WeakHashMap.html) +- [InheritableThreadLocal](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/InheritableThreadLocal.html) ## `Java` Agent -- [Java Agent Specification](https://docs.oracle.com/javase/10/docs/api/java/lang/instrument/package-summary.html) +- [Java Agent Specification](https://docs.oracle.com/en/java/javase/21/docs/api/java.instrument/java/lang/instrument/package-summary.html) ## `Javassist` diff --git a/docs/developer-guide.md b/docs/developer-guide.md index 31046e147..42d8c2da9 100644 --- a/docs/developer-guide.md +++ b/docs/developer-guide.md @@ -198,14 +198,14 @@ mvn install ## `JDK` core classes -- [WeakHashMap](https://docs.oracle.com/javase/10/docs/api/java/util/WeakHashMap.html) -- [InheritableThreadLocal](https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html) +- [WeakHashMap](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/WeakHashMap.html) +- [InheritableThreadLocal](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/InheritableThreadLocal.html) ## `Java Agent` - 官方文档 - - [`Java Agent`规范 - `JavaDoc`](https://docs.oracle.com/javase/10/docs/api/java/lang/instrument/package-summary.html#package.description) - - [JAR File Specification - JAR Manifest](https://docs.oracle.com/javase/10/docs/specs/jar/jar.html#jar-manifest) + - [`Java Agent`规范 - `JavaDoc`](https://docs.oracle.com/en/java/javase/21/docs/api/java.instrument/java/lang/instrument/package-summary.html#package.description) + - [JAR File Specification - JAR Manifest](https://docs.oracle.com/en/java/javase/21/docs/specs/jar/jar.html#jar-manifest) - [Working with Manifest Files - The Java™ Tutorials](https://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html) - [Java SE 6 新特性: Instrumentation 新功能](https://www.ibm.com/developerworks/cn/java/j-lo-jse61/) - [Creation, dynamic loading and instrumentation with javaagents](https://dhruba.name/2010/02/07/creation-dynamic-loading-and-instrumentation-with-javaagents/) diff --git a/docs/performance-test.md b/docs/performance-test.md index ee4a06d56..feb48e317 100644 --- a/docs/performance-test.md +++ b/docs/performance-test.md @@ -17,7 +17,7 @@ ## 👻 内存泄漏 -对比测试[`TransmittableThreadLocal`](../ttl-core/src/main/java/com/alibaba/ttl3/TransmittableThreadLocal.java)和[`ThreadLocal`](https://docs.oracle.com/javase/10/docs/api/java/lang/ThreadLocal.html),测试Case是: +对比测试[`TransmittableThreadLocal`](../ttl-core/src/main/java/com/alibaba/ttl3/TransmittableThreadLocal.java)和[`ThreadLocal`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ThreadLocal.html),测试Case是: 简单一个线程一直循环`new` `TransmittableThreadLocal`、`ThreadLocal`实例,不主动做任何清理操作,即不调用`ThreadLocal`的`remove`方法主动清空。 @@ -36,7 +36,7 @@ ## 🐎 TPS & 压力测试 -对比测试[`TransmittableThreadLocal`](../ttl-core/src/main/java/com/alibaba/ttl3/TransmittableThreadLocal.java)和[`ThreadLocal`](https://docs.oracle.com/javase/10/docs/api/java/lang/ThreadLocal.html),测试Case是: +对比测试[`TransmittableThreadLocal`](../ttl-core/src/main/java/com/alibaba/ttl3/TransmittableThreadLocal.java)和[`ThreadLocal`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ThreadLocal.html),测试Case是: 2个线程并发一直循环`new` `TransmittableThreadLocal`、`ThreadLocal`实例,不主动做任何清理操作,即不调用`ThreadLocal`的`remove`方法主动清空。 diff --git a/docs/requirement-scenario.md b/docs/requirement-scenario.md index 882d33d1f..700c81a05 100644 --- a/docs/requirement-scenario.md +++ b/docs/requirement-scenario.md @@ -40,11 +40,11 @@ PS: 多谢 [@wyzssw](https://github.com/https://github.com/wyzssw) 对分布 ### `Log4j2 MDC`的`TTL`集成 -`Log4j2`通过[`Thread Context`](https://logging.apache.org/log4j/2.x/manual/thread-context.html)提供了`Mapped Diagnostic Context`(`MDC`,诊断上下文)的功能,通过[`ThreadLocal`](https://docs.oracle.com/javase/10/docs/api/java/lang/ThreadLocal.html)/[`InheritableThreadLocal`](https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html)实现上下文传递。 +`Log4j2`通过[`Thread Context`](https://logging.apache.org/log4j/2.x/manual/thread-context.html)提供了`Mapped Diagnostic Context`(`MDC`,诊断上下文)的功能,通过[`ThreadLocal`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ThreadLocal.html)/[`InheritableThreadLocal`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/InheritableThreadLocal.html)实现上下文传递。 在[`Thread Context文档`](https://logging.apache.org/log4j/2.x/manual/thread-context.html)中提到了在使用线程池等会池化复用线程的组件(如`Executors`)时有问题,需要提供一个机制方案: -> The Stack and the Map are managed per thread and are based on ThreadLocal by default. The Map can be configured to use an InheritableThreadLocal by setting system property isThreadContextMapInheritable to "true". When configured this way, the contents of the Map will be passed to child threads. However, as discussed in the [Executors](https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/Executors.html#privilegedThreadFactory%28%29) class and in other cases where thread pooling is utilized, the ThreadContext may not always be automatically passed to worker threads. In those cases the pooling mechanism should provide a means for doing so. The getContext() and cloneStack() methods can be used to obtain copies of the Map and Stack respectively. +> The Stack and the Map are managed per thread and are based on ThreadLocal by default. The Map can be configured to use an InheritableThreadLocal by setting system property isThreadContextMapInheritable to "true". When configured this way, the contents of the Map will be passed to child threads. However, as discussed in the [Executors](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/Executors.html#privilegedThreadFactory%28%29) class and in other cases where thread pooling is utilized, the ThreadContext may not always be automatically passed to worker threads. In those cases the pooling mechanism should provide a means for doing so. The getContext() and cloneStack() methods can be used to obtain copies of the Map and Stack respectively. 即是`TTL`要解决的问题,提供`Log4j2 MDC`的`TTL`集成,详见工程[`log4j2-ttl-thread-context-map`](https://github.com/oldratlee/log4j2-ttl-thread-context-map)。对应依赖: diff --git a/pom.xml b/pom.xml index 6e17bfd00..75d5f7594 100644 --- a/pom.xml +++ b/pom.xml @@ -617,11 +617,9 @@ Using the linkoffline Option - https://docs.oracle.com/en/java/javase/11/javadoc/javadoc-command.html#GUID-51213F2C-6E01-4A03-A82A-17428A258A0F + https://docs.oracle.com/en/java/javase/21/javadoc/javadoc-command.html#GUID-51213F2C-6E01-4A03-A82A-17428A258A0F --> - - ${maven.multiModuleProjectDirectory}/src/package-list - + ${maven.multiModuleProjectDirectory}/src/package-list -quiet @@ -631,7 +629,7 @@ maven-javadoc-plugin @@ -646,42 +644,37 @@ https://stackoverflow.com/questions/39616344 --> all,-missing + ${project.basedir}/src/main/javadoc/overview.html ${javadoc.default.exclude.packages} false - - - https://docs.oracle.com/javase/10/docs/api/ - ${javadoc.package.list.dir}/java/ - - - - https://www.javadoc.io/doc/com.github.spotbugs/spotbugs-annotations/${spotbugs.annotations.version}/ - - ${javadoc.package.list.dir}/spotbugs-annotations/ - - - - https://www.javadoc.io/doc/com.google.code.findbugs/jsr305/${jsr305.version}/ - - ${javadoc.package.list.dir}/jsr305/ - - - - https://www.javadoc.io/doc/org.jetbrains/annotations/${jetbrains.annotations.version}/ - - ${javadoc.package.list.dir}/jetbrains-annotations/ - - - --no-module-directories -html5 + -linkoffline + + https://www.javadoc.io/doc/com.github.spotbugs/spotbugs-annotations/${spotbugs.annotations.version}/ + + ${javadoc.package.list.dir}/spotbugs-annotations/ + -linkoffline + + https://www.javadoc.io/doc/org.jetbrains/annotations/${jetbrains.annotations.version}/ + + ${javadoc.package.list.dir}/jetbrains-annotations/ + -linkoffline + + https://www.javadoc.io/doc/com.google.code.findbugs/jsr305/${jsr305.version}/ + + ${javadoc.package.list.dir}/jsr305/ + -linkoffline + https://docs.oracle.com/en/java/javase/21/docs/api/java.base/ + ${javadoc.package.list.dir}/java/ + ${javadoc.extra.offlineLinks} @@ -864,7 +857,7 @@ - 11 + 17 diff --git a/scripts/integration-test.sh b/scripts/integration-test.sh index 9ddca153f..22a560531 100755 --- a/scripts/integration-test.sh +++ b/scripts/integration-test.sh @@ -13,12 +13,12 @@ source "$BASH_BUDDY_ROOT/lib/maven_utils.sh" # ci build logic ################################################################################ -readonly default_build_jdk_version=11 +readonly default_build_jdk_version=17 # shellcheck disable=SC2034 readonly JDK_VERSIONS=( 8 + 11 "$default_build_jdk_version" - 17 21 ) diff --git a/ttl-agent/pom.xml b/ttl-agent/pom.xml index b0373cfa9..1c0ed5f95 100644 --- a/ttl-agent/pom.xml +++ b/ttl-agent/pom.xml @@ -89,9 +89,9 @@ com.alibaba.ttl3.agent.TtlAgent ${project.build.finalName}.jar diff --git a/ttl-agent/src/main/java/com/alibaba/ttl3/agent/TtlAgent.java b/ttl-agent/src/main/java/com/alibaba/ttl3/agent/TtlAgent.java index d38e67164..1c1fc1d6c 100644 --- a/ttl-agent/src/main/java/com/alibaba/ttl3/agent/TtlAgent.java +++ b/ttl-agent/src/main/java/com/alibaba/ttl3/agent/TtlAgent.java @@ -138,12 +138,12 @@ *
*

* More info about {@code Boot-Class-Path} see - * The mechanism for instrumentation. + * The mechanism for instrumentation. * * @author Jerry Lee (oldratlee at gmail dot com) * @see Instrumentation - * @see The mechanism for instrumentation - * @see JAR File Specification - JAR Manifest + * @see The mechanism for instrumentation + * @see JAR File Specification - JAR Manifest * @see Working with Manifest Files - The Java™ Tutorials * @see com.alibaba.ttl3.TransmittableThreadLocal * @see java.util.concurrent.ThreadPoolExecutor diff --git a/ttl-agent/src/main/java/com/alibaba/ttl3/agent/TtlTransformer.java b/ttl-agent/src/main/java/com/alibaba/ttl3/agent/TtlTransformer.java index c72238828..b2e03f423 100644 --- a/ttl-agent/src/main/java/com/alibaba/ttl3/agent/TtlTransformer.java +++ b/ttl-agent/src/main/java/com/alibaba/ttl3/agent/TtlTransformer.java @@ -19,7 +19,7 @@ * * @author Jerry Lee (oldratlee at gmail dot com) * @see ClassFileTransformer - * @see The mechanism for instrumentation + * @see The mechanism for instrumentation */ public class TtlTransformer implements ClassFileTransformer { private static final Logger logger = Logger.getLogger(TtlTransformer.class); diff --git a/ttl-agent/src/main/java/com/alibaba/ttl3/agent/package-info.java b/ttl-agent/src/main/java/com/alibaba/ttl3/agent/package-info.java index a6d3933d5..1f57d2a9b 100644 --- a/ttl-agent/src/main/java/com/alibaba/ttl3/agent/package-info.java +++ b/ttl-agent/src/main/java/com/alibaba/ttl3/agent/package-info.java @@ -3,6 +3,6 @@ * * @author Jerry Lee (oldratlee at gmail dot com) * @see com.alibaba.ttl3.agent.TtlAgent - * @see The mechanism for instrumentation + * @see The mechanism for instrumentation */ package com.alibaba.ttl3.agent; diff --git a/ttl-integrations/sample-ttl-agent-extension-transformlet/README.md b/ttl-integrations/sample-ttl-agent-extension-transformlet/README.md index d9c278c69..80d350f11 100644 --- a/ttl-integrations/sample-ttl-agent-extension-transformlet/README.md +++ b/ttl-integrations/sample-ttl-agent-extension-transformlet/README.md @@ -11,7 +11,7 @@ 在这个示例工程是`com.alibaba.ttl.agent.extension_transformlet.sample.transformlet.SampleExtensionTransformlet`。 - `TTL Agent`会扫描`Class Path`上的`META-INF/ttl.agent.transformlets`文件,自动发现并启用这些扩展`Transformlet`。 即只要将扩展`Transformlet`的依赖`Jar`引入到应用中就会自动生效。 - - 这个扫描并自动加载生效与`JDK`的[`ServiceLoader`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ServiceLoader.html)一样,只是使用不同的扩展配置文件。 + - 这个扫描并自动加载生效与`JDK`的[`ServiceLoader`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/ServiceLoader.html)一样,只是使用不同的扩展配置文件。 ## 扩展`Transformlet`实现的注意点 diff --git a/ttl2-compatible/pom.xml b/ttl2-compatible/pom.xml index 2caaab682..459226db6 100644 --- a/ttl2-compatible/pom.xml +++ b/ttl2-compatible/pom.xml @@ -136,9 +136,9 @@ com.alibaba.ttl.threadpool.agent.TtlAgent ${project.build.finalName}.jar diff --git a/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/TtlAgent.java b/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/TtlAgent.java index 0dfd8a3c5..213e62db9 100644 --- a/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/TtlAgent.java +++ b/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/TtlAgent.java @@ -137,12 +137,12 @@ * *

* More info about {@code Boot-Class-Path} see - * The mechanism for instrumentation. + * The mechanism for instrumentation. * * @author Jerry Lee (oldratlee at gmail dot com) * @see Instrumentation - * @see The mechanism for instrumentation - * @see JAR File Specification - JAR Manifest + * @see The mechanism for instrumentation + * @see JAR File Specification - JAR Manifest * @see Working with Manifest Files - The Java™ Tutorials * @see com.alibaba.ttl.TransmittableThreadLocal * @see java.util.concurrent.ThreadPoolExecutor diff --git a/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/TtlTransformer.java b/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/TtlTransformer.java index dfb0fa18e..5664de247 100644 --- a/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/TtlTransformer.java +++ b/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/TtlTransformer.java @@ -19,7 +19,7 @@ * * @author Jerry Lee (oldratlee at gmail dot com) * @see ClassFileTransformer - * @see The mechanism for instrumentation + * @see The mechanism for instrumentation * @since 0.9.0 */ public class TtlTransformer implements ClassFileTransformer { diff --git a/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/package-info.java b/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/package-info.java index 96195710a..6e80e22d8 100644 --- a/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/package-info.java +++ b/ttl2-compatible/src/main/java/com/alibaba/ttl/threadpool/agent/package-info.java @@ -3,6 +3,6 @@ * * @author Jerry Lee (oldratlee at gmail dot com) * @see com.alibaba.ttl.threadpool.agent.TtlAgent - * @see The mechanism for instrumentation + * @see The mechanism for instrumentation */ package com.alibaba.ttl.threadpool.agent;