/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠNet flix , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . netflix . spin n aker . k ork . plugins . update Ċ Ċ import Ġorg . pf 4 j . PluginManager Ċ import Ġorg . pf 4 j . update . Plugin Info Ċ import Ġorg . pf 4 j . update . Update Manager Ċ import Ġorg . pf 4 j . update . Update Repository Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . lang . Unsupported OperationException Ċ import Ġjava . nio . file . Path Ċ Ċ /** Ċ Ġ* ĠTODO ( rz ): ĠUpdate Ġ[ has Plugin Update ] Ġsuch Ġthat Ġit Ġunderstand s Ġthe Ġlatest Ġplugin Ġis Ġnot Ġalways Ġthe Ġone Ġdesired Ċ Ġ*/ Ċ class ĠSp inn aker Update Manager ( ĊĠ Ġplugin Manager : ĠPlugin Manager , ĊĠ Ġrepositories : ĠList < Update Repository > Ċ ) Ġ: ĠUpdate Manager ( plugin Manager , Ġrepositories ) Ġ{ ĊĊĠ Ġprivate Ġval Ġlog Ġby Ġlazy Ġ{ ĠLoggerFactory . getLogger ( java Class ) Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġmethod Ġis Ġnot Ġsupported Ġas Ġit Ġcalls Ġplugin Manager . load Plugin Ġand Ġplugin Manager . start Plugin . ĊĠĠ Ġ* ĠInstead , Ġwe Ġonly Ġwant Ġto Ġinstall Ġthe Ġplugins Ġ( see Ġ[ Plugin Update Service ]) Ġand Ġleave Ġloading ĊĠĠ Ġ* Ġand Ġstarting Ġto Ġ[ com . netflix . spin n aker . k ork . plugins . Extension Bean Definition Registry Post Processor ]. ĊĠĠ Ġ*/ ĊĠ Ġ@ Synchron ized ĊĠ Ġoverride Ġfun Ġinstall Plugin ( id : ĠString ?, Ġversion : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" Update Manager Ġinstall Plugin Ġis Ġnot Ġsupported ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġmethod Ġis Ġnot Ġsupported Ġas Ġit Ġcalls Ġplugin Manager . load Plugin Ġand Ġplugin Manager . start Plugin . ĊĠĠ Ġ* ĠInstead , Ġwe Ġonly Ġwant Ġto Ġinstall Ġthe Ġplugins Ġ( see Ġ[ Plugin Update Service ]) Ġand Ġleave Ġloading ĊĠĠ Ġ* Ġand Ġstarting Ġto Ġ[ com . netflix . spin n aker . k ork . plugins . Extension Bean Definition Registry Post Processor ]. ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġupdate Plugin ( id : ĠString ?, Ġversion : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠ Ġthrow ĠUnsupportedOperationException (" Update Manager Ġupdate Plugin Ġis Ġnot Ġsupported ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġis Ġthe Ġcurrent Ġstrategy Ġto Ġselect Ġa Ġplugin Ġfor Ġrelease ; Ġfind Ġthe Ġlatest Ġrelease ĊĠĠ Ġ* Ġversion Ġand Ġcheck Ġif Ġthat Ġrelease Ġrequires Ġthe Ġspecified ĠSp inn aker Ġservice . ĊĠĠ Ġ* ĊĠĠ Ġ* ĠTODO ( j ons ie ): ĠWe Ġwill Ġeventually Ġwant Ġto Ġfilter Ġbased Ġon Ġa Ġconfigured Ġplugin Ġversion Ġand Ġthe ĊĠĠ Ġ* Ġ Ġrequired Ġservice Ġversion Ġ( i . e . Ġecho >= 1 . 0 . 0 ). ĊĠĠ Ġ*/ ĊĠ Ġfun ĠgetLast Plugin Release ( plugin Id : ĠString , ĠserviceName : ĠString ): ĠPlugin Info . Plugin Release ? Ġ{ ĊĠĠĠ Ġval Ġlast Release Ġ= ĠgetLast Plugin Release ( plugin Id ) ĊĠĠĠ Ġif Ġ( last Release . requires . contains ( serviceName )) Ġreturn Ġlast Release ĊĠĠĠ Ġreturn Ġnull ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠEx ists Ġto Ġexpose Ġprotected Ġ[ download Plugin ] ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdownload Plugin Release ( plugin Id : ĠString , Ġversion : ĠString ): ĠPath Ġ{ ĊĠĠĠ Ġreturn Ġdownload Plugin ( plugin Id , Ġversion ) ĊĠ Ġ} Ċ } Ċ