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 - v2.14.5 Latest Release

Published by oldratlee 10 months ago

Upgrading is recommended for all users.

from 2.13.x upgrade to Java 8 ๐Ÿš€

If you need Java 6 support, use version 2.12.x

Change Log

๐Ÿ’ช enhancement

๐Ÿ› ๏ธ Refactor

  • [TtlExecutorTransformlet.java]: remove redundant qualified package name; extract local var
  • [ClassInfo.java] simplify classpath setting of javassist classpool

๐Ÿ“š Documentation

  • update document/javadoc link to java 21 ๐Ÿ“š
  • update maven central links to dependencies version ๐Ÿ“ฆ

๐Ÿšœ CI/Build

  • add bytecode version verification plugin (by @wuwen5 in #590) โœ…
  • add pom version validation โœ…
  • use java 17 as default to build instead of java 11 โ˜•๏ธ
  • upgrade maven wrapper to 3.9.6 ๐Ÿชถ
  • auto-detect JAVA_HOME of java versions when running in GitHub Actions โ˜•๏ธ

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.14.5</version>
</dependency>
transmittable-thread-local - v2.14.4

Published by oldratlee 11 months ago

Upgrading is recommended for all users.

from 2.13.x upgrade to Java 8 ๐Ÿš€

If you need Java 6 support, use version 2.12.x

Change Log

๐Ÿž Bug Fix

  • fix bug "fail to remove from Queue of ScheduledThreadPoolExecutor" (#547 by @robin-g-20230331)

๐Ÿ“š Documentation

  • improve README
    • add cases into "who used" section

๐Ÿšœ CI/Build

  • use GitHub actions ๐Ÿ™ strong_ci.yaml instead of appveyor.yml
  • upgrade CI java version (#556 by @wuwen5)
    • upgrade CI jdk 21-ea to 21
    • remove CI jdk 20
  • upgrade dependencies/plugins ๐Ÿ› ๏ธ
  • upgrade maven wrapper to 3.9.5 ๐Ÿชถ
  • upgrade bash-buddy
  • update github actions
    • actions/setup-java
    • actions/checkout
  • remove stale appveyor files

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.14.4</version>
</dependency>
transmittable-thread-local - v2.14.3

Published by oldratlee over 1 year ago

Upgrading is recommended for all users.

from 2.13.x upgrade to Java 8 ๐Ÿš€

If you need Java 6 support, use version 2.12.x

Change Log

๐Ÿฌ Improvements

  • work-around ClassCircularityError of ConcurrentHashMap under JDK 17(#399 by @dongshuke @primitiveheart)

๐Ÿ“š Documentation

  • improve README
    • add cases into "who used" section
    • fix github action badges

๐Ÿšœ CI/Build

  • upgrade dependencies/plugins ๐Ÿ› ๏ธ
  • add JDK 20/21-ea into and remove 18 fromย  GitHub CI
  • remove versions-maven-plugin, dependabot.yml Github workflow is enough ๐Ÿค–

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.14.3</version>
</dependency>
transmittable-thread-local - v2.14.2: use expected size to initialize hash map instead of capacity

Published by oldratlee almost 2 years ago

Upgrading is recommended for all users.

from 2.13.x upgrade to Java 8 ๐Ÿš€

If you need Java 6 support, use version 2.12.x

Change Log

Improvements

  • use expected size to initialize hash map instead of capacity
    fix improper implementation of v2.14.0

CI/Build

  • chore(ci): add jdk 19 into appveyor ci

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.14.2</version>
</dependency>
transmittable-thread-local - v2.14.1: a cleanup release

Published by oldratlee about 2 years ago

from 2.13.x upgrade to Java 8 ๐Ÿš€

If you need Java 6 support, use version 2.12.x

Change Log

Improvements

  • upgrade javassist to 3.29.2-GA from 3.29.0-GA
  • refactor: flip ==/!= for null check

Documentations

  • improve wording and format of doc and javadoc
  • update wrong codecov badge on branch 2.x

CI/Build

  • improve CI stability
  • update ci jdks
  • upgrade dependencies/maven plugins

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.14.1</version>
</dependency>
transmittable-thread-local - v2.14.0: support `Transmittee Register`, the extension point for other `ThreadLocal`

Published by oldratlee about 2 years ago

Upgrading is recommended for all users.

from 2.13.x upgrade to Java 8 ๐Ÿš€

If you need Java 6 support, use version 2.12.x

Change Log

Features

Improvements

  • set initialCapacity of HashMap explicitly for performance

CI/Build

  • upgrade dependencies/plugins
  • pom cleanup
    • move versions plugin declaration to management section
    • move nexus-staging-maven-plugin to deploy-settings profile
    • remove org.jetbrains:annotations dependency when run test under agent
  • add job timeout config of github CI
  • upgrade maven wrapper to 3.8.6

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.14.0</version>
</dependency>
transmittable-thread-local - v2.13.2: add `@Contract(pure)` for `wrapper` methods, more user/IDE friendly

Published by oldratlee over 2 years ago

Upgrading is recommended for all users.

Start from 2.13.x upgrade to Java 8 ๐Ÿš€

If you need Java 6 support, use version 2.12.x

Change Log

Improvement

  • add @Contract(pure) for wrapper methods, more user/IDE friendly:
    • trigger IDE warning if discard wrapper result
    • for #349 by @HuangDayu

Before: ๐Ÿ˜–
image
Now: ๐Ÿ˜‹
image

Cleanup/Refactor

  • refactor:
    • add missing final modifier of class
    • reorder annotations
  • docs: improve javadoc of registerThreadLocal* methods, add note for getting ThreadLocal instances by reflection
    • for #329 by @kaneg

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.13.2</version>
</dependency>
transmittable-thread-local - v2.13.1: add `@contract`, fine control of null check, more user/IDE friendly

Published by oldratlee over 2 years ago

Start from 2.13.x upgrade to Java 8 ๐Ÿš€

If you need Java 6 support, use version 2.12.x

Change Log

Improvement

  • add @contract for wrapper methods
    fine control of null check, more user/IDE friendly ๐Ÿฅฐ

Before: ๐Ÿ˜–
image
Now: ๐Ÿ˜‹
image

Cleanup

  • docs: improve wording
  • test: introduce kotest library for testing ๐Ÿฉ
  • cleanup deprecation warning in test code

CI/Build improvement

  • enable github workflow CI
  • add java 18/19 in ci
  • remove windows ci on appveyor, use github workflow instead
  • use maven command instead of hand-writing command scripts run-junit.sh/run-agent-test.sh
    since upgrade to java 8

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.13.1</version>
</dependency>
transmittable-thread-local - v2.13.0: upgrade to java 8 and dependencies

Published by oldratlee over 2 years ago

Start from 2.13.x upgrade to Java 8 ๐Ÿš€

If you need Java 6 support, use version 2.12.x

This version contains no new features or bug fix but upgradation of java 8 and dependencies/plugins.

Change Log

  • upgrade source to java 8
  • upgrade dependencies/plugins
    • resolved the problem caused by low version javassist(#388 by @howardliu-cn)

Java API Doc

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

Maven dependency

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

2.12.x is the last minor version supported Java6, and is end-of-life.

The 2.12.x version is end-of-life. No further development, support, maintenance, PRs and updates will happen.

It's time to say goodbye, my friend.

It's been a long day without you my friend
And I'll tell you all about it when I see you again
We've come a long way from where we began
Oh I'll tell you all about it when I see you again

Change Log

Bug Fix

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.12.6</version>
</dependency>
transmittable-thread-local - v2.12.5: fix ClassCastException from PriorityBlockingQueue when use TTL Agent

Published by oldratlee over 2 years ago

Change Log

Bug Fix

  • fix ClassCastException from PriorityBlockingQueue when use TTL Agent
    • for issue #361 submitted by @fzdwx
    • this is a bug of the feature in v2.12.3

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.12.5</version>
</dependency>
transmittable-thread-local - v2.12.4: add new non-overloaded methods in TtlWrappers

Published by oldratlee almost 3 years ago

Change Log

New Features

  • add new non-overloaded methods in TtlWrappers
    • contributed by @huangfei1101 from PR #342 #344 โค๏ธ
    • new methods: wrapSupplier, wrapConsumer, wrapBiConsumer, wrapFunction and wrapBiFunction
    • javadoc

Improvements

  • add demo code CustomizedBlockingQueueWithTtlDemo
    • for issue #340 submitted by @simake2017
  • improve javadoc wording and format
  • upgrade maven wrapper to 3.8.4
  • upgrade dependencies/plugins

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.12.4</version>
</dependency>
transmittable-thread-local - v2.12.3: support PriorityBlockingQueue with ThreadPoolExecutor

Published by oldratlee almost 3 years ago

Change Log

New Features

  • new API: TransmittableThreadLocal.withInitialAndCopier static method, javadoc
  • Support PriorityBlockingQueue with ThreadPoolExecutor
    Avoid ClassCastException(TtlRunnable cannot be cast to Comparable) problem for combination usage:
    • for #330 #290 #178 submitted by @outh0527 @KevinQian @wangchongya
    • use java.util.concurrent.PriorityBlockingQueue for java.util.concurrent.ThreadPoolExecutor ThreadPoolExecutor
    • use TTL: API or Agent(TtlExecutorTransformlet)
    • new APIs
      • com.alibaba.ttl.threadpool.TtlExecutors#getTtlRunnableUnwrapComparator, javadoc
      • com.alibaba.ttl.threadpool.TtlExecutors#getTtlRunnableUnwrapComparatorForComparableRunnable, javadoc
    • new TTL Transformlet: com.alibaba.ttl.threadpool.agent.internal.transformlet.impl.TtlPriorityBlockingQueueTransformlet
    • Demo Code: TtlExecutorServiceWithPriorityBlockingQueueDemo

Improvements

  • fix: work-around ClassCircularityError
    • for #278 #234 submitted by @linfan @kun1988
  • upgrade dependencies/plugins

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.12.3</version>
</dependency>
transmittable-thread-local - v2.12.3-RC1: support PriorityBlockingQueue with ThreadPoolExecutor

Published by oldratlee almost 3 years ago

Change Log

New Features

Support PriorityBlockingQueue with ThreadPoolExecutor.
Avoid ClassCastException(TtlRunnable cannot be cast to Comparable) problem for combination usage:

  • use java.util.concurrent.PriorityBlockingQueue for java.util.concurrent.ThreadPoolExecutor ThreadPoolExecutor
  • use TTL: API or Agent(TtlExecutorTransformlet)

  • new APIs
    • com.alibaba.ttl.threadpool.TtlExecutors#getTtlRunnableUnwrapComparator, javadoc
    • com.alibaba.ttl.threadpool.TtlExecutors#getTtlRunnableUnwrapComparatorForComparableRunnable, javadoc
  • new TTL Transformlet: com.alibaba.ttl.threadpool.agent.internal.transformlet.impl.TtlPriorityBlockingQueueTransformlet

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.12.3-RC1</version>
</dependency>
transmittable-thread-local - v2.12.2

Published by oldratlee about 3 years ago

Change Log

New Features

  • add TransmittableThreadLocal.withInitial static method
    • for #315 submitted by @Razor0719

Improvements

  • avoid ConcurrentModificationException even adjust TTL instances in biz lifecycle callbacks
    • for #293 submitted by @wmq930626 @Markkkkks
  • fix getDefaultDisableInheritable*ThreadFactory annotation: @Nullable -> @NonNull
  • upgrade dependencies
  • improve doc & javadoc ๐Ÿ“š
  • code cleanup

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.12.2</version>
</dependency>
transmittable-thread-local - v2.13.0-Beta1 ๐Ÿงฉ๐Ÿ”“

Published by oldratlee over 3 years ago

Caution:

  • This is a BETA version, DO NOT use in production environmentโ—๏ธ
  • The update content is NOT released in v2.x, and is developing on v3.x.

Change Log

New Features

  • support TTL Agent extension Transformlet ๐Ÿงฉ
    • sample project for TTL Agent extension Transformletdevelopment
    • Open whole agent package for TTL Agent extension Transformlet development ๐Ÿ”“
  • support TTL Agent configuration by JVM -D property
  • add new TTL option getter methods in TtlAgent

Improvements

  • fix getDefaultDisableInheritable*ThreadFactory annotation: Nullable -> NonNull

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.13.0-Beta1</version>
</dependency>
transmittable-thread-local - v2.12.1: a cleanup release โœจ๐Ÿ“šโ˜‚๏ธ

Published by oldratlee over 3 years ago

This version contains no new feature or bug fix but cleanup and documentation.

Change Log

Cleanups/Improvements

  • improve doc & javadoc ๐Ÿ“š
  • code cleanup
  • upgrade dependencies/maven plugins
  • add/upgrade CI jdks
  • fix codecov in CI โ˜‚๏ธ

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.12.1</version>
</dependency>
transmittable-thread-local - v2.12.0 ๐Ÿค๐Ÿ“š๐Ÿ”จ

Published by oldratlee almost 4 years ago

Change Log

New Features

  • TtlExecutors support idempotency
    • the wrapper Executors can be cooperated with the usage of "Decorate Runnable and Callable". ๐Ÿค
    • about idempotency: if is idempotent, allowed submit the TtlRunnable/TtlCallable to the wrapper Executor; otherwise throw IllegalStateException.

Improvements

  • improve doc & javadoc ๐Ÿ“š
  • code cleanup
  • adjust javassist shaded package:
    com.alibaba.ttl.internal.javassist -> com.alibaba.ttl.threadpool.agent.internal.javassist
  • improve ForkJoinPoolDemo and ParallelStreamDemo/add TtlForkJoinTaskDemo
  • upgrade dependencies

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.12.0</version>
</dependency>
transmittable-thread-local - Release 2.11.5 โ—๏ธ๐Ÿ‘จโ€๐Ÿš’

Published by oldratlee over 4 years ago

Change Log

Bug Fix โ€ผ๏ธ

  • fix bug: WeakHashMap in Snapshot led to captured values GCed before replay unexpectedly
    • Rollback "use WeakHashMap instead of HashMap for capture/backup snapshot" in v2.11.0
    • Affect versions v2.11.0 ~ v2.11.4, DO NOT use these versions, DO upgradeโ€ผ๏ธ

Improvements

  • using SDKMAN in Travis CI #163 ๐Ÿ‘จโ€๐Ÿš’

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.11.5</version>
</dependency>
transmittable-thread-local - Release 2.11.4 ๐ŸŒˆ๐Ÿฉ

Published by oldratlee over 4 years ago

Change Log

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

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

Features

  • add TTL Wrapper for common Functional Interfaces ๐ŸŒˆ
    • for #162 submitted by @liuzhongkai

Improvements

  • rename private methods of TTL
  • add TTL koroutine intergration demo ๐Ÿฉ
  • add CoroutineThreadLocalAsContextElementTest
  • improve docs/javadoc ๐Ÿ“š

Java API Doc

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

Maven dependency

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.11.4</version>
</dependency>
Package Rankings
Top 2.15% on Repo1.maven.org
Top 3.66% on Proxy.golang.org
Related Projects