transmittable-thread-local

๐Ÿ“Œ a missing Java std lib(simple & 0-dependency) for framework/middleware, provide an enhanced InheritableThreadLocal that transmits values between threads even using thread pooling components.

APACHE-2.0 License

Stars
7.3K
Committers
21

Bot releases are hidden (Show)

transmittable-thread-local - Release 2.11.3 ๐Ÿ“๐Ÿ“š๐ŸŽ‰

Published by oldratlee almost 5 years ago

Change Log

โ€ผ๏ธNote: โ€ผ๏ธ

Version 2.11.3 ๐ŸฆŽ is Deprecated! use version 2.11.5๏ผ‹ instead.

Features

  • add disableIgnoreNullValueSemantics option for TransmittableThreadLocal #157 ๐Ÿ“

Improvements

  • add default "ttl.agent.enable.timer.task" agent test case in continuous intergration
  • cast type to interface instead of implementation
  • upgrade dependencies
  • remove args of main method for kotlin
  • add missing Nullable annotation for method TtlCallable.get
  • add the executable demo for different usage
  • improve docs/javadoc: ๐Ÿ“š
    • improve comment of field holder ๐ŸŽ‰
    • fix typo in javadoc

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.11.3/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.11.3</version>
</dependency>
transmittable-thread-local - Release 2.11.2 ๐Ÿ‘‰๐Ÿ“š๐ŸŽ‰

Published by oldratlee almost 5 years ago

Change Log

โ€ผ๏ธNote: โ€ผ๏ธ

Version 2.11.2 ๐ŸฆŽ is Deprecated! use version 2.11.5๏ผ‹ instead.

Improvements

  • default turn on TimeTask transform of Java Agent #159 ๐Ÿ‘‰
    more info see the javadoc of TtlAgent
  • improve docs/javadoc: ๐Ÿ“š
    • add transparent support description for CompletableFuture and Stream ๐ŸŽ‰
    • Since version 2.11.2 decoration for TimerTask default is enable

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.11.2/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.11.2</version>
</dependency>
transmittable-thread-local - Release 2.11.1 ๐Ÿšง๐Ÿ”ฑ๐Ÿ“š

Published by oldratlee almost 5 years ago

Change Log

โ€ผ๏ธNote: โ€ผ๏ธ

Version 2.11.1 ๐ŸฆŽ is Deprecated! use version 2.11.5๏ผ‹ instead.

Improvements

  • return null if no transform is performed #158 ๐Ÿšง
  • add more @NonNull/@Nullable ๐Ÿ”ฑ
  • upgrade dependencies โ˜๏ธ
  • add @FunctionalInterface for interface TtlCopier
  • improve docs/javadoc: ๐Ÿ“š
    • add requirement scenario
    • compress png files
  • add demo ScheduledFutureTaskDemo #148
  • add jdk 13 in travis-ci
  • upgrade maven wrapper to 3.6.3

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.11.1/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.11.1</version>
</dependency>
transmittable-thread-local - Release 2.11.0 ๐Ÿ™๐ŸŽฉ๐Ÿšข๐Ÿ“š๐Ÿš—

Published by oldratlee about 5 years ago

This is a long-waiting version.
We hope it's worth the wait and have fun! โค๏ธ

Change Log

โ€ผ๏ธNote: โ€ผ๏ธ

Version 2.11.0 ๐ŸฆŽ is Deprecated! use version 2.11.5๏ผ‹ instead.

New Feature

  • support ThreadLocal integration #130 ๐Ÿ™
    • Caution:
      If the registered ThreadLocal instance is not InheritableThreadLocal, the instance can NOT inherit value from parent thread(aka. the inheritable ability)!
    • More info see the javadoc of Transmitter
  • support unwrap ttl runnable for before/afterExecute methods of executor subclass when decorate by ttl agent #141 ๐Ÿš—
  • use WeakHashMap instead of HashMap for capture/backup snapshot ๐Ÿšข
    • TTL do NOT have the ownership of thread local/snapshot!
    • more gc friendly, avoid potential memory leak!

