From 0dc7ada0462a8f8aa94e39c5fa7f8e1b78e83c91 Mon Sep 17 00:00:00 2001 From: Elijah Date: Wed, 16 Sep 2020 13:37:29 +0800 Subject: [PATCH] =?UTF-8?q?DEC-14578=20feat:=20=E5=8E=BB=E6=8E=89=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E7=9A=84jetbrain.NotNull=E4=BE=9D=E8=B5=96,=20?= =?UTF-8?q?=E6=8B=86=E5=88=86Utils=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base-third-project/base-third-step8/pom.xml | 4 +- fine-transmittable-thread-local/pom.xml | 5 -- .../alibaba/ttl/TransmittableThreadLocal.java | 44 ++++++++--------- .../com/fr/third/alibaba/ttl/TtlCallable.java | 44 ++++++++--------- .../com/fr/third/alibaba/ttl/TtlEnhanced.java | 4 +- .../com/fr/third/alibaba/ttl/TtlRunnable.java | 44 ++++++++--------- .../fr/third/alibaba/ttl/TtlTimerTask.java | 30 ++++++------ .../com/fr/third/alibaba/ttl/TtlUnwrap.java | 8 +-- .../com/fr/third/alibaba/ttl/TtlWrappers.java | 44 ++++++++--------- .../third/alibaba/ttl/spi/TtlAttachments.java | 5 +- .../ttl/spi/TtlAttachmentsDelegate.java | 5 +- .../fr/third/alibaba/ttl/spi/TtlWrapper.java | 3 +- ...nheritableForkJoinWorkerThreadFactory.java | 3 +- ...bleForkJoinWorkerThreadFactoryWrapper.java | 4 +- .../DisableInheritableThreadFactory.java | 3 +- ...isableInheritableThreadFactoryWrapper.java | 7 ++- .../threadpool/ExecutorServiceTtlWrapper.java | 35 +++++++------ .../ttl/threadpool/ExecutorTtlWrapper.java | 7 ++- .../ScheduledExecutorServiceTtlWrapper.java | 21 ++++---- .../alibaba/ttl/threadpool/TtlExecutors.java | 31 ++++++------ .../ttl/threadpool/TtlForkJoinPoolHelper.java | 13 +++-- .../alibaba/ttl/threadpool/TtlUtils.java | 39 +++++++++++++++ .../ttl/threadpool/agent/TtlAgent.java | 20 +++----- .../ttl/threadpool/agent/TtlTransformer.java | 10 ++-- .../internal/transformlet/ClassInfo.java | 27 +++++++--- .../transformlet/JavassistTransformlet.java | 3 +- .../impl/TtlExecutorTransformlet.java | 28 +++++------ .../impl/TtlForkJoinTransformlet.java | 20 ++++---- .../impl/TtlTimerTaskTransformlet.java | 15 +++--- .../internal/transformlet/impl/Utils.java | 49 +++---------------- .../ttl/threadpool/agent/package-info.java | 2 + 31 files changed, 276 insertions(+), 301 deletions(-) create mode 100644 fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlUtils.java diff --git a/base-third-project/base-third-step8/pom.xml b/base-third-project/base-third-step8/pom.xml index f863d94ce..af1c0c7cc 100644 --- a/base-third-project/base-third-step8/pom.xml +++ b/base-third-project/base-third-step8/pom.xml @@ -7,14 +7,16 @@ com.fr.third base-third - ${revision} + 10.0-FEATURE-SNAPSHOT step8 ${revision} + pom ../../fine-ehcache + ../../fine-transmittable-thread-local diff --git a/fine-transmittable-thread-local/pom.xml b/fine-transmittable-thread-local/pom.xml index 4d324253f..b8226410a 100644 --- a/fine-transmittable-thread-local/pom.xml +++ b/fine-transmittable-thread-local/pom.xml @@ -30,11 +30,6 @@ ${revision} - - com.fr.third - fine-jetbrains - ${revision} - diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TransmittableThreadLocal.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TransmittableThreadLocal.java index f4d423503..5ce678ed0 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TransmittableThreadLocal.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TransmittableThreadLocal.java @@ -3,8 +3,6 @@ package com.fr.third.alibaba.ttl; import com.fr.third.alibaba.ttl.threadpool.TtlExecutors; import com.fr.third.alibaba.ttl.threadpool.TtlForkJoinPoolHelper; import com.fr.third.alibaba.ttl.threadpool.agent.TtlAgent; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Iterator; @@ -244,7 +242,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple /** * Debug only method! */ - static void dump(@Nullable String title) { + static void dump( String title) { if (title != null && title.length() > 0) { System.out.printf("Start TransmittableThreadLocal[%s] Dump...%n", title); } else { @@ -370,7 +368,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @return the captured {@link TransmittableThreadLocal} values * @since 2.3.0 */ - @NotNull + public static Object capture() { return new Snapshot(captureTtlValues(), captureThreadLocalValues()); } @@ -403,14 +401,14 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @see #capture() * @since 2.3.0 */ - @NotNull - public static Object replay(@NotNull Object captured) { + + public static Object replay(Object captured) { final Snapshot capturedSnapshot = (Snapshot) captured; return new Snapshot(replayTtlValues(capturedSnapshot.ttl2Value), replayThreadLocalValues(capturedSnapshot.threadLocal2Value)); } - @NotNull - private static HashMap, Object> replayTtlValues(@NotNull HashMap, Object> captured) { + + private static HashMap, Object> replayTtlValues(HashMap, Object> captured) { HashMap, Object> backup = new HashMap, Object>(); for (final Iterator> iterator = holder.get().keySet().iterator(); iterator.hasNext(); ) { @@ -436,7 +434,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple return backup; } - private static HashMap, Object> replayThreadLocalValues(@NotNull HashMap, Object> captured) { + private static HashMap, Object> replayThreadLocalValues(HashMap, Object> captured) { final HashMap, Object> backup = new HashMap, Object>(); for (Map.Entry, Object> entry : captured.entrySet()) { @@ -458,7 +456,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @return the backup {@link TransmittableThreadLocal} values before clear * @since 2.9.0 */ - @NotNull + public static Object clear() { final HashMap, Object> ttl2Value = new HashMap, Object>(); @@ -480,13 +478,13 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @see #clear() * @since 2.3.0 */ - public static void restore(@NotNull Object backup) { + public static void restore(Object backup) { final Snapshot backupSnapshot = (Snapshot) backup; restoreTtlValues(backupSnapshot.ttl2Value); restoreThreadLocalValues(backupSnapshot.threadLocal2Value); } - private static void restoreTtlValues(@NotNull HashMap, Object> backup) { + private static void restoreTtlValues(HashMap, Object> backup) { // call afterExecute callback doExecuteCallback(false); @@ -505,14 +503,14 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple setTtlValuesTo(backup); } - private static void setTtlValuesTo(@NotNull HashMap, Object> ttlValues) { + private static void setTtlValuesTo(HashMap, Object> ttlValues) { for (Map.Entry, Object> entry : ttlValues.entrySet()) { TransmittableThreadLocal threadLocal = entry.getKey(); threadLocal.set(entry.getValue()); } } - private static void restoreThreadLocalValues(@NotNull HashMap, Object> backup) { + private static void restoreThreadLocalValues(HashMap, Object> backup) { for (Map.Entry, Object> entry : backup.entrySet()) { final ThreadLocal threadLocal = entry.getKey(); threadLocal.set(entry.getValue()); @@ -541,7 +539,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @see #restore(Object) * @since 2.3.1 */ - public static R runSupplierWithCaptured(@NotNull Object captured, @NotNull Supplier bizLogic) { + public static R runSupplierWithCaptured(Object captured, Supplier bizLogic) { Object backup = replay(captured); try { return bizLogic.get(); @@ -560,7 +558,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @see #restore(Object) * @since 2.9.0 */ - public static R runSupplierWithClear(@NotNull Supplier bizLogic) { + public static R runSupplierWithClear(Supplier bizLogic) { Object backup = clear(); try { return bizLogic.get(); @@ -582,7 +580,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @see #restore(Object) * @since 2.3.1 */ - public static R runCallableWithCaptured(@NotNull Object captured, @NotNull Callable bizLogic) throws Exception { + public static R runCallableWithCaptured(Object captured, Callable bizLogic) throws Exception { Object backup = replay(captured); try { return bizLogic.call(); @@ -602,7 +600,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @see #restore(Object) * @since 2.9.0 */ - public static R runCallableWithClear(@NotNull Callable bizLogic) throws Exception { + public static R runCallableWithClear(Callable bizLogic) throws Exception { Object backup = clear(); try { return bizLogic.call(); @@ -629,7 +627,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @see #registerThreadLocal(ThreadLocal, TtlCopier, boolean) * @since 2.11.0 */ - public static boolean registerThreadLocal(@NotNull ThreadLocal threadLocal, @NotNull TtlCopier copier) { + public static boolean registerThreadLocal(ThreadLocal threadLocal, TtlCopier copier) { return registerThreadLocal(threadLocal, copier, false); } @@ -652,7 +650,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @since 2.11.0 */ @SuppressWarnings("unchecked") - public static boolean registerThreadLocalWithShadowCopier(@NotNull ThreadLocal threadLocal) { + public static boolean registerThreadLocalWithShadowCopier(ThreadLocal threadLocal) { return registerThreadLocal(threadLocal, (TtlCopier) shadowCopier, false); } @@ -673,7 +671,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @since 2.11.0 */ @SuppressWarnings("unchecked") - public static boolean registerThreadLocal(@NotNull ThreadLocal threadLocal, @NotNull TtlCopier copier, boolean force) { + public static boolean registerThreadLocal(ThreadLocal threadLocal, TtlCopier copier, boolean force) { if (threadLocal instanceof TransmittableThreadLocal) { logger.warning("register a TransmittableThreadLocal instance, this is unnecessary!"); return true; @@ -710,7 +708,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @since 2.11.0 */ @SuppressWarnings("unchecked") - public static boolean registerThreadLocalWithShadowCopier(@NotNull ThreadLocal threadLocal, boolean force) { + public static boolean registerThreadLocalWithShadowCopier(ThreadLocal threadLocal, boolean force) { return registerThreadLocal(threadLocal, (TtlCopier) shadowCopier, force); } @@ -724,7 +722,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal imple * @see #registerThreadLocalWithShadowCopier(ThreadLocal) * @since 2.11.0 */ - public static boolean unregisterThreadLocal(@NotNull ThreadLocal threadLocal) { + public static boolean unregisterThreadLocal(ThreadLocal threadLocal) { if (threadLocal instanceof TransmittableThreadLocal) { logger.warning("unregister a TransmittableThreadLocal instance, this is unnecessary!"); return true; diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlCallable.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlCallable.java index c4c937216..cb2c4b12d 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlCallable.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlCallable.java @@ -5,8 +5,6 @@ import com.fr.third.alibaba.ttl.spi.TtlAttachmentsDelegate; import com.fr.third.alibaba.ttl.spi.TtlEnhanced; import com.fr.third.alibaba.ttl.spi.TtlWrapper; import com.fr.third.alibaba.ttl.threadpool.TtlExecutors; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; @@ -42,7 +40,7 @@ public final class TtlCallable implements Callable, TtlWrapper private final Callable callable; private final boolean releaseTtlValueReferenceAfterCall; - private TtlCallable(@NotNull Callable callable, boolean releaseTtlValueReferenceAfterCall) { + private TtlCallable(Callable callable, boolean releaseTtlValueReferenceAfterCall) { this.capturedRef = new AtomicReference(capture()); this.callable = callable; this.releaseTtlValueReferenceAfterCall = releaseTtlValueReferenceAfterCall; @@ -69,7 +67,7 @@ public final class TtlCallable implements Callable, TtlWrapper /** * return the original/underneath {@link Callable}. */ - @NotNull + public Callable getCallable() { return unwrap(); } @@ -80,7 +78,7 @@ public final class TtlCallable implements Callable, TtlWrapper * @see TtlUnwrap#unwrap(Object) * @since 2.11.4 */ - @NotNull + @Override public Callable unwrap() { return callable; @@ -114,8 +112,8 @@ public final class TtlCallable implements Callable, TtlWrapper * @param callable input {@link Callable} * @return Wrapped {@link Callable} */ - @Nullable - public static TtlCallable get(@Nullable Callable callable) { + + public static TtlCallable get( Callable callable) { return get(callable, false); } @@ -129,8 +127,8 @@ public final class TtlCallable implements Callable, TtlWrapper * @param releaseTtlValueReferenceAfterCall release TTL value reference after run, avoid memory leak even if {@link TtlRunnable} is referred. * @return Wrapped {@link Callable} */ - @Nullable - public static TtlCallable get(@Nullable Callable callable, boolean releaseTtlValueReferenceAfterCall) { + + public static TtlCallable get( Callable callable, boolean releaseTtlValueReferenceAfterCall) { return get(callable, releaseTtlValueReferenceAfterCall, false); } @@ -144,8 +142,8 @@ public final class TtlCallable implements Callable, TtlWrapper * @param idempotent is idempotent or not. {@code true} will cover up bugs! DO NOT set, only when you know why. * @return Wrapped {@link Callable} */ - @Nullable - public static TtlCallable get(@Nullable Callable callable, boolean releaseTtlValueReferenceAfterCall, boolean idempotent) { + + public static TtlCallable get( Callable callable, boolean releaseTtlValueReferenceAfterCall, boolean idempotent) { if (null == callable) return null; if (callable instanceof TtlEnhanced) { @@ -162,8 +160,8 @@ public final class TtlCallable implements Callable, TtlWrapper * @param tasks task to be wrapped * @return Wrapped {@link Callable} */ - @NotNull - public static List> gets(@Nullable Collection> tasks) { + + public static List> gets( Collection> tasks) { return gets(tasks, false, false); } @@ -174,8 +172,8 @@ public final class TtlCallable implements Callable, TtlWrapper * @param releaseTtlValueReferenceAfterCall release TTL value reference after run, avoid memory leak even if {@link TtlRunnable} is referred. * @return Wrapped {@link Callable} */ - @NotNull - public static List> gets(@Nullable Collection> tasks, boolean releaseTtlValueReferenceAfterCall) { + + public static List> gets( Collection> tasks, boolean releaseTtlValueReferenceAfterCall) { return gets(tasks, releaseTtlValueReferenceAfterCall, false); } @@ -187,8 +185,8 @@ public final class TtlCallable implements Callable, TtlWrapper * @param idempotent is idempotent or not. {@code true} will cover up bugs! DO NOT set, only when you know why. * @return Wrapped {@link Callable} */ - @NotNull - public static List> gets(@Nullable Collection> tasks, boolean releaseTtlValueReferenceAfterCall, boolean idempotent) { + + public static List> gets( Collection> tasks, boolean releaseTtlValueReferenceAfterCall, boolean idempotent) { if (null == tasks) return Collections.emptyList(); List> copy = new ArrayList>(); @@ -209,8 +207,8 @@ public final class TtlCallable implements Callable, TtlWrapper * @see #get(Callable) * @since 2.10.2 */ - @Nullable - public static Callable unwrap(@Nullable Callable callable) { + + public static Callable unwrap( Callable callable) { if (!(callable instanceof TtlCallable)) return callable; else return ((TtlCallable) callable).getCallable(); } @@ -226,8 +224,8 @@ public final class TtlCallable implements Callable, TtlWrapper * @see #unwrap(Callable) * @since 2.10.2 */ - @NotNull - public static List> unwraps(@Nullable Collection> tasks) { + + public static List> unwraps( Collection> tasks) { if (null == tasks) return Collections.emptyList(); List> copy = new ArrayList>(); @@ -246,7 +244,7 @@ public final class TtlCallable implements Callable, TtlWrapper * @since 2.11.0 */ @Override - public void setTtlAttachment(@NotNull String key, Object value) { + public void setTtlAttachment(String key, Object value) { ttlAttachment.setTtlAttachment(key, value); } @@ -256,7 +254,7 @@ public final class TtlCallable implements Callable, TtlWrapper * @since 2.11.0 */ @Override - public T getTtlAttachment(@NotNull String key) { + public T getTtlAttachment(String key) { return ttlAttachment.getTtlAttachment(key); } } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlEnhanced.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlEnhanced.java index 9849dadcf..b4fca536d 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlEnhanced.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlEnhanced.java @@ -9,7 +9,7 @@ import com.fr.third.alibaba.ttl.spi.TtlAttachments; */ @Deprecated -// [ERROR] The class name com.alibaba.ttl.TtlEnhanced shadows -// the simple name of implemented interface com.alibaba.ttl.spi.TtlEnhanced [com.alibaba.ttl.TtlEnhanced] +// [ERROR] The class name com.fr.third.alibaba.ttl.TtlEnhanced shadows +// the simple name of implemented interface com.fr.third.alibaba.ttl.spi.TtlEnhanced [com.fr.third.alibaba.ttl.TtlEnhanced] public interface TtlEnhanced extends com.fr.third.alibaba.ttl.spi.TtlEnhanced { } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlRunnable.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlRunnable.java index e859150dd..cc581bfd1 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlRunnable.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlRunnable.java @@ -5,8 +5,6 @@ import com.fr.third.alibaba.ttl.spi.TtlAttachmentsDelegate; import com.fr.third.alibaba.ttl.spi.TtlEnhanced; import com.fr.third.alibaba.ttl.spi.TtlWrapper; import com.fr.third.alibaba.ttl.threadpool.TtlExecutors; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; @@ -39,7 +37,7 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh private final Runnable runnable; private final boolean releaseTtlValueReferenceAfterRun; - private TtlRunnable(@NotNull Runnable runnable, boolean releaseTtlValueReferenceAfterRun) { + private TtlRunnable(Runnable runnable, boolean releaseTtlValueReferenceAfterRun) { this.capturedRef = new AtomicReference(capture()); this.runnable = runnable; this.releaseTtlValueReferenceAfterRun = releaseTtlValueReferenceAfterRun; @@ -66,7 +64,7 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh /** * return original/unwrapped {@link Runnable}. */ - @NotNull + public Runnable getRunnable() { return unwrap(); } @@ -77,7 +75,7 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @see TtlUnwrap#unwrap(Object) * @since 2.11.4 */ - @NotNull + @Override public Runnable unwrap() { return runnable; @@ -110,8 +108,8 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @return Wrapped {@link Runnable} * @throws IllegalStateException when input is {@link TtlRunnable} already. */ - @Nullable - public static TtlRunnable get(@Nullable Runnable runnable) { + + public static TtlRunnable get( Runnable runnable) { return get(runnable, false, false); } @@ -123,8 +121,8 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @return Wrapped {@link Runnable} * @throws IllegalStateException when input is {@link TtlRunnable} already. */ - @Nullable - public static TtlRunnable get(@Nullable Runnable runnable, boolean releaseTtlValueReferenceAfterRun) { + + public static TtlRunnable get( Runnable runnable, boolean releaseTtlValueReferenceAfterRun) { return get(runnable, releaseTtlValueReferenceAfterRun, false); } @@ -139,8 +137,8 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @return Wrapped {@link Runnable} * @throws IllegalStateException when input is {@link TtlRunnable} already and not idempotent. */ - @Nullable - public static TtlRunnable get(@Nullable Runnable runnable, boolean releaseTtlValueReferenceAfterRun, boolean idempotent) { + + public static TtlRunnable get( Runnable runnable, boolean releaseTtlValueReferenceAfterRun, boolean idempotent) { if (null == runnable) return null; if (runnable instanceof TtlEnhanced) { @@ -158,8 +156,8 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @return wrapped tasks * @throws IllegalStateException when input is {@link TtlRunnable} already. */ - @NotNull - public static List gets(@Nullable Collection tasks) { + + public static List gets( Collection tasks) { return gets(tasks, false, false); } @@ -171,8 +169,8 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @return wrapped tasks * @throws IllegalStateException when input is {@link TtlRunnable} already. */ - @NotNull - public static List gets(@Nullable Collection tasks, boolean releaseTtlValueReferenceAfterRun) { + + public static List gets( Collection tasks, boolean releaseTtlValueReferenceAfterRun) { return gets(tasks, releaseTtlValueReferenceAfterRun, false); } @@ -187,8 +185,8 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @return wrapped tasks * @throws IllegalStateException when input is {@link TtlRunnable} already and not idempotent. */ - @NotNull - public static List gets(@Nullable Collection tasks, boolean releaseTtlValueReferenceAfterRun, boolean idempotent) { + + public static List gets( Collection tasks, boolean releaseTtlValueReferenceAfterRun, boolean idempotent) { if (null == tasks) return Collections.emptyList(); List copy = new ArrayList(); @@ -209,8 +207,8 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @see #get(Runnable) * @since 2.10.2 */ - @Nullable - public static Runnable unwrap(@Nullable Runnable runnable) { + + public static Runnable unwrap( Runnable runnable) { if (!(runnable instanceof TtlRunnable)) return runnable; else return ((TtlRunnable) runnable).getRunnable(); } @@ -226,8 +224,8 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @see #unwrap(Runnable) * @since 2.10.2 */ - @NotNull - public static List unwraps(@Nullable Collection tasks) { + + public static List unwraps( Collection tasks) { if (null == tasks) return Collections.emptyList(); List copy = new ArrayList(); @@ -246,7 +244,7 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @since 2.11.0 */ @Override - public void setTtlAttachment(@NotNull String key, Object value) { + public void setTtlAttachment(String key, Object value) { ttlAttachment.setTtlAttachment(key, value); } @@ -256,7 +254,7 @@ public final class TtlRunnable implements Runnable, TtlWrapper, TtlEnh * @since 2.11.0 */ @Override - public T getTtlAttachment(@NotNull String key) { + public T getTtlAttachment(String key) { return ttlAttachment.getTtlAttachment(key); } } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlTimerTask.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlTimerTask.java index 448c8ff12..2e3699a0a 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlTimerTask.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlTimerTask.java @@ -3,8 +3,8 @@ package com.fr.third.alibaba.ttl; import com.fr.third.alibaba.ttl.spi.TtlEnhanced; import com.fr.third.alibaba.ttl.spi.TtlWrapper; import com.fr.third.alibaba.ttl.threadpool.agent.TtlAgent; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; + + import java.util.*; import java.util.concurrent.atomic.AtomicReference; @@ -35,7 +35,7 @@ public final class TtlTimerTask extends TimerTask implements TtlWrapper(capture()); this.timerTask = timerTask; this.releaseTtlValueReferenceAfterRun = releaseTtlValueReferenceAfterRun; @@ -68,7 +68,7 @@ public final class TtlTimerTask extends TimerTask implements TtlWrapperDO NOT set, only when you know why. * @return Wrapped {@link TimerTask} */ - @Nullable - public static TtlTimerTask get(@Nullable TimerTask timerTask, boolean releaseTtlValueReferenceAfterRun, boolean idempotent) { + + public static TtlTimerTask get( TimerTask timerTask, boolean releaseTtlValueReferenceAfterRun, boolean idempotent) { if (null == timerTask) return null; if (timerTask instanceof TtlEnhanced) { @@ -163,8 +163,8 @@ public final class TtlTimerTask extends TimerTask implements TtlWrapper unwraps(@Nullable Collection tasks) { + + public static List unwraps( Collection tasks) { if (null == tasks) return Collections.emptyList(); List copy = new ArrayList(); diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlUnwrap.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlUnwrap.java index 82a87b63c..db8866bdc 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlUnwrap.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlUnwrap.java @@ -3,7 +3,7 @@ package com.fr.third.alibaba.ttl; import com.fr.third.alibaba.ttl.spi.TtlWrapper; import com.fr.third.alibaba.ttl.threadpool.TtlExecutors; import com.fr.third.alibaba.ttl.threadpool.TtlForkJoinPoolHelper; -import org.jetbrains.annotations.Nullable; + import java.util.concurrent.Callable; @@ -48,9 +48,9 @@ public class TtlUnwrap { * @see TtlForkJoinPoolHelper#unwrap(java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory) * @since 2.11.4 */ - @Nullable + @SuppressWarnings("unchecked") - public static T unwrap(@Nullable T obj) { + public static T unwrap( T obj) { if (!isWrapper(obj)) return obj; else return ((TtlWrapper) obj).unwrap(); } @@ -60,7 +60,7 @@ public class TtlUnwrap { * * @since 2.11.4 */ - public static boolean isWrapper(@Nullable T obj) { + public static boolean isWrapper( T obj) { return obj instanceof TtlWrapper; } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlWrappers.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlWrappers.java index d932c3568..79ceddbc0 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlWrappers.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/TtlWrappers.java @@ -2,8 +2,8 @@ package com.fr.third.alibaba.ttl; import com.fr.third.alibaba.ttl.spi.TtlEnhanced; import com.fr.third.alibaba.ttl.spi.TtlWrapper; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; + + import java.util.function.*; @@ -34,8 +34,8 @@ public class TtlWrappers { * @see TtlUnwrap#unwrap(Object) * @since 2.11.4 */ - @Nullable - public static Supplier wrap(@Nullable Supplier supplier) { + + public static Supplier wrap( Supplier supplier) { if (supplier == null) return null; else if (supplier instanceof TtlEnhanced) return supplier; else return new TtlSupplier(supplier); @@ -45,7 +45,7 @@ public class TtlWrappers { final Supplier supplier; final Object captured; - TtlSupplier(@NotNull Supplier supplier) { + TtlSupplier(Supplier supplier) { this.supplier = supplier; this.captured = capture(); } @@ -60,7 +60,7 @@ public class TtlWrappers { } } - @NotNull + @Override public Supplier unwrap() { return supplier; @@ -96,8 +96,8 @@ public class TtlWrappers { * @see TtlUnwrap#unwrap(Object) * @since 2.11.4 */ - @Nullable - public static Consumer wrap(@Nullable Consumer consumer) { + + public static Consumer wrap( Consumer consumer) { if (consumer == null) return null; else if (consumer instanceof TtlEnhanced) return consumer; else return new TtlConsumer(consumer); @@ -107,7 +107,7 @@ public class TtlWrappers { final Consumer consumer; final Object captured; - TtlConsumer(@NotNull Consumer consumer) { + TtlConsumer(Consumer consumer) { this.consumer = consumer; this.captured = capture(); } @@ -122,7 +122,7 @@ public class TtlWrappers { } } - @NotNull + @Override public Consumer unwrap() { return consumer; @@ -158,8 +158,8 @@ public class TtlWrappers { * @see TtlUnwrap#unwrap(Object) * @since 2.11.4 */ - @Nullable - public static BiConsumer wrap(@Nullable BiConsumer consumer) { + + public static BiConsumer wrap( BiConsumer consumer) { if (consumer == null) return null; else if (consumer instanceof TtlEnhanced) return consumer; else return new TtlBiConsumer(consumer); @@ -169,7 +169,7 @@ public class TtlWrappers { final BiConsumer consumer; final Object captured; - TtlBiConsumer(@NotNull BiConsumer consumer) { + TtlBiConsumer(BiConsumer consumer) { this.consumer = consumer; this.captured = capture(); } @@ -184,7 +184,7 @@ public class TtlWrappers { } } - @NotNull + @Override public BiConsumer unwrap() { return consumer; @@ -220,8 +220,8 @@ public class TtlWrappers { * @see TtlUnwrap#unwrap(Object) * @since 2.11.4 */ - @Nullable - public static Function wrap(@Nullable Function fn) { + + public static Function wrap( Function fn) { if (fn == null) return null; else if (fn instanceof TtlEnhanced) return fn; else return new TtlFunction(fn); @@ -231,7 +231,7 @@ public class TtlWrappers { final Function fn; final Object captured; - TtlFunction(@NotNull Function fn) { + TtlFunction(Function fn) { this.fn = fn; this.captured = capture(); } @@ -246,7 +246,7 @@ public class TtlWrappers { } } - @NotNull + @Override public Function unwrap() { return fn; @@ -282,8 +282,8 @@ public class TtlWrappers { * @see TtlUnwrap#unwrap(Object) * @since 2.11.4 */ - @Nullable - public static BiFunction wrap(@Nullable BiFunction fn) { + + public static BiFunction wrap( BiFunction fn) { if (fn == null) return null; else if (fn instanceof TtlEnhanced) return fn; else return new TtlBiFunction(fn); @@ -293,7 +293,7 @@ public class TtlWrappers { final BiFunction fn; final Object captured; - TtlBiFunction(@NotNull BiFunction fn) { + TtlBiFunction(BiFunction fn) { this.fn = fn; this.captured = capture(); } @@ -308,7 +308,7 @@ public class TtlWrappers { } } - @NotNull + @Override public BiFunction unwrap() { return fn; diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlAttachments.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlAttachments.java index d3f83bff2..73f527710 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlAttachments.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlAttachments.java @@ -2,7 +2,6 @@ package com.fr.third.alibaba.ttl.spi; import com.fr.third.alibaba.ttl.TtlCallable; import com.fr.third.alibaba.ttl.TtlRunnable; -import org.jetbrains.annotations.NotNull; /** * The TTL attachments for TTL tasks, eg: {@link TtlRunnable}, {@link TtlCallable}. @@ -18,7 +17,7 @@ public interface TtlAttachments extends TtlEnhanced { * @param value attachment value * @since 2.11.0 */ - void setTtlAttachment(@NotNull String key, Object value); + void setTtlAttachment(String key, Object value); /** * get the TTL attachment for TTL tasks @@ -26,7 +25,7 @@ public interface TtlAttachments extends TtlEnhanced { * @param key attachment key * @since 2.11.0 */ - T getTtlAttachment(@NotNull String key); + T getTtlAttachment(String key); /** * The attachment key of TTL task, weather this task is a auto wrapper task. diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlAttachmentsDelegate.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlAttachmentsDelegate.java index fb50ea218..9df5d2f85 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlAttachmentsDelegate.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlAttachmentsDelegate.java @@ -2,7 +2,6 @@ package com.fr.third.alibaba.ttl.spi; import com.fr.third.alibaba.ttl.TtlCallable; import com.fr.third.alibaba.ttl.TtlRunnable; -import org.jetbrains.annotations.NotNull; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -19,13 +18,13 @@ public class TtlAttachmentsDelegate implements TtlAttachments { private final ConcurrentMap attachments = new ConcurrentHashMap(); @Override - public void setTtlAttachment(@NotNull String key, Object value) { + public void setTtlAttachment(String key, Object value) { attachments.put(key, value); } @Override @SuppressWarnings("unchecked") - public T getTtlAttachment(@NotNull String key) { + public T getTtlAttachment(String key) { return (T) attachments.get(key); } } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlWrapper.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlWrapper.java index 5fd32b1ed..47da24daf 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlWrapper.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/spi/TtlWrapper.java @@ -1,7 +1,6 @@ package com.fr.third.alibaba.ttl.spi; import com.fr.third.alibaba.ttl.TtlUnwrap; -import org.jetbrains.annotations.NotNull; /** * Ttl Wrapper interface. @@ -21,6 +20,6 @@ public interface TtlWrapper extends TtlEnhanced { * * @see TtlUnwrap#unwrap(Object) */ - @NotNull + T unwrap(); } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableForkJoinWorkerThreadFactory.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableForkJoinWorkerThreadFactory.java index 44a508b99..3e5655e57 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableForkJoinWorkerThreadFactory.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableForkJoinWorkerThreadFactory.java @@ -1,7 +1,6 @@ package com.fr.third.alibaba.ttl.threadpool; import com.fr.third.alibaba.ttl.spi.TtlWrapper; -import org.jetbrains.annotations.NotNull; import java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory; @@ -16,6 +15,6 @@ public interface DisableInheritableForkJoinWorkerThreadFactory extends ForkJoinW * Unwrap {@link DisableInheritableThreadFactory} to the original/underneath one. */ @Override - @NotNull + ForkJoinWorkerThreadFactory unwrap(); } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableForkJoinWorkerThreadFactoryWrapper.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableForkJoinWorkerThreadFactoryWrapper.java index d96b8282a..4a5b11d63 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableForkJoinWorkerThreadFactoryWrapper.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableForkJoinWorkerThreadFactoryWrapper.java @@ -1,6 +1,5 @@ package com.fr.third.alibaba.ttl.threadpool; -import org.jetbrains.annotations.NotNull; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory; @@ -16,7 +15,7 @@ import static com.fr.third.alibaba.ttl.TransmittableThreadLocal.Transmitter.rest class DisableInheritableForkJoinWorkerThreadFactoryWrapper implements DisableInheritableForkJoinWorkerThreadFactory { private final ForkJoinWorkerThreadFactory threadFactory; - DisableInheritableForkJoinWorkerThreadFactoryWrapper(@NotNull ForkJoinWorkerThreadFactory threadFactory) { + DisableInheritableForkJoinWorkerThreadFactoryWrapper(ForkJoinWorkerThreadFactory threadFactory) { this.threadFactory = threadFactory; } @@ -31,7 +30,6 @@ class DisableInheritableForkJoinWorkerThreadFactoryWrapper implements DisableInh } @Override - @NotNull public ForkJoinWorkerThreadFactory unwrap() { return threadFactory; } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableThreadFactory.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableThreadFactory.java index 90049cc3e..6b25fe898 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableThreadFactory.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableThreadFactory.java @@ -1,7 +1,6 @@ package com.fr.third.alibaba.ttl.threadpool; import com.fr.third.alibaba.ttl.spi.TtlWrapper; -import org.jetbrains.annotations.NotNull; import java.util.concurrent.ThreadFactory; @@ -17,6 +16,6 @@ public interface DisableInheritableThreadFactory extends ThreadFactory, TtlWrapp * Unwrap {@link DisableInheritableThreadFactory} to the original/underneath one. */ @Override - @NotNull + ThreadFactory unwrap(); } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableThreadFactoryWrapper.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableThreadFactoryWrapper.java index 5ecf93cb0..95f76b978 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableThreadFactoryWrapper.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/DisableInheritableThreadFactoryWrapper.java @@ -1,6 +1,5 @@ package com.fr.third.alibaba.ttl.threadpool; -import org.jetbrains.annotations.NotNull; import java.util.concurrent.ThreadFactory; @@ -14,12 +13,12 @@ import static com.fr.third.alibaba.ttl.TransmittableThreadLocal.Transmitter.rest class DisableInheritableThreadFactoryWrapper implements DisableInheritableThreadFactory { private final ThreadFactory threadFactory; - DisableInheritableThreadFactoryWrapper(@NotNull ThreadFactory threadFactory) { + DisableInheritableThreadFactoryWrapper(ThreadFactory threadFactory) { this.threadFactory = threadFactory; } @Override - public Thread newThread(@NotNull Runnable r) { + public Thread newThread(Runnable r) { final Object backup = clear(); try { return threadFactory.newThread(r); @@ -28,7 +27,7 @@ class DisableInheritableThreadFactoryWrapper implements DisableInheritableThread } } - @NotNull + @Override public ThreadFactory unwrap() { return threadFactory; diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ExecutorServiceTtlWrapper.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ExecutorServiceTtlWrapper.java index ebb4ea482..b415395b1 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ExecutorServiceTtlWrapper.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ExecutorServiceTtlWrapper.java @@ -4,7 +4,6 @@ import com.fr.third.alibaba.ttl.TransmittableThreadLocal; import com.fr.third.alibaba.ttl.TtlCallable; import com.fr.third.alibaba.ttl.TtlRunnable; import com.fr.third.alibaba.ttl.spi.TtlEnhanced; -import org.jetbrains.annotations.NotNull; import java.util.Collection; import java.util.List; @@ -21,7 +20,7 @@ import java.util.concurrent.*; class ExecutorServiceTtlWrapper extends ExecutorTtlWrapper implements ExecutorService, TtlEnhanced { private final ExecutorService executorService; - ExecutorServiceTtlWrapper(@NotNull ExecutorService executorService) { + ExecutorServiceTtlWrapper(ExecutorService executorService) { super(executorService); this.executorService = executorService; } @@ -31,7 +30,7 @@ class ExecutorServiceTtlWrapper extends ExecutorTtlWrapper implements ExecutorSe executorService.shutdown(); } - @NotNull + @Override public List shutdownNow() { return executorService.shutdownNow(); @@ -48,52 +47,52 @@ class ExecutorServiceTtlWrapper extends ExecutorTtlWrapper implements ExecutorSe } @Override - public boolean awaitTermination(long timeout, @NotNull TimeUnit unit) throws InterruptedException { + public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { return executorService.awaitTermination(timeout, unit); } - @NotNull + @Override - public Future submit(@NotNull Callable task) { + public Future submit(Callable task) { return executorService.submit(TtlCallable.get(task)); } - @NotNull + @Override - public Future submit(@NotNull Runnable task, T result) { + public Future submit(Runnable task, T result) { return executorService.submit(TtlRunnable.get(task), result); } - @NotNull + @Override - public Future submit(@NotNull Runnable task) { + public Future submit(Runnable task) { return executorService.submit(TtlRunnable.get(task)); } - @NotNull + @Override - public List> invokeAll(@NotNull Collection> tasks) throws InterruptedException { + public List> invokeAll(Collection> tasks) throws InterruptedException { return executorService.invokeAll(TtlCallable.gets(tasks)); } - @NotNull + @Override - public List> invokeAll(@NotNull Collection> tasks, long timeout, @NotNull TimeUnit unit) throws InterruptedException { + public List> invokeAll(Collection> tasks, long timeout, TimeUnit unit) throws InterruptedException { return executorService.invokeAll(TtlCallable.gets(tasks), timeout, unit); } - @NotNull + @Override - public T invokeAny(@NotNull Collection> tasks) throws InterruptedException, ExecutionException { + public T invokeAny(Collection> tasks) throws InterruptedException, ExecutionException { return executorService.invokeAny(TtlCallable.gets(tasks)); } @Override - public T invokeAny(@NotNull Collection> tasks, long timeout, @NotNull TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { + public T invokeAny(Collection> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { return executorService.invokeAny(TtlCallable.gets(tasks), timeout, unit); } - @NotNull + @Override public ExecutorService unwrap() { return executorService; diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ExecutorTtlWrapper.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ExecutorTtlWrapper.java index 87aabac2d..ffb3309d7 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ExecutorTtlWrapper.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ExecutorTtlWrapper.java @@ -4,7 +4,6 @@ import com.fr.third.alibaba.ttl.TransmittableThreadLocal; import com.fr.third.alibaba.ttl.TtlRunnable; import com.fr.third.alibaba.ttl.spi.TtlEnhanced; import com.fr.third.alibaba.ttl.spi.TtlWrapper; -import org.jetbrains.annotations.NotNull; import java.util.concurrent.Executor; @@ -19,17 +18,17 @@ import java.util.concurrent.Executor; class ExecutorTtlWrapper implements Executor, TtlWrapper, TtlEnhanced { private final Executor executor; - ExecutorTtlWrapper(@NotNull Executor executor) { + ExecutorTtlWrapper(Executor executor) { this.executor = executor; } @Override - public void execute(@NotNull Runnable command) { + public void execute(Runnable command) { executor.execute(TtlRunnable.get(command)); } @Override - @NotNull + public Executor unwrap() { return executor; } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ScheduledExecutorServiceTtlWrapper.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ScheduledExecutorServiceTtlWrapper.java index dd1ea268e..a26b67fcb 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ScheduledExecutorServiceTtlWrapper.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/ScheduledExecutorServiceTtlWrapper.java @@ -4,7 +4,6 @@ import com.fr.third.alibaba.ttl.TransmittableThreadLocal; import com.fr.third.alibaba.ttl.TtlCallable; import com.fr.third.alibaba.ttl.TtlRunnable; import com.fr.third.alibaba.ttl.spi.TtlEnhanced; -import org.jetbrains.annotations.NotNull; import java.util.concurrent.Callable; @@ -24,37 +23,37 @@ import java.util.concurrent.TimeUnit; class ScheduledExecutorServiceTtlWrapper extends ExecutorServiceTtlWrapper implements ScheduledExecutorService, TtlEnhanced { final ScheduledExecutorService scheduledExecutorService; - public ScheduledExecutorServiceTtlWrapper(@NotNull ScheduledExecutorService scheduledExecutorService) { + public ScheduledExecutorServiceTtlWrapper(ScheduledExecutorService scheduledExecutorService) { super(scheduledExecutorService); this.scheduledExecutorService = scheduledExecutorService; } - @NotNull + @Override - public ScheduledFuture schedule(@NotNull Runnable command, long delay, @NotNull TimeUnit unit) { + public ScheduledFuture schedule(Runnable command, long delay, TimeUnit unit) { return scheduledExecutorService.schedule(TtlRunnable.get(command), delay, unit); } - @NotNull + @Override - public ScheduledFuture schedule(@NotNull Callable callable, long delay, @NotNull TimeUnit unit) { + public ScheduledFuture schedule(Callable callable, long delay, TimeUnit unit) { return scheduledExecutorService.schedule(TtlCallable.get(callable), delay, unit); } - @NotNull + @Override - public ScheduledFuture scheduleAtFixedRate(@NotNull Runnable command, long initialDelay, long period, @NotNull TimeUnit unit) { + public ScheduledFuture scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { return scheduledExecutorService.scheduleAtFixedRate(TtlRunnable.get(command), initialDelay, period, unit); } - @NotNull + @Override - public ScheduledFuture scheduleWithFixedDelay(@NotNull Runnable command, long initialDelay, long delay, @NotNull TimeUnit unit) { + public ScheduledFuture scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) { return scheduledExecutorService.scheduleWithFixedDelay(TtlRunnable.get(command), initialDelay, delay, unit); } @Override - @NotNull + public ScheduledExecutorService unwrap() { return scheduledExecutorService; } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlExecutors.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlExecutors.java index 39a273155..7d05f0df3 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlExecutors.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlExecutors.java @@ -3,7 +3,6 @@ package com.fr.third.alibaba.ttl.threadpool; import com.fr.third.alibaba.ttl.TransmittableThreadLocal; import com.fr.third.alibaba.ttl.spi.TtlEnhanced; import com.fr.third.alibaba.ttl.threadpool.agent.TtlAgent; -import org.jetbrains.annotations.Nullable; import java.util.concurrent.*; @@ -41,8 +40,8 @@ public final class TtlExecutors { * transmit the {@link TransmittableThreadLocal} from the task submit time of {@link Runnable} * to the execution time of {@link Runnable}. */ - @Nullable - public static Executor getTtlExecutor(@Nullable Executor executor) { + + public static Executor getTtlExecutor( Executor executor) { if (TtlAgent.isTtlAgentLoaded() || null == executor || executor instanceof TtlEnhanced) { return executor; } @@ -54,8 +53,8 @@ public final class TtlExecutors { * transmit the {@link TransmittableThreadLocal} from the task submit time of {@link Runnable} or {@link java.util.concurrent.Callable} * to the execution time of {@link Runnable} or {@link java.util.concurrent.Callable}. */ - @Nullable - public static ExecutorService getTtlExecutorService(@Nullable ExecutorService executorService) { + + public static ExecutorService getTtlExecutorService( ExecutorService executorService) { if (TtlAgent.isTtlAgentLoaded() || executorService == null || executorService instanceof TtlEnhanced) { return executorService; } @@ -67,8 +66,8 @@ public final class TtlExecutors { * transmit the {@link TransmittableThreadLocal} from the task submit time of {@link Runnable} or {@link java.util.concurrent.Callable} * to the execution time of {@link Runnable} or {@link java.util.concurrent.Callable}. */ - @Nullable - public static ScheduledExecutorService getTtlScheduledExecutorService(@Nullable ScheduledExecutorService scheduledExecutorService) { + + public static ScheduledExecutorService getTtlScheduledExecutorService( ScheduledExecutorService scheduledExecutorService) { if (TtlAgent.isTtlAgentLoaded() || scheduledExecutorService == null || scheduledExecutorService instanceof TtlEnhanced) { return scheduledExecutorService; } @@ -90,7 +89,7 @@ public final class TtlExecutors { * @see #unwrap(Executor) * @since 2.8.0 */ - public static boolean isTtlWrapper(@Nullable T executor) { + public static boolean isTtlWrapper( T executor) { return executor instanceof TtlEnhanced; } @@ -110,9 +109,9 @@ public final class TtlExecutors { * @see #isTtlWrapper(Executor) * @since 2.8.0 */ - @Nullable + @SuppressWarnings("unchecked") - public static T unwrap(@Nullable T executor) { + public static T unwrap( T executor) { if (!isTtlWrapper(executor)) return executor; return (T) ((ExecutorTtlWrapper) executor).unwrap(); @@ -125,8 +124,8 @@ public final class TtlExecutors { * @see DisableInheritableThreadFactory * @since 2.10.0 */ - @Nullable - public static ThreadFactory getDisableInheritableThreadFactory(@Nullable ThreadFactory threadFactory) { + + public static ThreadFactory getDisableInheritableThreadFactory( ThreadFactory threadFactory) { if (threadFactory == null || isDisableInheritableThreadFactory(threadFactory)) return threadFactory; return new DisableInheritableThreadFactoryWrapper(threadFactory); @@ -138,7 +137,7 @@ public final class TtlExecutors { * @see #getDisableInheritableThreadFactory(ThreadFactory) * @since 2.10.0 */ - @Nullable + public static ThreadFactory getDefaultDisableInheritableThreadFactory() { return getDisableInheritableThreadFactory(Executors.defaultThreadFactory()); } @@ -149,7 +148,7 @@ public final class TtlExecutors { * @see DisableInheritableThreadFactory * @since 2.10.0 */ - public static boolean isDisableInheritableThreadFactory(@Nullable ThreadFactory threadFactory) { + public static boolean isDisableInheritableThreadFactory( ThreadFactory threadFactory) { return threadFactory instanceof DisableInheritableThreadFactory; } @@ -159,8 +158,8 @@ public final class TtlExecutors { * @see DisableInheritableThreadFactory * @since 2.10.0 */ - @Nullable - public static ThreadFactory unwrap(@Nullable ThreadFactory threadFactory) { + + public static ThreadFactory unwrap( ThreadFactory threadFactory) { if (!isDisableInheritableThreadFactory(threadFactory)) return threadFactory; return ((DisableInheritableThreadFactory) threadFactory).unwrap(); diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlForkJoinPoolHelper.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlForkJoinPoolHelper.java index 10b862d1f..dd9bd8104 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlForkJoinPoolHelper.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlForkJoinPoolHelper.java @@ -1,6 +1,5 @@ package com.fr.third.alibaba.ttl.threadpool; -import org.jetbrains.annotations.Nullable; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory; @@ -26,8 +25,8 @@ public class TtlForkJoinPoolHelper { * @see DisableInheritableForkJoinWorkerThreadFactory * @since 2.10.1 */ - @Nullable - public static ForkJoinWorkerThreadFactory getDisableInheritableForkJoinWorkerThreadFactory(@Nullable ForkJoinWorkerThreadFactory threadFactory) { + + public static ForkJoinWorkerThreadFactory getDisableInheritableForkJoinWorkerThreadFactory( ForkJoinWorkerThreadFactory threadFactory) { if (threadFactory == null || isDisableInheritableForkJoinWorkerThreadFactory(threadFactory)) return threadFactory; @@ -40,7 +39,7 @@ public class TtlForkJoinPoolHelper { * @see #getDisableInheritableForkJoinWorkerThreadFactory(ForkJoinWorkerThreadFactory) * @since 2.10.1 */ - @Nullable + public static ForkJoinWorkerThreadFactory getDefaultDisableInheritableForkJoinWorkerThreadFactory() { return getDisableInheritableForkJoinWorkerThreadFactory(ForkJoinPool.defaultForkJoinWorkerThreadFactory); } @@ -51,7 +50,7 @@ public class TtlForkJoinPoolHelper { * @see DisableInheritableForkJoinWorkerThreadFactory * @since 2.10.1 */ - public static boolean isDisableInheritableForkJoinWorkerThreadFactory(@Nullable ForkJoinWorkerThreadFactory threadFactory) { + public static boolean isDisableInheritableForkJoinWorkerThreadFactory( ForkJoinWorkerThreadFactory threadFactory) { return threadFactory instanceof DisableInheritableForkJoinWorkerThreadFactory; } @@ -61,8 +60,8 @@ public class TtlForkJoinPoolHelper { * @see DisableInheritableForkJoinWorkerThreadFactory * @since 2.10.1 */ - @Nullable - public static ForkJoinWorkerThreadFactory unwrap(@Nullable ForkJoinWorkerThreadFactory threadFactory) { + + public static ForkJoinWorkerThreadFactory unwrap( ForkJoinWorkerThreadFactory threadFactory) { if (!isDisableInheritableForkJoinWorkerThreadFactory(threadFactory)) return threadFactory; return ((DisableInheritableForkJoinWorkerThreadFactory) threadFactory).unwrap(); diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlUtils.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlUtils.java new file mode 100644 index 000000000..6f7d9830c --- /dev/null +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/TtlUtils.java @@ -0,0 +1,39 @@ +package com.fr.third.alibaba.ttl.threadpool; + +import com.fr.third.alibaba.ttl.TtlRunnable; +import com.fr.third.alibaba.ttl.spi.TtlAttachments; +import com.fr.third.alibaba.ttl.spi.TtlEnhanced; + +import static com.fr.third.alibaba.ttl.TransmittableThreadLocal.Transmitter.capture; + + +public class TtlUtils { + public static Object doCaptureWhenNotTtlEnhanced( Object obj) { + if (obj instanceof TtlEnhanced) return null; + else return capture(); + } + + public static void setAutoWrapperAttachment( Object ttlAttachment) { + if (notTtlAttachments(ttlAttachment)) return; + ((TtlAttachments) ttlAttachment).setTtlAttachment(TtlAttachments.KEY_IS_AUTO_WRAPPER, true); + } + + + public static Runnable unwrapIfIsAutoWrapper( Runnable runnable) { + if (isAutoWrapper(runnable)) return TtlRunnable.unwrap(runnable); + else return runnable; + } + + private static boolean notTtlAttachments( Object ttlAttachment) { + return !(ttlAttachment instanceof TtlAttachments); + } + + private static boolean isAutoWrapper( Runnable ttlAttachments) { + if (notTtlAttachments(ttlAttachments)) return false; + + final Boolean value = ((TtlAttachments) ttlAttachments).getTtlAttachment(TtlAttachments.KEY_IS_AUTO_WRAPPER); + if (value == null) return false; + + return value; + } +} \ No newline at end of file diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/TtlAgent.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/TtlAgent.java index f1e5bb783..cd3740a07 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/TtlAgent.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/TtlAgent.java @@ -7,12 +7,6 @@ import com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet.impl.TtlE import com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet.impl.TtlForkJoinTransformlet; import com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet.impl.TtlTimerTaskTransformlet; -import com.fr.third.alibaba.ttl.threadpool.DisableInheritableForkJoinWorkerThreadFactory; -import com.fr.third.alibaba.ttl.threadpool.DisableInheritableThreadFactory; -import com.fr.third.alibaba.ttl.threadpool.TtlExecutors; -import com.fr.third.alibaba.ttl.threadpool.TtlForkJoinPoolHelper; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.lang.instrument.ClassFileTransformer; import java.lang.instrument.Instrumentation; import java.util.ArrayList; @@ -128,7 +122,7 @@ public final class TtlAgent { * @see Logger#STDERR * @see Logger#STDOUT */ - public static void premain(String agentArgs, @NotNull Instrumentation inst) { + public static void premain(String agentArgs, Instrumentation inst) { kvs = splitCommaColonStringToKV(agentArgs); Logger.setLoggerImplType(getLogImplTypeFromAgentArgs(kvs)); @@ -157,7 +151,7 @@ public final class TtlAgent { } } - private static String getLogImplTypeFromAgentArgs(@NotNull final Map kvs) { + private static String getLogImplTypeFromAgentArgs(final Map kvs) { return kvs.get(Logger.TTL_AGENT_LOGGER_KEY); } @@ -202,15 +196,15 @@ public final class TtlAgent { return isOptionSetOrTrue(kvs, TTL_AGENT_ENABLE_TIMER_TASK_KEY); } - private static boolean isOptionSetOrFalse(@Nullable final Map kvs, @NotNull String key) { + private static boolean isOptionSetOrFalse( final Map kvs, String key) { return isOptionSetOrFalse(kvs, key, false); } - private static boolean isOptionSetOrTrue(@Nullable final Map kvs, @NotNull String key) { + private static boolean isOptionSetOrTrue( final Map kvs, String key) { return isOptionSetOrFalse(kvs, key, true); } - private static boolean isOptionSetOrFalse(@Nullable final Map kvs, @NotNull String key, boolean defaultValue) { + private static boolean isOptionSetOrFalse( final Map kvs, String key, boolean defaultValue) { if (null == kvs) return defaultValue; final boolean hasEnableKey = kvs.containsKey(key); @@ -222,8 +216,8 @@ public final class TtlAgent { /** * Split to {@code json} like String({@code "k1:v1,k2:v2"}) to KV map({@code "k1"->"v1", "k2"->"v2"}). */ - @NotNull - static Map splitCommaColonStringToKV(@Nullable String commaColonString) { + + static Map splitCommaColonStringToKV( String commaColonString) { Map ret = new HashMap(); if (commaColonString == null || commaColonString.trim().length() == 0) return ret; diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/TtlTransformer.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/TtlTransformer.java index 4f8d3ea34..a38628bb8 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/TtlTransformer.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/TtlTransformer.java @@ -3,8 +3,6 @@ package com.fr.third.alibaba.ttl.threadpool.agent; import com.fr.third.alibaba.ttl.threadpool.agent.internal.logging.Logger; import com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet.ClassInfo; import com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet.JavassistTransformlet; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.lang.instrument.ClassFileTransformer; @@ -29,7 +27,7 @@ public class TtlTransformer implements ClassFileTransformer { * see {@code @return} of {@link ClassFileTransformer#transform(ClassLoader, String, Class, ProtectionDomain, byte[])} */ - // [ERROR] com.alibaba.ttl.threadpool.agent.TtlTransformer.transform(ClassLoader, String, Class, ProtectionDomain, byte[]) + // [ERROR] com.fr.third.alibaba.ttl.threadpool.agent.TtlTransformer.transform(ClassLoader, String, Class, ProtectionDomain, byte[]) // may expose internal representation by returning TtlTransformer.NO_TRANSFORM // the value is null, so there is NO "EI_EXPOSE_REP" problem actually. private static final byte[] NO_TRANSFORM = null; @@ -44,8 +42,8 @@ public class TtlTransformer implements ClassFileTransformer { } @Override - public final byte[] transform(@Nullable final ClassLoader loader, @Nullable final String classFile, final Class classBeingRedefined, - final ProtectionDomain protectionDomain, @NotNull final byte[] classFileBuffer) { + public final byte[] transform( final ClassLoader loader, final String classFile, final Class classBeingRedefined, + final ProtectionDomain protectionDomain, final byte[] classFileBuffer) { try { // Lambda has no class file, no need to transform, just return. if (classFile == null) return NO_TRANSFORM; @@ -67,7 +65,7 @@ public class TtlTransformer implements ClassFileTransformer { return NO_TRANSFORM; } - private static String toClassName(@NotNull final String classFile) { + private static String toClassName(final String classFile) { return classFile.replace('/', '.'); } } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/ClassInfo.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/ClassInfo.java index 8d656e5c6..e65c6673e 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/ClassInfo.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/ClassInfo.java @@ -1,14 +1,14 @@ package com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet; import com.fr.third.javassist.CtClass; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import com.fr.third.javassist.ClassPool; -import com.fr.third.javassist.CtClass; import com.fr.third.javassist.LoaderClassPath; +import com.fr.third.javassist.NotFoundException; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; /** * @author Jerry Lee (oldratlee at gmail dot com) @@ -18,25 +18,26 @@ public class ClassInfo { private final String className; private final byte[] classFileBuffer; private final ClassLoader loader; + private static Set paths = new CopyOnWriteArraySet<>(); // SuppressFBWarnings for classFileBuffer parameter: - // [ERROR] new com.alibaba.ttl.threadpool.agent.internal.transformlet.ClassInfo(String, byte[], ClassLoader) + // [ERROR] new com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet.ClassInfo(String, byte[], ClassLoader) // may expose internal representation by storing an externally mutable object // into ClassInfo.classFileBuffer - public ClassInfo(@NotNull String className, byte[] classFileBuffer, @Nullable ClassLoader loader) { + public ClassInfo(String className, byte[] classFileBuffer, ClassLoader loader) { this.className = className; this.classFileBuffer = classFileBuffer; this.loader = loader; } - @NotNull + public String getClassName() { return className; } private CtClass ctClass; - @NotNull + public CtClass getCtClass() throws IOException { if (ctClass != null) return ctClass; @@ -46,7 +47,13 @@ public class ClassInfo { } else { classPool.appendClassPath(new LoaderClassPath(loader)); } - + for (String path: paths) { + try { + classPool.appendClassPath(path); + } catch (NotFoundException e) { + e.printStackTrace(); + } + } final CtClass clazz = classPool.makeClass(new ByteArrayInputStream(classFileBuffer), false); clazz.defrost(); @@ -63,4 +70,8 @@ public class ClassInfo { public void setModified() { this.modified = true; } + + public static void addPath(String path) { + paths.add(path); + } } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/JavassistTransformlet.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/JavassistTransformlet.java index b88102889..eca3e756d 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/JavassistTransformlet.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/JavassistTransformlet.java @@ -1,6 +1,5 @@ package com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet; -import org.jetbrains.annotations.NotNull; import com.fr.third.javassist.CannotCompileException; import com.fr.third.javassist.NotFoundException; @@ -13,5 +12,5 @@ import java.io.IOException; * @since 2.5.1 */ public interface JavassistTransformlet { - void doTransform(@NotNull ClassInfo classInfo) throws IOException, NotFoundException, CannotCompileException; + void doTransform(ClassInfo classInfo) throws IOException, NotFoundException, CannotCompileException; } diff --git a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/impl/TtlExecutorTransformlet.java b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/impl/TtlExecutorTransformlet.java index 603e4c5dd..1d6a9a566 100644 --- a/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/impl/TtlExecutorTransformlet.java +++ b/fine-transmittable-thread-local/src/main/java/com/fr/third/alibaba/ttl/threadpool/agent/internal/transformlet/impl/TtlExecutorTransformlet.java @@ -1,12 +1,8 @@ package com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet.impl; -import com.fr.third.alibaba.ttl.threadpool.TtlExecutors; import com.fr.third.alibaba.ttl.threadpool.agent.internal.logging.Logger; import com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet.ClassInfo; import com.fr.third.alibaba.ttl.threadpool.agent.internal.transformlet.JavassistTransformlet; -import com.fr.third.alibaba.ttl.TtlCallable; -import com.fr.third.alibaba.ttl.TtlRunnable; -import org.jetbrains.annotations.NotNull; import com.fr.third.javassist.*; import java.io.IOException; @@ -42,8 +38,8 @@ public class TtlExecutorTransformlet implements JavassistTransformlet { EXECUTOR_CLASS_NAMES.add(THREAD_POOL_EXECUTOR_CLASS_NAME); EXECUTOR_CLASS_NAMES.add("java.util.concurrent.ScheduledThreadPoolExecutor"); - PARAM_TYPE_NAME_TO_DECORATE_METHOD_CLASS.put(RUNNABLE_CLASS_NAME, "com.alibaba.ttl.TtlRunnable"); - PARAM_TYPE_NAME_TO_DECORATE_METHOD_CLASS.put("java.util.concurrent.Callable", "com.alibaba.ttl.TtlCallable"); + PARAM_TYPE_NAME_TO_DECORATE_METHOD_CLASS.put(RUNNABLE_CLASS_NAME, "com.fr.third.alibaba.ttl.TtlRunnable"); + PARAM_TYPE_NAME_TO_DECORATE_METHOD_CLASS.put("java.util.concurrent.Callable", "com.fr.third.alibaba.ttl.TtlCallable"); } private static final String THREAD_FACTORY_CLASS_NAME = "java.util.concurrent.ThreadFactory"; @@ -55,7 +51,7 @@ public class TtlExecutorTransformlet implements JavassistTransformlet { } @Override - public void doTransform(@NotNull final ClassInfo classInfo) throws IOException, NotFoundException, CannotCompileException { + public void doTransform(final ClassInfo classInfo) throws IOException, NotFoundException, CannotCompileException { if (EXECUTOR_CLASS_NAMES.contains(classInfo.getClassName())) { final CtClass clazz = classInfo.getCtClass(); @@ -84,10 +80,10 @@ public class TtlExecutorTransformlet implements JavassistTransformlet { /** * @see TtlRunnable#get(Runnable, boolean, boolean) * @see TtlCallable#get(Callable, boolean, boolean) - * @see Utils#setAutoWrapperAttachment(Object) + * @see com.fr.third.alibaba.ttl.threadpool.TtlUtils#setAutoWrapperAttachment(Object) */ // [ERROR] Format string should use %n rather than \n - private void updateSubmitMethodsOfExecutorClass_decorateToTtlWrapperAndSetAutoWrapperAttachment(@NotNull final CtMethod method) throws NotFoundException, CannotCompileException { + private void updateSubmitMethodsOfExecutorClass_decorateToTtlWrapperAndSetAutoWrapperAttachment(final CtMethod method) throws NotFoundException, CannotCompileException { final int modifiers = method.getModifiers(); if (!Modifier.isPublic(modifiers) || Modifier.isStatic(modifiers)) return; @@ -100,7 +96,7 @@ public class TtlExecutorTransformlet implements JavassistTransformlet { // decorate to TTL wrapper, // and then set AutoWrapper attachment/Tag "$%d = %s.get($%d, false, true);" - + "\ncom.alibaba.ttl.threadpool.agent.internal.transformlet.impl.Utils.setAutoWrapperAttachment($%The mechanism for instrumentation + * + * 此包中的不允许直接使用ttl中其他代码 */ package com.fr.third.alibaba.ttl.threadpool.agent;