package Ġorg . jetbrains . intellij . tasks Ċ Ċ import Ġorg . gradle . api . file . Archive Operations Ċ import Ġorg . gradle . api . file . Directory Property Ċ import Ġorg . gradle . api . file . FileSystem Operations Ċ import Ġorg . gradle . api . internal . Convention Task Ċ import Ġorg . gradle . api . model . ObjectFactory Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . api . tasks . Input Ċ import Ġorg . gradle . api . tasks . Output Directory Ċ import Ġorg . gradle . api . tasks . Task Action Ċ import Ġorg . gradle . process . Exec Operations Ċ import Ġorg . gradle . util . VersionNumber Ċ import Ġorg . jetbrains . intellij . create Ċ import Ġorg . jetbrains . intellij . extract Archive Ċ import Ġjava . net . URI Ċ import Ġjavax . inject . Inject Ċ Ċ @ Suppress (" Un stable Api Usage ") Ċ open Ġclass ĠDownload Robot Server Plugin Task Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġobject Factory : ĠObject Factory , ĊĠĠĠ Ġprivate Ġval Ġarchive Operations : ĠArchive Operations , ĊĠĠĠ Ġprivate Ġval Ġexec Operations : ĠExec Operations , ĊĠĠĠ Ġprivate Ġval Ġfile System Operations : ĠFileSystem Operations , Ċ ) Ġ: ĠCon vention Task () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠR OB OT _ SERVER _ REPOSITORY Ġ= Ġ" https :// packages . jetbrains . team / maven / p / ij / intellij - dependencies " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠO LD _ ROBOT _ SERVER _ DEPEND ENCY Ġ= Ġ" org . jetbrains . test : robot - server - plugin " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNEW _ ROBOT _ SERVER _ DEPEND ENCY Ġ= Ġ" com . intellij . rem oter obot : robot - server - plugin " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEFAULT _ ROBOT _ SERVER _ PLUGIN _ VERSION Ġ= Ġ" 0 . 1 0 . 0 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Input ĊĠĠĠ Ġval Ġversion : ĠProperty < String > Ġ= Ġobject Factory . property ( String :: class . java ) ĊĊĠĠĠ Ġ@ Output Directory ĊĠĠĠ Ġval Ġoutput Dir : ĠDirectory Property Ġ= Ġobject Factory . directory Property () ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġprivate Ġval Ġdependency Handler Ġ= Ġproject . dependencies ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġprivate Ġval Ġrepository Handler Ġ= Ġproject . repositories ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġprivate Ġval Ġconfiguration Container Ġ= Ġproject . configurations ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġ@ Suppress (" Le aking This ") ĊĠĠĠ Ġprivate Ġval Ġcontext Ġ= Ġthis ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġdownload Plugin () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( group , Ġname ) Ġ= Ġget Dependency (). split (': ') ĊĠĠĠĠĠĠĠ Ġval Ġdependency Ġ= Ġdependency Handler . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġgroup , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġversion . get (), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= Ġrepository Handler . maven Ġ{ Ġit . url Ġ= ĠURI . create ( ROBOT _ SERVER _ REPOSITORY ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġoutput Dir . get (). as File ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġzip File Ġ= Ġconfiguration Container . det ached Configuration ( dependency ). single File ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextract Archive ( zip File , Ġtarget , Ġarchive Operations , Ġexec Operations , Ġfile System Operations , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository Handler . remove ( repository ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Dependency () Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ ĠVersion Number . parse ( version . get ()) Ġ< ĠVersion Number . parse (" 0 . 1 1 . 0 ") Ġ-> ĠO LD _ ROBOT _ SERVER _ DEPEND ENCY ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠNEW _ ROBOT _ SERVER _ DEPEND ENCY ĊĠĠĠ Ġ} Ċ } Ċ