package Ġcom . av ito . instrumentation . final izer Ċ Ċ import Ġcom . av ito . android . stats . Stats DS ender Ċ import Ġcom . av ito . bitbucket . Bit bucket Ċ import Ġcom . av ito . instrumentation . Instrumentation Tests Action Ċ import Ġcom . av ito . instrumentation . report . Fl aky Test Reporter Impl Ċ import Ġcom . av ito . instrumentation . report . Has Failed Test Determin er Ċ import Ġcom . av ito . instrumentation . report . Has Not Reported Tests Determin er Ċ import Ġcom . av ito . instrumentation . report . JUnit Report Writer Ċ import Ġcom . av ito . instrumentation . report . Report Ċ import Ġcom . av ito . instrumentation . report . Send Statistics Action Impl Ċ import Ġcom . av ito . report . Report Viewer Ċ import Ġcom . av ito . slack . Con junction Message Update Condition Ċ import Ġcom . av ito . slack . Same Author Update Condition Ċ import Ġcom . av ito . slack . Slack Client Ċ import Ġcom . av ito . slack . Slack Conditional Sender Ċ import Ġcom . av ito . slack . Slack Message Updater Direct ly To Thread Ċ import Ġcom . av ito . slack . Today Message Condition Ċ import Ġcom . av ito . test . summary . Graph ite Run Writer Ċ import Ġcom . av ito . test . summary . Test Summary Sender Implementation Ċ import Ġcom . av ito . test . summary . summary Channel Ċ import Ġcom . av ito . time . Default Time Provider Ċ import Ġcom . av ito . utils . Build Fail er Ċ import Ġcom . av ito . utils . logging . CI Logger Ċ import Ġcom . google . common . annotations . Visible ForTesting Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Gson Builder Ċ Ċ interface ĠFinal izer Factory Ġ{ ĊĊĠĠĠ Ġfun Ġcreate (): ĠInstrument ation Test Action Final izer ĊĊĠĠĠ Ġclass ĠImp l Ġ: ĠFinal izer Factory Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġparams : ĠInstrument ation Tests Action . Params ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsource Report : ĠReport ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġgson : ĠGson ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġslack Client : ĠSlack Client ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbuild Fail er : ĠBuild Fail er ĊĊĠĠĠĠĠĠĠ Ġ// Ġtodo ĠMake Ġgeneric . ĠNeed Ġtwo Ġreal ization Ġfor ĠIn Memory Ġand ĠReport Viewer ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġreport Viewer : ĠReport Viewer ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger : ĠCI Logger ĊĊĠĠĠĠĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠĠĠĠĠ Ġinternal Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams : ĠInstrument ation Tests Action . Params , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Report : ĠReport , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgson : ĠGson Ġ= ĠGson Builder (). set Pretty Print ing (). create (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Fail er : ĠBuild Fail er , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġslack Client : ĠSlack Client ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . params Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . source Report Ġ= Ġsource Report ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . gson Ġ= Ġgson ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . slack Client Ġ= Ġslack Client ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . report Viewer Ġ= ĠReport Viewer . Impl ( params . report Viewer Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . logger Ġ= Ġparams . logger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . build Fail er Ġ= Ġbuild Fail er ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams : ĠInstrument ation Tests Action . Params , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Report : ĠReport , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgson : ĠGson ĊĠĠĠĠĠĠĠ Ġ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Report Ġ= Ġsource Report , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgson Ġ= Ġgson , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Fail er Ġ= ĠBuild Fail er . Real Fail er (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġslack Client Ġ= ĠSlack Client . Impl ( params . slack Token , Ġworkspace Ġ= Ġ" av ito ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate (): ĠInstrument ation Test Action Final izer Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhas Failed Test Determin er : ĠHas Failed Test Determin er Ġ= ĠHas Failed Test Determin er . Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuppress Failure Ġ= Ġparams . suppress Failure , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuppress Fl aky Ġ= Ġparams . suppress Fl aky ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠInstrument ation Test Action Final izer . Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Failed Test Determin er Ġ= Ġhas Failed Test Determin er , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Not Reported Tests Determin er Ġ= ĠHas Not Reported Tests Determin er . Impl (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Report Ġ= Ġsource Report , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= Ġparams , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflaky Test Reporter Ġ= Ġcreate Fl aky Test Reporter (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport Viewer Ġ= Ġreport Viewer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson Ġ= Ġgson , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Unit Report Writer Ġ= ĠJ Unit Report Writer ( report Viewer ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Fail er Ġ= Ġbuild Fail er , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Statistics Action Ġ= ĠSend Statistics Action Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Summary Sender Ġ= ĠTest Summary Sender Implementation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslack Client Ġ= Ġslack Client , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport Viewer Ġ= Ġreport Viewer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Url Ġ= Ġparams . build Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport Coordinates Ġ= Ġparams . report Coordinates , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit To Channel Mapping Ġ= Ġparams . unit To Channel Mapping , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport Ġ= Ġsource Report , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraph ite Run Writer Ġ= ĠGraph ite Run Writer ( create Stats DS ender ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġci Logger Ġ= Ġlogger ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Stats DS ender (): ĠStats DS ender . Impl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠStats DS ender . Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= Ġparams . stats d Config , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġ{ Ġmessage , Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ!= Ġnull ) Ġlogger . info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġelse Ġlogger . debug ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Fl aky Test Reporter (): ĠFl aky Test Reporter Impl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFl aky Test Reporter Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslack Client Ġ= ĠSlack Conditional Sender ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslack Client Ġ= Ġslack Client , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdater Ġ= ĠSlack Message Updater Direct ly To Thread ( slack Client , Ġlogger ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcondition Ġ= ĠCon junction Message Update Condition ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSame Author Update Condition (" Fl aky ĠTest ĠDetector "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToday Message Condition ( Default Time Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Channel Ġ= Ġsummary Channel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Author Ġ= Ġ" Fl aky ĠTest ĠDetector ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbit bucket Ġ= ĠBit bucket . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbit bucket Config Ġ= Ġparams . bitbucket Config , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpull RequestId Ġ= Ġparams . pull RequestId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Commit Hash Ġ= Ġparams . source Commit Hash , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport Viewer Ġ= Ġreport Viewer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Url Ġ= Ġparams . build Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Branch Ġ= Ġparams . current Branch , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport Coordinates Ġ= Ġparams . report Coordinates ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