package Ġde . f ay ard Ċ Ċ import Ġde . f ay ard . internal . Dependency Ċ import Ġde . f ay ard . internal . Dependency Graph Ċ import Ġde . f ay ard . internal . Plugin Config Ċ import Ġde . f ay ard . internal . Refresh Versions Extension Impl Ċ import Ġde . f ay ard . internal . Update Properties Ċ import Ġde . f ay ard . internal . log File Was Modified Ċ import Ġde . f ay ard . internal . parse Graph Ċ import Ġde . f ay ard . internal . sorted Be aut if ull y By Ċ import Ġorg . gradle . api . Action Ċ import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . tasks . Input Ċ import Ġorg . gradle . api . tasks . Optional Ċ import Ġorg . gradle . api . tasks . Task Action Ċ import Ġorg . gradle . api . tasks . options . Option Ċ import Ġorg . gradle . kotlin . dsl . getBy Type Ċ Ċ @ Suppress (" Un stable Api Usage ") Ċ open Ġclass ĠRefresh Versions Task Ġ: ĠDefault Task () Ġ{ ĊĊĠĠĠ Ġ@ Input ĊĠĠĠ Ġ@ Option ( description Ġ= Ġ" Update Ġall Ġversions , ĠI Ġwill Ġcheck Ġgit Ġdiff Ġafterwards ") ĊĠĠĠ Ġvar Ġupdate : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ@ Input ĊĠĠĠ Ġ@ Optional ĊĠĠĠ Ġ@ Option ( description Ġ= Ġ" Tabs Ġor ĠSp aces ?") ĊĠĠĠ Ġvar Ġindent : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġtask Action Gradle Properties () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġextension : ĠRefresh Versions Extension Impl Ġ= Ġextension () ĊĠĠĠĠĠĠĠ Ġval Ġupdate Gradle Properties Ġ= ĠUpdate Properties () ĊĊĠĠĠĠĠĠĠ Ġval Ġspecial Dependencies Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Plugin Config . gradle Versions Plugin , ĠPlugin Config . gradle Refresh Versions , ĠPlugin Config . gradle Latest Version ( dependency Graph )) ĊĊĠĠĠĠĠĠĠ Ġval Ġdependencies : ĠList < Dependency > Ġ= Ġ( un sorted Parsed Dependencies Ġ+ Ġspecial Dependencies ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted Be aut if ull y By ( extension . orderBy ) Ġ{ Ġit . version Property Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. distinct By Ġ{ Ġit . version Property Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġproperties File Ġ= Ġproject . file ( extension . properties File !! ) ĊĠĠĠĠĠĠĠ Ġval Ġexisted Ġ= Ġproperties File . can Read () ĊĠĠĠĠĠĠĠ Ġupdate Gradle Properties . generate Version Properties ( properties File , Ġdependencies ) ĊĠĠĠĠĠĠĠ Ġlog File Was Modified ( properties File . name , Ġexisted ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdependency Graph : ĠDependency Graph Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġextension : ĠRefresh Versions Extension Impl Ġ= Ġextension () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġwith ( Plugin Config ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Running Ġplugins . id ("$ PLUGIN _ ID "). version ("$ PLUGIN _ VERSION ") Ġwith Ġconfiguration : Ġ$ extension ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| See Ġdocumentation Ġat Ġ$ issue 5 3 Plugin Configuration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln ( message ) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Input Ġ= Ġproject . file ( Plugin Config . BEN MAN ES _ REPORT _ PATH ) ĊĊĠĠĠĠĠĠĠ Ġreturn @ lazy ĠPlugin Config . read Graph FromJson File ( json Input ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġun sorted Parsed Dependencies : ĠList < Dependency > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġparse Graph ( dependency Graph , Ġextension (). use F qq n For ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġd Ġ-> Ġd . maybe Update ( update Ġ|| Ġextension (). always Update Versions ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Input Ġ@ Optional Ġ@ Transient ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġ_ extension : ĠRefresh Versions Extension Impl ĊĊĠĠĠ Ġfun Ġconfigure ( action : ĠAction < Refresh Versions Extension >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Extension Ġ= Ġproject . extensions . getBy Type < Refresh Versions Extension >() Ġas ĠRefresh Versions Extension Impl ĊĠĠĠĠĠĠĠ Ġthis ._ extension Ġ= Ġproject Extension . def ensive Copy () ĊĠĠĠĠĠĠĠ Ġaction . execute ( this ._ extension ) ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġuse ĠDEFAULT _ MAPPING Ġinstead Ġof ĠALIGN _ VERSION _ GROUP S ĊĠĠĠĠĠĠĠ ĠPlugin Config . ALIGN _ VERSION _ GROUP S . clear () ĊĠĠĠĠĠĠĠ ĠPlugin Config . ALIGN _ VERSION _ GROUP S . addAll (_ extension . align Versions For Groups ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġextension (): ĠRefresh Versions Extension Impl Ġ= Ġ_ extension Ċ Ċ } Ċ