Improvements

  • use WeakHashMap type for internal implementation, express the weak reference semantics explicitly
  • use edu.umd.cs.findbugs.annotations instead of dormant jsr305
  • add more @NonNull/@Nullable ๐Ÿ”ฑ
  • use keySet instead of entrySet, simplify the code
  • use type parameter Object instead ? for holder, improve readability
  • protect for NPE for AutoUnwrapper
  • improve pom dependencies, more IDE friendly ๐Ÿค
  • add spotbugs lint ๐ŸŽฉ
  • add .editorconfig
  • upgrade dependencies โ˜๏ธ
  • improve javadoc: ๐Ÿ“š
    • shade Sources Content
    • fix Search redirects to "/undefined/.." url

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.11.0/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.11.0</version>
</dependency>
transmittable-thread-local - Release 2.11.0-RC3: support ThreadLocal integration ๐Ÿ™๐Ÿค๐Ÿšข

Published by oldratlee about 5 years ago

Change Log

New Feature

  • support ThreadLocal integration #130 ๐Ÿ™
  • use WeakHashMap instead of HashMap for capture/backup snapshot ๐Ÿšข
    • TTL do NOT have the ownership of thread local/snapshot!
    • more gc friendly, avoid potential memory leak!

Improvements

  • improve pom dependencies, more IDE friendly ๐Ÿค
  • use WeakHashMap type for implementation, express the weak semantics implicitly
  • use keySet instead of entrySet, simplify the code
  • use type parameter Object instead ? for holder, improve readability
  • add .editorconfig

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.11.0-RC3/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.11.0-RC3</version>
</dependency>
transmittable-thread-local - Release 2.11.0-RC2: A cleanup/improvement release ๐Ÿ”ฑ๐ŸŽฉ

Published by oldratlee over 5 years ago

Change Log

Small Fix

  • protect for NPE for AutoUnwrapper
  • add missing extends for TtlEnhanced, ensure compatibility

Improvements

  • add more @NonNull/@Nullable ๐Ÿ”ฑ
  • use edu.umd.cs.findbugs.annotations instead of dormant jsr305
  • add spotbugs lint ๐ŸŽฉ
  • improve javadoc ๐Ÿ“š

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.11.0-RC2/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.11.0-RC2</version>
</dependency>

Change Log

New Features

  • support unwrap ttl runnable for before/afterExecute methods of executor subclass when decorate by ttl agent #141 ๐Ÿš—

Improvements

  • upgrade dependencies โ˜๏ธ
  • javadoc: ๐Ÿ“š
    • shade Sources Content
    • fix Search redirects to "/undefined/.." url

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.11.0-RC1/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.11.0-RC1</version>
</dependency>
transmittable-thread-local - Release 2.10.2: add unwrap util methods for TtlRunnable/TtlCallable ๐Ÿพ๐ŸŽ

Published by oldratlee almost 6 years ago

Change Log

New Features

  • add unwrap util method for TtlRunnable/TtlCallable/TtlTimerTask ๐Ÿพ

Improvements

  • add ParallelStreamDemo / add ForkJoinPool4StreamTest #77 ๐ŸŽ
  • add kotlin coroutine(and coroutine context) demo ๐Ÿ‘ท
  • improve javadoc
  • add oracle jdk 11 in ci
  • improve scripts
  • unit test cleanup/improve

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.10.2/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.10.2</version>
</dependency>
transmittable-thread-local - Release 2.10.1: full support disable ttl inheritable ๐Ÿ’Ž๐Ÿ“š

Published by oldratlee almost 6 years ago

Change Log

New Features

  • full support disable ttl inheritable #100 ๐Ÿ’Ž
    • support ForkJoinPool
    • agent support for disable ttl inheritable for thread created by thread pool(ThreadPoolExecutor/ScheduledThreadPoolExecutor/ForkJoinPool)
    • more info see javadoc of TransmittableThreadLocal, TtlAgent

