package Ġcom . alibaba . ttl Ċ Ċ import Ġcom . alibaba . has T tl T tl Agent RunWith Disable Inherit able For ThreadPool Ċ import Ġcom . alibaba . support . junit . conditional . Below Java 7 Ċ import Ġcom . alibaba . support . junit . conditional . Conditional Ignore Rule Ċ import Ġcom . alibaba . support . junit . conditional . Conditional Ignore Rule . Conditional Ignore Ċ import Ġcom . alibaba . support . junit . conditional . Is Agent Run Ċ import Ġcom . alibaba . support . junit . conditional . Is Agent Run Or Below Java 7 Ċ import Ġcom . alibaba . ttl . thread pool . T tl Executors Ċ import Ġcom . alibaba . ttl . thread pool . T tl Fork Join Pool Helper Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertNull Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . Callable Ċ import Ġjava . util . concurrent . Executors Ċ import Ġjava . util . concurrent . Fork Join Pool Ċ import Ġjava . util . concurrent . ThreadPoolExecutor Ċ Ċ private Ġconst Ġval Ġhello Ġ= Ġ" hello " Ċ private Ġval ĠdefaultValue Ġ= Ġ"${ Date ()} Ġ${ Math . random () }" Ċ Ċ class ĠInherit able Test Ġ{ ĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġrule Ġ= ĠConditional Ignore Rule () ĊĊĠĠĠ Ġ// Ġ================================================= == ĊĠĠĠ Ġ// ĠExec utors ĊĠĠĠ Ġ// Ġ================================================= == ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinherit able _ Executors () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠExec utors . new Cached ThreadPool () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= ĠTrans mit table Thread Local < String ?> () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġget Ġ" hello " Ġvalue Ġis Ġtransmitted Ġby ĠInherit able Thread Local Ġfunction ! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNOTE : ĠExec utors . new Cached ThreadPool Ġcreate Ġthread Ġl az ily ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġthread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠIs Agent Run :: class ) ĊĠĠĠ Ġfun Ġdisable Inherit able _ Executors _ Disable Inherit able Thread Factory () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠExec utors . new Cached ThreadPool ( T tl Executors . getDefault Disable Inherit able Thread Factory ()) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= ĠTrans mit table Thread Local < String ?> () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen Ġttl Ġagent Ġis Ġloaded , ĠCallable Ġis Ġwrapped Ġwhen Ġsubmit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġso Ġhere Ġvalue Ġis Ġ" hello " Ġtransmitted Ġby ĠT tl Callable Ġwrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIG NORE Ġthis Ġtest Ġcase Ġwhen ĠT tl Agent Ġis Ġrun . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( thread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist Ġwhen Ġusing ĠDisable Inherit able Thread Factory ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠIs Agent Run :: class ) ĊĠĠĠ Ġfun Ġdisable Inherit able _ Executors _ T tl Disable Inherit able With Initial Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠExec utors . new Cached ThreadPool () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= Ġobject Ġ: ĠTrans mit table Thread Local < String ?> () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġchild Value ( parent Value : ĠString ?): ĠString ? Ġ= Ġinitial Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen Ġttl Ġagent Ġis Ġloaded , ĠCallable Ġis Ġwrapped Ġwhen Ġsubmit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġso Ġhere Ġvalue Ġis Ġ" hello " Ġtransmitted Ġby ĠT tl Callable Ġwrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIG NORE Ġthis Ġtest Ġcase Ġwhen ĠT tl Agent Ġis Ġrun . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( thread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠIs Agent Run :: class ) ĊĠĠĠ Ġfun Ġdisable Inherit able _ Executors _ T tl DefaultValue _ T tl Disable Inherit able With Initial Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠExec utors . new Cached ThreadPool () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= Ġobject Ġ: ĠTrans mit table Thread Local < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinitial Value (): ĠString Ġ= ĠdefaultValue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġchild Value ( parent Value : ĠString ): ĠString Ġ= Ġinitial Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen Ġttl Ġagent Ġis Ġloaded , ĠCallable Ġis Ġwrapped Ġwhen Ġsubmit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġso Ġhere Ġvalue Ġis Ġ" hello " Ġtransmitted Ġby ĠT tl Callable Ġwrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIG NORE Ġthis Ġtest Ġcase Ġwhen ĠT tl Agent Ġis Ġrun . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( defaultValue , Ġthread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist Ġwhen Ġusing ĠDisable Inherit able Thread Factory ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠIs Agent Run :: class ) ĊĠĠĠ Ġfun Ġdisable Inherit able _ Executors _ T tl DefaultValue _ Disable Inherit able Thread Factory _ T tl With Initial Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠExec utors . new Cached ThreadPool ( T tl Executors . getDefault Disable Inherit able Thread Factory ()) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= Ġobject Ġ: ĠTrans mit table Thread Local < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinitial Value (): ĠString Ġ= ĠdefaultValue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġchild Value ( parent Value : ĠString ): ĠString Ġ= Ġinitial Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen Ġttl Ġagent Ġis Ġloaded , ĠCallable Ġis Ġwrapped Ġwhen Ġsubmit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġso Ġhere Ġvalue Ġis Ġ" hello " Ġtransmitted Ġby ĠT tl Callable Ġwrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIG NORE Ġthis Ġtest Ġcase Ġwhen ĠT tl Agent Ġis Ġrun . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( defaultValue , Ġthread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist Ġwhen Ġusing ĠDisable Inherit able Thread Factory ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdisable Inherit able _ Executors _ By Agent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠExec utors . new Cached ThreadPool () Ġas ĠThreadPool Executor ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( has T tl T tl Agent RunWith Disable Inherit able For ThreadPool (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT tl Executors . is Disable Inherit able Thread Factory ( thread Pool . thread Factory )) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ================================================= == ĊĠĠĠ Ġ// ĠFork Join Pool ĊĠĠĠ Ġ// Ġ================================================= == ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠBelow Java 7 :: class ) ĊĠĠĠ Ġfun Ġinherit able _ Fork Join Pool () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠFork Join Pool ( 4 ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= ĠTrans mit table Thread Local < String ?> () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġget Ġ" hello " Ġvalue Ġis Ġtransmitted Ġby ĠInherit able Thread Local Ġfunction ! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNOTE : ĠExec utors . new Cached ThreadPool Ġcreate Ġthread Ġl az ily ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġthread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠIs Agent Run Or Below Java 7 :: class ) ĊĠĠĠ Ġfun Ġdisable Inherit able _ Fork Join Pool _ Disable Inherit able Fork Join Worker Thread Factory () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠFork Join Pool ( 4 , ĠT tl Fork Join Pool Helper . getDefault Disable Inherit able Fork Join Worker Thread Factory (), Ġnull , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= ĠTrans mit table Thread Local < String ?> () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen Ġttl Ġagent Ġis Ġloaded , ĠCallable Ġis Ġwrapped Ġwhen Ġsubmit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġso Ġhere Ġvalue Ġis Ġ" hello " Ġtransmitted Ġby ĠT tl Callable Ġwrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIG NORE Ġthis Ġtest Ġcase Ġwhen ĠT tl Agent Ġis Ġrun . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( thread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist Ġwhen Ġusing ĠDisable Inherit able Fork Join Worker Thread Factory ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠIs Agent Run Or Below Java 7 :: class ) ĊĠĠĠ Ġfun Ġdisable Inherit able _ Fork Join Pool _ T tl Disable Inherit able With Initial Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠFork Join Pool ( 4 ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= Ġobject Ġ: ĠTrans mit table Thread Local < String ?> () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġchild Value ( parent Value : ĠString ?): ĠString ? Ġ= Ġinitial Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen Ġttl Ġagent Ġis Ġloaded , ĠCallable Ġis Ġwrapped Ġwhen Ġsubmit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġso Ġhere Ġvalue Ġis Ġ" hello " Ġtransmitted Ġby ĠT tl Callable Ġwrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIG NORE Ġthis Ġtest Ġcase Ġwhen ĠT tl Agent Ġis Ġrun . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( thread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠIs Agent Run Or Below Java 7 :: class ) ĊĠĠĠ Ġfun Ġdisable Inherit able _ Fork Join Pool _ T tl DefaultValue _ T tl Disable Inherit able With Initial Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠFork Join Pool ( 4 ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= Ġobject Ġ: ĠTrans mit table Thread Local < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinitial Value (): ĠString Ġ= ĠdefaultValue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġchild Value ( parent Value : ĠString ): ĠString Ġ= Ġinitial Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen Ġttl Ġagent Ġis Ġloaded , ĠCallable Ġis Ġwrapped Ġwhen Ġsubmit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġso Ġhere Ġvalue Ġis Ġ" hello " Ġtransmitted Ġby ĠT tl Callable Ġwrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIG NORE Ġthis Ġtest Ġcase Ġwhen ĠT tl Agent Ġis Ġrun . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( defaultValue , Ġthread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠIs Agent Run Or Below Java 7 :: class ) ĊĠĠĠ Ġfun Ġdisable Inherit able _ Fork Join Pool _ T tl DefaultValue _ Disable Inherit able Fork Join Worker Thread Factory _ T tl With Initial Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠFork Join Pool ( 4 , ĠT tl Fork Join Pool Helper . getDefault Disable Inherit able Fork Join Worker Thread Factory (), Ġnull , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġttl Ġ= Ġobject Ġ: ĠTrans mit table Thread Local < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinitial Value (): ĠString Ġ= ĠdefaultValue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġchild Value ( parent Value : ĠString ): ĠString Ġ= Ġinitial Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġttl . set ( hello ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallable Ġ= ĠCallable Ġ{ Ġttl . get () Ġ} Ġ// ĠNO ĠT tl Wrapper ( T tl Callable ) Ġhere !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen Ġttl Ġagent Ġis Ġloaded , ĠCallable Ġis Ġwrapped Ġwhen Ġsubmit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġso Ġhere Ġvalue Ġis Ġ" hello " Ġtransmitted Ġby ĠT tl Callable Ġwrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIG NORE Ġthis Ġtest Ġcase Ġwhen ĠT tl Agent Ġis Ġrun . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( defaultValue , Ġthread Pool . submit ( callable ). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrent Ġthread 's ĠTTL Ġmust Ġbe Ġexist Ġwhen Ġusing ĠDisable Inherit able Fork Join Worker Thread Factory ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( hello , Ġttl . get ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Conditional Ignore ( condition Ġ= ĠBelow Java 7 :: class ) ĊĠĠĠ Ġfun Ġdisable Inherit able _ Fork Join Pool _ By Agent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Pool Ġ= ĠFork Join Pool ( 4 ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( has T tl T tl Agent RunWith Disable Inherit able For ThreadPool (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT tl Fork Join Pool Helper . is Disable Inherit able Fork Join Worker Thread Factory ( thread Pool . factory )) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Pool . shutdown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