package Ġcom . cogn if ide . gradle . a em . instance Ċ Ċ import Ġcom . cogn if ide . gradle . a em . common .* Ċ import Ġcom . cogn if ide . gradle . a em . common . http . RequestException Ċ import Ġcom . cogn if ide . gradle . a em . common . http . Response Exception Ċ import Ġcom . cogn if ide . gradle . a em . pkg .* Ċ import Ġcom . cogn if ide . gradle . a em . pkg . tasks . Compose Ċ import Ġjava . io . File Ċ import Ġjava . io . FileNotFoundException Ċ import Ġorg . apache . commons . io . Filename Utils Ċ import Ġorg . js oup . J soup Ċ import Ġorg . js oup . parser . Parser Ċ import Ġorg . zer ot urn around . zip . Zip Util Ċ Ċ @ Suppress (" Large Class ", Ġ" Too Many Functions ") Ċ class ĠInstance Sync ( a em : ĠA em Extension , Ġinstance : ĠInstance ) Ġ: ĠInstance HttpClient ( a em , Ġinstance ) Ġ{ ĊĊĠĠĠ Ġfun Ġget Package ( file : ĠFile , Ġrefresh : ĠBoolean Ġ= Ġtrue , Ġretry : ĠRetry Ġ= Ġa em . retry ()): ĠPackage Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠPackage Exception (" Package Ġ$ file Ġdoes Ġnot Ġexist Ġso Ġit Ġcannot Ġbe Ġresolved Ġon Ġ$ instance ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresolve Package ( file , Ġrefresh , Ġretry ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠInstance Exception (" Package Ġis Ġnot Ġuploaded Ġon Ġ$ instance ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Package ( group : ĠString , Ġname : ĠString , Ġversion : ĠString , Ġrefresh : ĠBoolean Ġ= Ġtrue , Ġretry : ĠRetry Ġ= Ġa em . retry ()): ĠPackage Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġresolve Package ( group , Ġname , Ġversion , Ġrefresh , Ġretry ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠInstance Exception (" Package Ġ${ Package . coordinates ( group , Ġname , Ġversion )} ' Ġis Ġnot Ġuploaded Ġon Ġ$ instance ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġresolve Package ( file : ĠFile , Ġrefresh : ĠBoolean Ġ= Ġtrue , Ġretry : ĠRetry Ġ= Ġa em . retry ()): ĠPackage ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Zip Util . contains Entry ( file , ĠPackage . VL T _ PROPERTIES )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠPackage Exception (" File Ġis Ġnot Ġa Ġvalid ĠCR X Ġpackage : Ġ$ file ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġxml Ġ= ĠZip Util . unpack Entry ( file , ĠPackage . VL T _ PROPERTIES ). toString ( Charsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠJ soup . parse ( xml , Ġ"", ĠParser . xml Parser ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= Ġdoc . select (" entry [ key = group ]"). text () ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġdoc . select (" entry [ key = name ]"). text () ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġdoc . select (" entry [ key = version ]"). text () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresolve Package ( group , Ġname , Ġversion , Ġrefresh , Ġretry ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġresolve Package ( compose : ĠCompose , Ġrefresh : ĠBoolean Ġ= Ġtrue , Ġretry : ĠRetry Ġ= Ġa em . retry ()): ĠPackage ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġresolve Package ({ Ġit . resolve Package ( project , ĠPackage ( compose )) Ġ}, Ġrefresh , Ġretry ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġresolve Package ( group : ĠString , Ġname : ĠString , Ġversion : ĠString , Ġrefresh : ĠBoolean Ġ= Ġtrue , Ġretry : ĠRetry Ġ= Ġa em . retry ()): ĠPackage ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġresolve Package ({ Ġit . resolve Package ( project , ĠPackage ( group , Ġname , Ġversion )) Ġ}, Ġrefresh , Ġretry ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġresolve Package ( resolver : Ġ( ListResponse ) Ġ-> ĠPackage ?, Ġrefresh : ĠBoolean , Ġretry : ĠRetry Ġ= Ġa em . retry ()): ĠPackage ? Ġ{ ĊĠĠĠĠĠĠĠ Ġa em . logger . debug (" As king Ġfor Ġuploaded Ġpackages Ġon Ġ$ instance ") ĊĊĠĠĠĠĠĠĠ Ġval Ġpackages Ġ= ĠBuild Scope . of ( project ). get Or Put (" instance .${ instance . name }. packages ", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Packages ( retry ) ĊĠĠĠĠĠĠĠ Ġ}, Ġrefresh ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresolver ( packages ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlist Packages ( retry : ĠRetry Ġ= Ġa em . retry ()): ĠList Response Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretry . launch < ListResponse , ĠInstance Exception >(" list Ġpackages ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Multipart ( PKG _ MANAGER _ LIST _ JSON ) Ġ{ Ġas Object FromJson ( it , ĠList Response :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRequest Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġlist Ġpackages Ġon Ġ$ instance . ĠReason : Ġrequest Ġfailed .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Malformed Ġresponse Ġafter Ġlisting Ġpackages Ġon Ġ$ instance .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupload Package ( file : ĠFile , Ġforce : ĠBoolean Ġ= Ġtrue , Ġretry : ĠRetry Ġ= Ġa em . retry ()): ĠUpload Response Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretry . launch < Upload Response , ĠInstance Exception >(" upload Ġpackage ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"$ PKG _ MANAGER _ JSON _ PATH /? cmd = upload " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Up loading Ġpackage Ġ$ file Ġto Ġ$ instance '") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Multipart ( url , Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" package " Ġto Ġfile , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" force " Ġto Ġ( force Ġ|| Ġis Snapshot ( file )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) Ġ{ Ġas Object FromJson ( it , ĠUpload Response :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFileNotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠPackage Exception (" Package Ġfile Ġ$ file Ġto Ġbe Ġuploaded Ġnot Ġfound !", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRequest Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġupload Ġpackage Ġ$ file Ġto Ġ$ instance . ĠReason : Ġrequest Ġfailed .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Malformed Ġresponse Ġafter Ġuploading Ġpackage Ġ$ file Ġto Ġ$ instance .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! response . is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġupload Ġpackage Ġ$ file Ġto Ġ$ instance . ĠReason : Ġ${ interpret Fail ( response . msg )}. ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġpackage Ġon Ġthe Ġfly , Ġupload Ġit Ġto Ġinstance Ġthen Ġbuild Ġit . ĊĠĠĠĠ Ġ* ĠFinally Ġdownload Ġbuilt Ġpackage Ġby Ġreplacing Ġit Ġwith Ġinitially Ġcreated . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload Package ( definition : ĠPackage Definition . () Ġ-> ĠUnit , Ġretry : ĠRetry ): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretry . launch < File , ĠInstance Exception >(" download Ġpackage ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġa em . compose Package Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġ" download " Ġ// Ġprevents ĠCR X Ġpackage Ġfrom Ġtask Ġ' Compose ' Ġbeing Ġreplaced ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefinition () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpath : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpkg Ġ= Ġupload Package ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile . delete () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġpkg . path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Package ( path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownload Package ( path , Ġfile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( path Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Package ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfile ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdownload Package ( definition : ĠPackage Definition . () Ġ-> ĠUnit ) Ġ= Ġdownload Package ( definition , Ġa em . retry ()) ĊĊĠĠĠ Ġfun Ġdownload Package ( remote Path : ĠString , Ġtarget File : ĠFile Ġ= Ġa em . temporary File ( Filename Utils . getName ( remote Path )), Ġretry : ĠRetry Ġ= Ġa em . retry ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretry . launch < Unit , ĠInstance Exception >(" download Ġpackage ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Downloading Ġpackage Ġfrom Ġ$ remote Path Ġto Ġfile Ġ$ target File ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownload ( remote Path , Ġtarget File ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! target File . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Downloaded Ġpackage Ġis Ġmissing : Ġ${ target File . path }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild Package ( remote Path : ĠString ): ĠPackage Build Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"$ PKG _ MANAGER _ JSON _ PATH $ remote Path /? cmd = build " ĊĊĠĠĠĠĠĠĠ Ġa em . logger . info (" Building Ġpackage Ġ$ remote Path Ġon Ġ$ instance ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Multipart ( url ) Ġ{ Ġas Object FromJson ( it , ĠPackage Build Response :: class . java ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRequest Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġbuild Ġpackage Ġ$ remote Path Ġon Ġ$ instance . ĠReason : Ġrequest Ġfailed .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Malformed Ġresponse Ġafter Ġbuilding Ġpackage Ġ$ remote Path Ġon Ġ$ instance .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! response . is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġbuild Ġpackage Ġ$ remote Path Ġon Ġ$ instance . ĠReason : Ġ${ interpret Fail ( response . msg )}. ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinstall Package ( remote Path : ĠString , Ġrecursive : ĠBoolean Ġ= Ġtrue , Ġretry : ĠRetry Ġ= Ġa em . retry ()): ĠInstall Response Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretry . launch < Install Response , ĠInstance Exception >(" install Ġpackage ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"$ PKG _ MANAGER _ HTML _ PATH $ remote Path /? cmd = install " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Installing Ġpackage Ġ$ remote Path Ġon Ġ$ instance ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Multipart ( url , Ġmap Of (" recursive " Ġto Ġrecursive )) Ġ{ ĠInstall Response . from ( as Stream ( it ), Ġa em . config . package Response Buffer ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRequest Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġinstall Ġpackage Ġ$ remote Path Ġon Ġ$ instance . ĠReason : Ġrequest Ġfailed .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Malformed Ġresponse Ġafter Ġinstalling Ġpackage Ġ$ remote Path Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . has Package Errors ( a em . config . package Errors )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠPackage Exception (" Cannot Ġinstall Ġmalformed Ġpackage Ġ$ remote Path Ġon Ġ$ instance . ĠStatus : Ġ${ response . status }. ĠErrors : Ġ${ response . errors }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! response . success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġinstall Ġpackage Ġ$ remote Path Ġon Ġ$ instance . ĠStatus : Ġ${ response . status }. ĠErrors : Ġ${ response . errors }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinterpret Fail ( message : ĠString ): ĠString Ġ= Ġwhen Ġ( message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// forums . adobe . com / thread / 2 3 3 8 2 9 0 ĊĠĠĠĠĠĠĠ Ġ" In accessible Ġvalue " Ġ-> Ġ" no Ġdisk Ġspace Ġleft Ġ( server Ġrespond Ġwith Ġ'$ message '}) " ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġmessage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Snapshot ( file : ĠFile ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPattern s . wildcard ( file , Ġa em . config . package Snapshots ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdeploy Package ( ĊĠĠĠĠĠĠĠ Ġfile : ĠFile , ĊĠĠĠĠĠĠĠ Ġupload Force : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġupload Retry : ĠRetry Ġ= Ġa em . retry (), ĊĠĠĠĠĠĠĠ Ġinstall Recursive : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġinstall Retry : ĠRetry Ġ= Ġa em . retry () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupload Response Ġ= Ġupload Package ( file , Ġupload Force , Ġupload Retry ) ĊĠĠĠĠĠĠĠ Ġinstall Package ( upload Response . path , Ġinstall Recursive , Ġinstall Retry ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdistribute Package ( ĊĠĠĠĠĠĠĠ Ġfile : ĠFile , ĊĠĠĠĠĠĠĠ Ġupload Force : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġupload Retry : ĠRetry Ġ= Ġa em . retry (), ĊĠĠĠĠĠĠĠ Ġinstall Recursive : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġinstall Retry : ĠRetry Ġ= Ġa em . retry () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupload Response Ġ= Ġupload Package ( file , Ġupload Force , Ġupload Retry ) ĊĠĠĠĠĠĠĠ Ġval Ġpackage Path Ġ= Ġupload Response . path ĊĊĠĠĠĠĠĠĠ Ġinstall Package ( package Path , Ġinstall Recursive , Ġinstall Retry ) ĊĠĠĠĠĠĠĠ Ġactivate Package ( package Path ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġactivate Package ( remote Path : ĠString ): ĠUpload Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"$ PKG _ MANAGER _ JSON _ PATH $ remote Path /? cmd = replic ate " ĊĊĠĠĠĠĠĠĠ Ġa em . logger . info (" Activ ating Ġpackage Ġ$ remote Path Ġon Ġ$ instance ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Multipart ( url ) Ġ{ Ġas Object FromJson ( it , ĠUpload Response :: class . java ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRequest Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġactivate Ġpackage Ġ$ remote Path Ġon Ġ$ instance . ĠReason : Ġrequest Ġfailed .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Malformed Ġresponse Ġafter Ġactiv ating Ġpackage Ġ$ remote Path Ġon Ġ$ instance .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! response . is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġactivate Ġpackage Ġ$ remote Path Ġon Ġ$ instance . ĠReason : Ġ${ interpret Fail ( response . msg )}. ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Package ( remote Path : ĠString ): ĠDelete Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"$ PKG _ MANAGER _ HTML _ PATH $ remote Path /? cmd = delete " ĊĊĠĠĠĠĠĠĠ Ġa em . logger . info (" Deleting Ġpackage Ġ$ remote Path Ġon Ġ$ instance ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Multipart ( url ) Ġ{ ĠDelete Response . from ( as Stream ( it ), Ġa em . config . package Response Buffer ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRequest Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġdelete Ġpackage Ġ$ remote Path Ġfrom Ġ$ instance . ĠReason : Ġrequest Ġfailed .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Malformed Ġresponse Ġafter Ġdeleting Ġpackage Ġ$ remote Path Ġfrom Ġ$ instance .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! response . success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġdelete Ġpackage Ġ$ remote Path Ġfrom Ġ$ instance . ĠStatus : Ġ${ response . status }. ĠErrors : Ġ${ response . errors }. ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġuninstall Package ( remote Path : ĠString ): ĠUn install Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"$ PKG _ MANAGER _ HTML _ PATH $ remote Path /? cmd = uninstall " ĊĊĠĠĠĠĠĠĠ Ġa em . logger . info (" Un installing Ġpackage Ġusing Ġcommand : Ġ$ url ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Multipart ( url ) Ġ{ ĠUn install Response . from ( as Stream ( it ), Ġa em . config . package Response Buffer ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRequest Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġuninstall Ġpackage Ġ$ remote Path Ġon Ġ$ instance . ĠReason : Ġrequest Ġfailed .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Malformed Ġresponse Ġafter Ġuninstall ing Ġpackage Ġ$ remote Path Ġfrom Ġ$ instance .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! response . success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġuninstall Ġpackage Ġ$ remote Path Ġfrom Ġ$ instance . ĠStatus : Ġ${ response . status }. ĠErrors : Ġ${ response . errors }. ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdetermine InstanceState (): ĠInstance State Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠInstance State ( this , Ġinstance ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdetermine Bundle State (): ĠBundle State Ġ{ ĊĠĠĠĠĠĠĠ Ġa em . logger . debug (" As king Ġfor ĠOS Gi Ġbundles Ġon Ġ$ instance ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( OS GI _ B UND LES _ LIST _ JSON ) Ġ{ Ġas Object FromJson ( it , ĠBundle State :: class . java ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠA em Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . debug (" Cannot Ġrequest ĠOS Gi Ġbundles Ġstate Ġon Ġ$ instance ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBundle State . unknown ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind Bundle ( s ymbolic Name : ĠString ): ĠBundle ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdetermine Bundle State (). bundles . find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsymbolic Name . equals ( it . s ymbolic Name , Ġignore Case Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Bundle ( s ymbolic Name : ĠString ): ĠBundle Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfind Bundle ( s ymbolic Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠInstance Exception (" OS Gi Ġbundle Ġ'$ s ymbolic Name ' Ġcannot Ġbe Ġfound Ġon Ġ$ instance .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Bundle ( s ymbolic Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġget Bundle ( s ymbolic Name ) ĊĠĠĠĠĠĠĠ Ġif Ġ( bundle . stable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Not Ġstarting Ġalready Ġstarted ĠOS Gi Ġ$ bundle Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġa em . logger . info (" Starting ĠOS Gi Ġ$ bundle Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠ Ġpost ("$ OS GI _ B UND LES _ PATH /${ bundle . id }", Ġmap Of (" action " Ġto Ġ" start ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Bundle ( s ymbolic Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġget Bundle ( s ymbolic Name ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! bundle . stable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Not Ġstopping Ġalready Ġstopped ĠOS Gi Ġ$ bundle Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġa em . logger . info (" Stopping ĠOS Gi Ġ$ bundle Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠ Ġpost ("$ OS GI _ B UND LES _ PATH /${ bundle . id }", Ġmap Of (" action " Ġto Ġ" stop ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestart Bundle ( s ymbolic Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstop Bundle ( s ymbolic Name ) ĊĠĠĠĠĠĠĠ Ġstart Bundle ( s ymbolic Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrefresh Bundle ( s ymbolic Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġget Bundle ( s ymbolic Name ) ĊĠĠĠĠĠĠĠ Ġa em . logger . info (" Refresh ing ĠOS Gi Ġ$ bundle Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠ Ġpost ("$ OS GI _ B UND LES _ PATH /${ bundle . s ymbolic Name }", Ġmap Of (" action " Ġto Ġ" refresh ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Bundle ( s ymbolic Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġget Bundle ( s ymbolic Name ) ĊĠĠĠĠĠĠĠ Ġa em . logger . info (" Updating ĠOS Gi Ġ$ bundle Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠ Ġpost ("$ OS GI _ B UND LES _ PATH /${ bundle . s ymbolic Name }", Ġmap Of (" action " Ġto Ġ" update ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdetermine Component State (): ĠComponent State Ġ{ ĊĠĠĠĠĠĠĠ Ġa em . logger . debug (" As king Ġfor ĠOS Gi Ġcomponents Ġon Ġ$ instance ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( OS GI _ COMPONENTS _ LIST _ JSON ) Ġ{ Ġas Object FromJson ( it , ĠComponent State :: class . java ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠA em Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . debug (" Cannot Ġdetermine ĠOS Gi Ġcomponents Ġstate Ġon Ġ$ instance ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComponent State . unknown () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind Component ( pid : ĠString ): ĠComponent ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdetermine Component State (). components . find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpid . equals ( it . pid , Ġignore Case Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Component ( pid : ĠString ): ĠComponent Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfind Component ( pid ) Ġ?: Ġthrow ĠInstance Exception (" OS Gi Ġcomponent Ġ'$ pid ' Ġcannot Ġbe Ġfound Ġon Ġ$ instance .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġenable Component ( pid : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġget Component ( pid ) ĊĠĠĠĠĠĠĠ Ġif Ġ( component . id . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Not Ġenabling Ġalready Ġenabled ĠOS Gi Ġ$ component Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġa em . logger . info (" En abling ĠOS Gi Ġ$ component Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠ Ġpost ("$ OS GI _ COMPONENTS _ PATH /${ component . pid }", Ġmap Of (" action " Ġto Ġ" enable ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisable Component ( pid : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġget Component ( pid ) ĊĠĠĠĠĠĠĠ Ġif Ġ( component . id . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Not Ġdisabling Ġalready Ġdisabled ĠOS Gi Ġ$ component Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġa em . logger . info (" Dis abling ĠOS Gi Ġ$ component Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠ Ġpost ("$ OS GI _ COMPONENTS _ PATH /${ component . id }", Ġmap Of (" action " Ġto Ġ" disable ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestart Component ( pid : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdisable Component ( pid ) ĊĠĠĠĠĠĠĠ Ġenable Component ( pid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestart Framework () Ġ= Ġshutdown Framework (" Restart ") ĊĊĠĠĠ Ġfun Ġstop Framework () Ġ= Ġshutdown Framework (" Stop ") ĊĊĠĠĠ Ġprivate Ġfun Ġshutdown Framework ( type : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Trigger ing ĠOS Gi Ġframework Ġshutdown Ġon Ġ$ instance .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Ur len coded ( OS GI _ VM STAT _ PATH , Ġmap Of (" shutdown _ type " Ġto Ġtype )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠA em Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġtrigger Ġshutdown Ġof Ġ$ instance .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġeval Gro ovy Code ( code : ĠString , Ġdata : ĠMap < String , ĠAny > Ġ= Ġmap Of (), Ġverbose : ĠBoolean Ġ= Ġtrue ): ĠGro ovy Console Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Executing ĠGro ovy ĠCode : Ġ$ code ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeval Gro ovy Code Internal ( code , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠA em Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġevaluate ĠGro ovy Ġcode Ġproperly Ġon Ġ$ instance , Ġcode :\ n $ code ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( verbose Ġ&& Ġresult . exception StackTrace . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . debug ( result . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Execution Ġof ĠGro ovy Ġcode Ġon Ġ$ instance Ġended Ġwith Ġexception :\ n ${ result . exception StackTrace }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġeval Gro ovy Code Internal ( code : ĠString , Ġdata : ĠMap < String , ĠAny >): ĠGro ovy Console Result Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpost Multipart ( GRO OV Y _ CONSOLE _ EVAL _ PATH , Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" script " Ġto Ġcode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" data " Ġto ĠForm ats . toJson ( data ) ĊĠĠĠĠĠĠĠ Ġ)) Ġ{ Ġas Object FromJson ( it , ĠGro ovy Console Result :: class . java ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġeval Gro ovy Script ( file : ĠFile , Ġdata : ĠMap < String , ĠAny > Ġ= Ġmap Of (), Ġverbose : ĠBoolean Ġ= Ġtrue ): ĠGro ovy Console Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info (" Executing ĠGro ovy Ġscript : Ġ$ file ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeval Gro ovy Code Internal ( file . buffered Reader (). use Ġ{ Ġit . read Text () Ġ}, Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠA em Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Cannot Ġevaluate ĠGro ovy Ġscript Ġproperly Ġon Ġ$ instance , Ġfile : Ġ$ file ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( verbose Ġ&& Ġresult . exception StackTrace . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . debug ( result . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInstance Exception (" Execution Ġof ĠGro ovy Ġscript Ġ$ file Ġon Ġ$ instance Ġended Ġwith Ġexception :\ n ${ result . exception StackTrace }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġeval Gro ovy Script ( fileName : ĠString , Ġdata : ĠMap < String , ĠAny > Ġ= Ġmap Of (), Ġverbose : ĠBoolean Ġ= Ġtrue ): ĠGro ovy Console Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠFile ( a em . config . groovy Script Root , ĠfileName ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! script . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠA em Exception (" Gro ovy Ġscript Ġ'$ fileName ' Ġnot Ġfound Ġin Ġdirectory : Ġ${ a em . config . groovy Script Root }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġeval Gro ovy Script ( script , Ġdata , Ġverbose ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġeval Gro ovy Scripts ( fileName Pattern : ĠString Ġ= Ġ"** /*. groovy ", Ġdata : ĠMap < String , ĠAny > Ġ= Ġmap Of (), Ġverbose : ĠBoolean Ġ= Ġtrue ): ĠSequence < Gro ovy Console Result > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscripts Ġ= Ġ( project . file ( a em . config . groovy Script Root ). list Files () Ġ?: ĠarrayOf ()). filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPattern s . wildcard ( it , ĠfileName Pattern ) ĊĠĠĠĠĠĠĠ Ġ}. sorted By Ġ{ Ġit . absolute Path Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( scripts . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠA em Exception (" No ĠGro ovy Ġscripts Ġfound Ġin Ġdirectory : Ġ${ a em . config . groovy Script Root }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġeval Gro ovy Scripts ( scripts , Ġdata , Ġverbose ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġeval Gro ovy Scripts ( scripts : ĠCollection < File >, Ġdata : ĠMap < String , ĠAny > Ġ= Ġmap Of (), Ġverbose : ĠBoolean Ġ= Ġtrue ): ĠSequence < Gro ovy Console Result > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġscripts . as Sequence (). map Ġ{ Ġeval Gro ovy Script ( it , Ġdata , Ġverbose ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPK G _ MANAGER _ PATH Ġ= Ġ"/ cr x / pack mgr / service " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPK G _ MANAGER _ JSON _ PATH Ġ= Ġ"$ PKG _ MANAGER _ PATH /. json " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPK G _ MANAGER _ HTML _ PATH Ġ= Ġ"$ PKG _ MANAGER _ PATH /. html " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPK G _ MANAGER _ LIST _ JSON Ġ= Ġ"/ cr x / pack mgr / list . jsp " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOS GI _ B UND LES _ PATH Ġ= Ġ"/ system / console / bundles " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOS GI _ B UND LES _ LIST _ JSON Ġ= Ġ"$ OS GI _ B UND LES _ PATH . json " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOS GI _ COMPONENTS _ PATH Ġ= Ġ"/ system / console / components " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOS GI _ COMPONENTS _ LIST _ JSON Ġ= Ġ"$ OS GI _ COMPONENTS _ PATH . json " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOS GI _ VM STAT _ PATH Ġ= Ġ"/ system / console / vm stat " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠGRO OV Y _ CONSOLE _ EVAL _ PATH Ġ= Ġ"/ bin / groovy console / post . json " ĊĠĠĠ Ġ} Ċ }