Especially thanks our new TTL team member @zavakid ! โค๏ธ He discussed the features/design/solution/implementation warmly!

Improvements

  • documentation and unit test improvement/cleanup ๐Ÿ“š

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.10.1/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.10.1</version>
</dependency>

Already deploy to maven central repository.

Contributors

Thank you to all the contributors who made this release possible ๐ŸŽ‰

According to git shortlog -sn --no-merges v2.10.0..v2.10.1 these are:

8  Jerry Lee
transmittable-thread-local - Release 2.10.0: support disable ttl inheritable for thread created by ThreadFactory ๐Ÿ’Ž๐Ÿฉ

Published by oldratlee almost 6 years ago

Change Log

New Features

  • support disable ttl inheritable for ThreadPoolExecutorby ThreadFactory #100 ๐Ÿ’Ž

Especially thanks our new TTL team member @zavakid ! โค๏ธ He discussed the features/design/solution/implementation warmly!

Improvements

  • add TtlEnhanced tag interface
  • add disable inheritable usage and unit test for TransmittableThreadLocal
  • upgrade kotlin.version to 1.3.0 โค๏ธ๐Ÿฉ

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.10.0/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.10.0</version>
</dependency>

Already deploy to maven central repository.

Contributors

Thank you to all the contributors who made this release possible ๐ŸŽ‰

According to git shortlog -sn --no-merges v2.9.0..v2.10.0 these are:

     7  Jerry Lee
     1  Yang Fang
     1  Zava
transmittable-thread-local - Release 2.9.0: add Transmitter#clear method โ™ป๏ธ๐Ÿšฅโšก๏ธ

Published by oldratlee almost 6 years ago

Change Log

New Features

  • add Transmitter#clear method โ™ป๏ธ
  • skip thread pool wrapper/decoration when TTL agent is loaded ๐Ÿšฅ

Improvements

  • add @nonnull for methods runSupplierWith*
  • internal implementation refactor/cleanup
  • documentation improvement
  • pom cleanup
    • move some plugins to pluginManagement
    • don't create sources jar by default when build, speedup dev โšก๏ธ
  • remove oracle jdk 10(EOL) in ci
  • unify agent test by unit test(same test case as mvn test)

Java API Doc

https://alibaba.github.io/transmittable-thread-local/apidocs/2.9.0/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.9.0</version>
</dependency>

Already deploy to maven central repository.

transmittable-thread-local - Release 2.8.1: A quick-fix release, exclude jsr305 dependency from the release jar ๐Ÿ‘ฝ

Published by oldratlee about 6 years ago

Change Log

Quick fix

exclude jsr305 dependency from the release jar ๐Ÿ‘ฝ

Java API Doc

http://alibaba.github.io/transmittable-thread-local/apidocs/2.8.1/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.8.1</version>
</dependency>

Already deploy to maven central repository.

Change Log

โ€ผ๏ธNote: โ€ผ๏ธ

Version 2.8.0 ๐ŸฆŽ is Deprecated! use version 2.8.1๏ผ‹ instead.

New Features

  • add unwrap method for TtlExecutors to get the original/underneath executor #112 โฌ†๏ธ
  • JSR 305 intergration #101

Improvements

  • add ci for jdk 12 and update realated docs
  • add equals and hashCode for TtlTimerTask
  • upgrade kotlin.version to 1.2.71 ๐Ÿฉ
  • code cleanup
    • clean test code

Java API Doc

http://alibaba.github.io/transmittable-thread-local/apidocs/2.8.1/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.8.1</version>
</dependency>

Use v2.8.1+ instead!

Already deploy to maven central repository.

transmittable-thread-local - Release 2.7.0: TTL agent support timer task ๐ŸŒ’๐Ÿฉ๐Ÿก

Published by oldratlee about 6 years ago

Change Log

New Features

TTL agent support timer task #2 ๐ŸŒ’

