package Ġcom . be ust . k ob alt . misc Ċ Ċ import Ġcom . be ust . k ob alt . K ob alt Exception Ċ import Ġcom . be ust . k ob alt . api . Project Ċ import Ġcom . be ust . k ob alt . maven . Dependency Manager Ċ import Ġcom . be ust . k ob alt . maven . Maven Id Ċ import Ġcom . be ust . k ob alt . maven . ae ther . Ae ther Dependency Ċ import Ġcom . be ust . k ob alt . maven . ae ther . K ob alt Maven Resolver Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠFind Ġout Ġif Ġany Ġnewer Ġversions Ġof Ġthe Ġdependencies Ġare Ġavailable . Ċ Ġ*/ Ċ class ĠCheck Versions Ġ@ Inject Ġconstructor ( val Ġdep Manager : ĠDependency Manager , ĊĠĠĠĠĠĠĠ Ġval Ġexec utors Ġ: ĠK ob alt Executors , Ġval Ġresolver : ĠK ob alt Maven Resolver ) Ġ{ ĊĊĠĠĠ Ġfun Ġrun ( projects : ĠList < Project >) Ġ= Ġprojects . forEach Ġ{ Ġrun ( it ) Ġ} ĊĊĠĠĠ Ġfun Ġrun ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexecutor Ġ= Ġexec utors . new Executor (" Check Versions ", Ġ 5 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Versions Ġ= Ġhash Set Of < String >() ĊĠĠĠĠĠĠĠ ĠlistOf ( project . compile Dependencies , Ġproject . test Dependencies ). forEach Ġ{ Ġcds Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcds . forEach Ġ{ Ġdep Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Maven Id . is Maven Id ( dep . id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlatest Dep Ġ= Ġdep Manager . create ( dep . short Id , Ġfalse , Ġproject . directory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġartifact Ġ= Ġ( latest Dep Ġas ĠA ether Dependency ). artifact ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrange Result Ġ= Ġresolver . resolve Range ( artifact ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( range Result Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhighest Ġ= Ġrange Result . highest Version ?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( highest Ġ!= Ġnull Ġ&& Ġhighest Ġ!= Ġdep . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠString Version ( highest ) Ġ> ĠString Version ( dep . version )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Versions . add ( artifact . groupId Ġ+ Ġ":" Ġ+ Ġartifact . artifactId Ġ+ Ġ":" Ġ+ Ġhighest ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠK ob alt Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk ob alt Log ( 1 , Ġ" Ġ ĠCannot Ġresolve Ġ${ dep . short Id }. Ġignoring ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( new Versions . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġk ob alt Log ( 1 , Ġ" Ġ ĠNew Ġversions Ġfound :") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Versions . forEach Ġ{ Ġk ob alt Log ( 1 , Ġ" ĠĠĠ Ġ$ it ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġk ob alt Log ( 1 , Ġ" Ġ ĠAll Ġdependencies Ġup Ġto Ġdate ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexecutor . shutdown () ĊĠĠĠ Ġ} Ċ } Ċ