Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
阿啄debugIT
transmittable-thread-local
提交
ab001d77
T
transmittable-thread-local
项目概览
阿啄debugIT
/
transmittable-thread-local
与 Fork 源项目一致
从无法访问的项目Fork
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
transmittable-thread-local
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ab001d77
编写于
9月 24, 2018
作者:
oldratlee
🔥
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add ci for jdk 12 and update realated docs
上级
b016ffca
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
31 addition
and
10 deletion
+31
-10
.travis.yml
.travis.yml
+6
-2
README-EN.md
README-EN.md
+1
-1
README.md
README.md
+2
-2
scripts/integration-test.sh
scripts/integration-test.sh
+11
-1
scripts/travis-prepare.sh
scripts/travis-prepare.sh
+11
-4
未找到文件。
.travis.yml
浏览文件 @
ab001d77
...
...
@@ -37,7 +37,7 @@ install:
script
:
# default oracle jdk 10, do build and test
-
switch_to_oracle_jdk10
-
./mvnw -V clean install
--batch-mode
-
./mvnw -V clean install
-
./scripts/run-agent-test.sh
# open jdk 6
-
jdk_switcher use openjdk6
...
...
@@ -71,6 +71,10 @@ script:
-
switch_to_open_jdk11
-
./scripts/run-junit.sh skipClean
-
./scripts/run-agent-test.sh skipClean
# open jdk 12
-
switch_to_open_jdk12
-
./scripts/run-junit.sh skipClean
-
./scripts/run-agent-test.sh skipClean
# codecov
-
jdk_switcher use oraclejdk8
-
./mvnw clean -V
...
...
@@ -78,7 +82,7 @@ script:
after_success
:
-
codecov
-
git status
-
git status
--ignored
# Caching Dependencies and Directories
# https://docs.travis-ci.com/user/caching/
...
...
README-EN.md
浏览文件 @
ab001d77
...
...
@@ -46,7 +46,7 @@
👉 The missing std Java™ lib(simple & 0-dependency) for framework/middleware,
transmitting ThreadLocal value between threads even using thread pooling components.
Support
`Java`
11/10/9/8/7/6.
Support
`Java`
1
2/1
1/10/9/8/7/6.
Class
[
`InheritableThreadLocal`
](
https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html
)
in
`JDK`
can transmit value to child thread from parent thread.
...
...
README.md
浏览文件 @
ab001d77
...
...
@@ -48,13 +48,13 @@
# 🔧 功能
👉 在使用线程池等会池化复用线程的组件情况下,提供
`ThreadLocal`
值的传递功能,解决异步执行时上下文传递的问题。
一个
`Java`
标准库本应为框架/中间件设施开发提供的标配能力,本库功能聚焦 & 0依赖,支持
`Java`
11/10/9/8/7/6。
一个
`Java`
标准库本应为框架/中间件设施开发提供的标配能力,本库功能聚焦 & 0依赖,支持
`Java`
1
2/1
1/10/9/8/7/6。
`JDK`
的
[
`InheritableThreadLocal`
](
https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html
)
类可以完成父线程到子线程的值传递。但对于使用线程池等会池化复用线程的组件的情况,线程由线程池创建好,并且线程是池化起来反复使用的;这时父子线程关系的
`ThreadLocal`
值传递已经没有意义,应用需要的实际上是把
**任务提交给线程池时**
的
`ThreadLocal`
值传递到
**任务执行时**
。
本库提供的
[
`TransmittableThreadLocal`
](
src/main/java/com/alibaba/ttl/TransmittableThreadLocal.java
)
类继承并加强
[
`InheritableThreadLocal`
](
https://docs.oracle.com/javase/10/docs/api/java/lang/InheritableThreadLocal.html
)
类,解决上述的问题,使用详见
[
User Guide
](
#-user-guide
)
。
整个库包含
`TTL`
核心功能
、线程池修饰及
`Agent`
支持(
`ExecutorService`
/
`ForkJoinPool`
),只有不到
**_8
00 `SLOC`代码行_**
,非常精小。
整个库包含
`TTL`
核心功能
(核心用户
`API`
与框架/中间件的集成
`API`
)、线程池修饰(
`ExecutorService`
/
`ForkJoinPool`
/
`TimerTask`
)及其
`Java Agent`
支持,只有不到
**_10
00 `SLOC`代码行_**
,非常精小。
欢迎 👏
...
...
scripts/integration-test.sh
浏览文件 @
ab001d77
...
...
@@ -21,7 +21,7 @@ else
fi
headInfo
"test with Java 10"
runCmd
"
${
MVN_CMD
[@]
}
"
clean
install
--batch-mode
runCmd
"
${
MVN_CMD
[@]
}
"
clean
install
runCmd ./scripts/run-agent-test.sh
# Java 6
...
...
@@ -73,3 +73,13 @@ if [ -n "$JAVA11_HOME" ]; then
else
headInfo
"skip Java 11 test"
fi
# Java 12
if
[
-n
"
$JAVA12_HOME
"
]
;
then
headInfo
"test with Java 12"
export
JAVA_HOME
=
"
${
JAVA12_HOME
}
"
runCmd ./scripts/run-junit.sh skipClean
runCmd ./scripts/run-agent-test.sh skipClean
else
headInfo
"skip Java 12 test"
fi
scripts/travis-prepare.sh
浏览文件 @
ab001d77
...
...
@@ -10,27 +10,34 @@ fi
switch_to_open_jdk9
()
{
export
JAVA_HOME
=
$HOME
/.jdk/openjdk9
if
[
!
-d
"
$JAVA_HOME
"
]
;
then
"
$install_jdk_bin
"
--feature
9
--license
GPL
--target
$JAVA_HOME
"
$install_jdk_bin
"
--feature
9
--license
GPL
--target
"
$JAVA_HOME
"
fi
}
switch_to_oracle_jdk10
()
{
export
JAVA_HOME
=
$HOME
/.jdk/oraclejdk10
if
[
!
-d
"
$JAVA_HOME
"
]
;
then
"
$install_jdk_bin
"
--feature
10
--license
BCL
--target
$JAVA_HOME
"
$install_jdk_bin
"
--feature
10
--license
BCL
--target
"
$JAVA_HOME
"
fi
}
switch_to_open_jdk10
()
{
export
JAVA_HOME
=
$HOME
/.jdk/openjdk10
if
[
!
-d
"
$JAVA_HOME
"
]
;
then
"
$install_jdk_bin
"
--feature
10
--license
GPL
--target
$JAVA_HOME
"
$install_jdk_bin
"
--feature
10
--license
GPL
--target
"
$JAVA_HOME
"
fi
}
switch_to_open_jdk11
()
{
export
JAVA_HOME
=
$HOME
/.jdk/openjdk11
if
[
!
-d
"
$JAVA_HOME
"
]
;
then
"
$install_jdk_bin
"
--feature
11
--license
GPL
--target
$JAVA_HOME
"
$install_jdk_bin
"
--feature
11
--license
GPL
--target
"
$JAVA_HOME
"
fi
}
switch_to_open_jdk12
()
{
export
JAVA_HOME
=
$HOME
/.jdk/openjdk12
if
[
!
-d
"
$JAVA_HOME
"
]
;
then
"
$install_jdk_bin
"
--feature
12
--license
GPL
--target
"
$JAVA_HOME
"
fi
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录