NOTE: decoration for TimerTask default is disable, enabled by agent argument ttl.agent.enable.timer.task: -javaagent:path/to/transmittable-thread-local-2.x.x.ja=ttl.agent.enable.timer.task:true.
more info about TTL agent arguments, see the javadoc of TtlAgent.java.

Improvements

  • upgrade maven wrapper to 3.5.4
  • add millisecond to agent log
  • upgrade kotlin.version to 1.2.70 ๐Ÿฉ
  • avoid javassist method search indeterminacy โ˜•๏ธ
    use CtClass.getDeclaredMethod(String, CtClass[]) instead of CtClass.getDeclaredMethod(String)
  • documentation improvement ๐Ÿก
    • add doc for decorated thread pool
    • update TTL sequence diagram
    • update javadoc link to java 10
    • use html 5 option for javadoc, support javadoc search
    • fix broken links of maven.org
  • code cleanup
    • clean maven pom

Java API Doc

http://alibaba.github.io/transmittable-thread-local/apidocs/2.7.0/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.7.0</version>
</dependency>

Already deploy to maven central repository.

transmittable-thread-local - Release 2.6.1 - a cleanup/maintenance release ๐Ÿ”ฐ ๐Ÿ“š ๐Ÿพ

Published by oldratlee about 6 years ago

Change Log

Improvements

  • add javadoc/documentation for TTL Agent and boot classpath setting ๐Ÿ“š
  • exclude internal implementation class from javadoc
  • add javadoc badge in README
  • fix agent log format ๐Ÿ’…
    timestamp INFO [thread name] class-name: message info
  • move transformlet classes into internal package ๐Ÿพ
  • remove duplicated code #103 #104 ยฉ

Java API Doc

http://alibaba.github.io/transmittable-thread-local/apidocs/2.6.1/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.6.1</version>
</dependency>

Already deploy to maven central repository.

Change Log

Java option -Xbootclasspath auto setting, and use logger adaptor for TTL java agent.

New Features

  • Java option -Xbootclasspath auto setting ๐Ÿš— #99
    Simplify -Xboot-Class-Path setting, no need set java option -Xbootclasspath manually.
  • Use logger adaptor for TTL java agent ๐Ÿญ #97
    • use simple std out/error instead of JUL in TTL java agent.
      java agent start and process when app boot, it is difficult to use (java.util.logging)JUL correctly ๐Ÿ˜ฉ; especially cooperate with app server(eg tomcat or jboss).

Especially thanks our new TTL team member @xwshiustc ! โค๏ธ He provided the requirements/features and discussed the design/implementation solution warmly!

Improvements

  • improve log for method signiture in TTL Agent.
  • remove -Xbootclasspath setting in CI.
  • shade javassist to internal package.
  • add git-commit-id-plugin, capture SCM info in release.
  • add Maintainability badge.
  • fix typo: scritps -> scripts.
  • upgrade kotlin.version to 1.2.60.
  • documentation improvement
    • fix terminology, thread cache -> thread pooling
    • add maven dependency infos of TTL integration

Java API Doc

http://alibaba.github.io/transmittable-thread-local/apidocs/2.6.0/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.6.0</version>
</dependency>

Already deploy to maven central repository.

transmittable-thread-local - Release 2.2.2 ๐Ÿ’ผ๐ŸฆŽ

Published by driventokill over 6 years ago

Change Log

โ€ผ๏ธNote: โ€ผ๏ธ

Version 2.2.x ๐ŸฆŽ is Deprecated!.
Use version 2.5๏ผ‹ instead, since version 2.5๏ผ‹ full support java 6/7/8+.

Version 2.2.x is for Java 6. From version 2.3+ support Java 8+.

Let's embrace Java 8, Lambda rocks! ๐Ÿ”ฅ

Backport features from 2.3.x

  • Support TransmittableThreadLocal.Transmitter ๐Ÿ“Ž transmit all TransmittableThreadLocal values of current thread to other thread by static method capture() => replay(Object) => restore(Object)(CRR operation). ๐Ÿš€
    TransmittableThreadLocal.Transmitter is internal manipulation API for framework/middleware integration; In general, you will never use it in the biz/application code!

