package Ġcom . github . bj orn v ester Ċ Ċ import Ġcom . github . bj orn v ester . Open Clo ver Plugin . Companion . log Db Dirs Ċ import Ġorg . gradle . api . file . Directory Property Ċ import Ġorg . gradle . api . plugins . Java Base Plugin Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . api . tasks .* Ċ import Ġorg . gradle . api . tasks . compile . Gro ovy Compile Ċ import Ġorg . gradle . api . tasks . compile . Java Compile Ċ import Ġorg . gradle . api . tasks . testing . Test Ċ Ċ @ Cache able Task Ċ open Ġclass ĠClo ver Test Task Ġ: ĠTest () Ġ{ ĊĠĠĠ Ġ@ get : Input Directory ĊĠĠĠ Ġvar Ġdb Dir Input : ĠDirectory Property Ġ= Ġproject . objects . directory Property () ĊĊĠĠĠ Ġ@ get : Output Directory ĊĠĠĠ Ġvar Ġdb Dir Output : ĠDirectory Property Ġ= Ġproject . objects . directory Property () ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġvar Ġdb Tmp DirPath : ĠProperty < String > Ġ= Ġproject . objects . property ( String :: class . java ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġgroup Ġ= ĠJava Base Plugin . VER IFICATION _ GROUP ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Runs Ġthe Ġunit Ġtest Ġusing ĠOpen Clo ver Ġinstrument ed Ġclasses ." ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġoverride Ġfun Ġexecute Tests () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcompile Java Task Ġ= Ġproject . tasks . named (" compile Java ", ĠJava Compile :: class . java ). get () ĊĠĠĠĠĠĠĠ Ġval Ġcompile Java Test Task Ġ= Ġproject . tasks . named (" compile Test Java ", ĠJava Compile :: class . java ). get () ĊĠĠĠĠĠĠĠ Ġval Ġcompile Inst Java Task Ġ= Ġproject . tasks . named ( Open Clo ver Plugin . CLO VER _ TASK _ COMPILE _ INST _ JAVA , ĠJava Compile :: class . java ). get () ĊĠĠĠĠĠĠĠ Ġval Ġcompile Inst Java Test Task Ġ= Ġproject . tasks . named ( Open Clo ver Plugin . CLO VER _ TASK _ COMPILE _ INST _ JAVA _ TEST , ĠJava Compile :: class . java ). get () ĊĠĠĠĠĠĠĠ Ġval Ġcompile Gro ovy Task Ġ= Ġproject . tasks . find ByName (" compile Gro ovy ") Ġas ? ĠGro ovy Compile ĊĠĠĠĠĠĠĠ Ġval Ġcompile Gro ovy Test Task Ġ= Ġproject . tasks . find ByName (" compile Test Gro ovy ") Ġas ? ĠGro ovy Compile ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Classpath Ġ= Ġclasspath . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Inst Gro ovy Task Ġ= Ġproject . tasks . find ByName ( Open Clo ver Plugin . CLO VER _ TASK _ COMPILE _ INST _ GRO OV Y _ JO INT _ JAVA ) Ġas ? ĠGro ovy Compile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Inst Gro ovy Test Task Ġ= Ġproject . tasks . find ByName ( Open Clo ver Plugin . CLO VER _ TASK _ COMPILE _ INST _ GRO OV Y _ JO INT _ JAVA _ TEST ) Ġas ? ĠGro ovy Compile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Java Task . destination Dir Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Inst Java Task . destination Dir ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Java Test Task . destination Dir Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Inst Java Test Task . destination Dir ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Gro ovy Task ?. destination Dir Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Inst Gro ovy Task ?. destination Dir ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Gro ovy Test Task ?. destination Dir Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Inst Gro ovy Test Task ?. destination Dir ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproject . logger . debug (" New Ġclasspath Ġfor Ġtask Ġ${ name }: Ġ$ new Classpath ") ĊĠĠĠĠĠĠĠ Ġval Ġclo ver Config Ġ= Ġproject . configurations . get ByName (" openc lover ") ĊĠĠĠĠĠĠĠ Ġclasspath Ġ= Ġproject . files ( new Classpath ) Ġ+ Ġclo ver Config ĊĊĠĠĠĠĠĠĠ Ġval Ġdb Dir Tmp Ġ= Ġproject . file ( db Tmp DirPath ) ĊĊĠĠĠĠĠĠĠ Ġproject . delete ( db Dir Tmp ) ĊĠĠĠĠĠĠĠ Ġproject . mkdir ( db Dir Tmp ) ĊĠĠĠĠĠĠĠ Ġproject . copy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( db Dir Input ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinto ( db Dir Tmp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper . execute Tests () ĊĊĠĠĠĠĠĠĠ Ġproject . sync Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( db Dir Tmp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinto ( db Dir Output ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproject . delete ( db Dir Tmp ) ĊĠĠĠĠĠĠĠ Ġlog Db Dirs ( this , Ġdb Dir Input , Ġdb Dir Output ) ĊĠĠĠ Ġ} Ċ }