Java API Doc

http://alibaba.github.io/transmittable-thread-local/apidocs/2.2.2/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.2.2</version>
</dependency>

Already deploy to maven central repository.

transmittable-thread-local - Release 2.5.1 - a cleanup/maintenance release ๐Ÿ”ฐ ๐Ÿ‘ป ๐Ÿฉ

Published by oldratlee over 6 years ago

Change Log

Let's embrace Lambda(Java 8/kotlin), Lambda rocks! ๐Ÿ”ฅ

New Features

  • Support Java 11/10/9/8/7/6. ๐Ÿ”ฅ

Improvements

  • fix ForkJoinTaskClassAgentCheck Integration Test! ๐Ÿ‘ป
  • add jdk 10/11 ci
  • split TtlTransformer to JavassistTransformlet ๐Ÿญ
  • Improve docs and demo codes ๐Ÿ“š
  • unit test code cleanup ๐ŸŽต
    • switch test case from java to kotlin ๐Ÿฉ

Java API Doc

http://alibaba.github.io/transmittable-thread-local/apidocs/2.5.1/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.5.1</version>
</dependency>

Already deploy to maven central repository.

transmittable-thread-local - Release 2.5.0 ๐Ÿ˜ป ๐Ÿคฃ ๐Ÿฉ

Published by oldratlee over 6 years ago

Change Log

Multi-version Java full support: Java 9/8/7/6, support low version Java(Java 6) and full functions for high version Java(Java 8). ๐Ÿ˜ป

Middleware Engineering ๐Ÿ”ฅ, like multi-version Java full support(support low version Java and full functions of high version Java), is boring but essential for middlewareโ€ผ๏ธ ๐Ÿคฃ

Let's embrace Lambda(Java 8/kotlin), Lambda rocks! ๐Ÿ”ฅ

New Features

  • Multi-version Java full support: Java 9/8/7/6, support low version Java(Java 6) and full functions for high version Java(Java 8). ๐Ÿ˜ป

Improvements

  • add private constructor for TransmittableThreadLocal.Transmitter
  • TtlTransformer: rename original doExec method of ForkJoinPool, and set to private method(avoid reflect out renamed method unexpectedly) โ˜‚๏ธ
  • upgrade codecov config
  • Improve docs ๐Ÿ“š
    • How to add TtlAgent to user own java Agent
    • Add Contributors
  • switch test case from java to kotlin ๐Ÿฉ

Java API Doc

http://alibaba.github.io/transmittable-thread-local/apidocs/2.5.0/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.5.0</version>
</dependency>

Already deploy to maven central repository.

transmittable-thread-local - Release 2.4.0 ๐Ÿฝ โค๏ธ

Published by oldratlee over 6 years ago

โ€ผ๏ธNote: โ€ผ๏ธ

Version 2.3.x/2.4.x ๐ŸฆŽ is Deprecated!.
Use version 2.5๏ผ‹ instead, since version 2.5๏ผ‹ full support java 6/7/8+.

Change Log

From version 2.3+ support Java 8+. ๐Ÿ”ฅ
Bug fix for Java 6 is on branch dev-v2.2.x-jdk6-support.

Let's embrace Java 8, Lambda rocks! ๐Ÿ”ฅ

New Features

  • Support ForkJoinPool #76 ๐Ÿฝ
    • jdk agent implementation of ForkJoinTask support, from PR #85 By @wuwen5 โค๏ธ
    • enhance the most frequently used ForkJoinTask(RecursiveAction/RecursiveTask), from PR #83 By @LNAmp โค๏ธ

Java API Doc

http://alibaba.github.io/transmittable-thread-local/apidocs/2.4.0/index.html

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.4.0</version>
</dependency>

Already deploy to maven central repository.

Package Rankings
Top 2.15% on Repo1.maven.org
Top 3.66% on Proxy.golang.org
Related Projects