/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 , ĠTeam Dev . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand / or Ġbinary Ġforms , Ġwith Ġor Ġwithout Ċ Ġ* Ġmodification , Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice Ġand Ġthe Ġfollowing Ċ Ġ* Ġdisclaimer . Ċ Ġ* Ċ Ġ* ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ċ Ġ* Ġ" AS ĠIS " ĠAND ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT Ċ Ġ* ĠLIMITED ĠTO , ĠTHE ĠIMPLIED ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR Ċ Ġ* ĠA ĠPARTICULAR ĠPURPOSE ĠARE ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT Ċ Ġ* ĠOWNER ĠOR ĠCONTRIBUTORS ĠBE ĠLIABLE ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , Ċ Ġ* ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES Ġ( INCLUDING , ĠBUT ĠNOT Ċ Ġ* ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; ĠLOSS ĠOF ĠUSE , Ċ Ġ* ĠDATA , ĠOR ĠPROFITS ; ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER ĠCAUSED ĠAND ĠON ĠANY Ċ Ġ* ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ċ Ġ* Ġ( INCLUDING ĠNEGLIGENCE ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE Ċ Ġ* ĠOF ĠTHIS ĠSOFTWARE , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ Ċ package Ġio . sp ine . internal . gradle Ċ Ċ import Ġjava . io . File Ċ import Ġjava . net . URI Ċ import Ġjava . util .* Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . artifacts . dsl . Repository Handler Ċ Ċ /** Ċ Ġ* ĠA ĠMaven Ġrepository . Ċ Ġ*/ Ċ data Ġclass ĠRepository ( ĊĠĠĠ Ġval Ġreleases : ĠString , ĊĠĠĠ Ġval Ġsnapshots : ĠString , ĊĠĠĠ Ġprivate Ġval Ġcredentials File : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġcredentials : ĠCredentials ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġname : ĠString Ġ= Ġ" Maven Ġrepository Ġ`$ releases `" Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOb t ains Ġthe Ġpublishing Ġpassword Ġcredentials Ġto Ġthis Ġrepository . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġthe Ġcredentials Ġare Ġrepresented Ġby Ġa Ġ`. properties ` Ġfile , Ġreads Ġthe Ġfile Ġand Ġparses ĊĠĠĠĠ Ġ* Ġthe Ġcredentials . ĠThe Ġfile Ġmust Ġhave Ġproperties Ġ` user . name ` Ġand Ġ` user . password `, Ġwhich Ġstore ĊĠĠĠĠ Ġ* Ġthe Ġusername Ġand Ġthe Ġpassword Ġfor Ġthe ĠMaven Ġrepository Ġauth . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcredentials ( project : ĠProject ): ĠCredentials ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( credentials Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcredentials ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcredentials File !! ĊĠĠĠĠĠĠĠ Ġval Ġlog Ġ= Ġproject . logger ĊĠĠĠĠĠĠĠ Ġlog . info (" Using Ġcredentials Ġfrom Ġ`$ credentials File `. ") ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġproject . root Project . file ( credentials File ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcreds Ġ= Ġfile . read Credentials () ĊĠĠĠĠĠĠĠ Ġlog . info (" Publishing Ġbuild Ġas Ġ`${ creds . username }`. ") ĊĠĠĠĠĠĠĠ Ġreturn Ġcreds ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFile . read Credentials (): ĠCredentials Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠProperties () ĊĠĠĠĠĠĠĠ Ġproperties . load ( inputStream ()) ĊĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġproperties . getProperty (" user . name ") ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġproperties . getProperty (" user . password ") ĊĠĠĠĠĠĠĠ Ġreturn ĠCredentials ( username , Ġpassword ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠPassword Ġcredentials Ġfor Ġa ĠMaven Ġrepository . Ċ Ġ*/ Ċ data Ġclass ĠCredentials ( ĊĠĠĠ Ġval Ġusername : ĠString ?, ĊĠĠĠ Ġval Ġpassword : ĠString ? Ċ ) Ċ Ċ /** Ċ Ġ* ĠRe positories Ġto Ġwhich Ġwe Ġmay Ġpublish . ĠNorm ally , Ġonly Ġone Ġrepository Ġwill Ġbe Ġused . Ċ Ġ* Ċ Ġ* ĠSee Ġ` publish . gradle ` Ġfor Ġdetails Ġof Ġthe Ġpublishing Ġprocess . Ċ Ġ*/ Ċ object ĠPublish ing Repos Ġ{ ĊĊĠĠĠ Ġ@ Suppress (" Http Urls Usage ") Ġ// ĠHTTPS Ġis Ġnot Ġsupported Ġby Ġthis Ġrepository . ĊĠĠĠ Ġval Ġmaven Team Dev Ġ= ĠRepository ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" maven . team dev . com ", ĊĠĠĠĠĠĠĠ Ġreleases Ġ= Ġ" http :// maven . team dev . com / repository / sp ine ", ĊĠĠĠĠĠĠĠ Ġsnapshots Ġ= Ġ" http :// maven . team dev . com / repository / sp ine - snapshots ", ĊĠĠĠĠĠĠĠ Ġcredentials File Ġ= Ġ" credentials . properties " ĊĠĠĠ Ġ) ĊĠĠĠ Ġval Ġcloud Repo Ġ= ĠRepository ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Cloud Repo ", ĊĠĠĠĠĠĠĠ Ġreleases Ġ= Ġ" https :// sp ine . my cloud repo . io / public / repositories / releases ", ĊĠĠĠĠĠĠĠ Ġsnapshots Ġ= Ġ" https :// sp ine . my cloud repo . io / public / repositories / snapshots ", ĊĠĠĠĠĠĠĠ Ġcredentials File Ġ= Ġ" cloud repo . properties " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġgit Hub ( repo Name : ĠString ): ĠRepository Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRepository ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" GitHub ĠPackages ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreleases Ġ= Ġ" https :// maven . pkg . github . com / Sp ine Event Engine /$ repo Name ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsnapshots Ġ= Ġ" https :// maven . pkg . github . com / Sp ine Event Engine /$ repo Name ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ= ĠCredentials ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= ĠSystem . getenv (" GITHUB _ ACT OR "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġa Ġtrick . ĠGradle Ġonly Ġsupports Ġpassword Ġor ĠAWS Ġcredentials . ĠThus , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwe Ġpass Ġthe ĠGitHub Ġtoken Ġas Ġa Ġ" password ". ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// docs . github . com / en / actions / guides / publishing - java - packages - with - gradle # publishing - packages - to - github - packages ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= ĠSystem . getenv (" GITHUB _ TOKEN ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠDefines Ġnames Ġof Ġadditional Ġrepositories Ġcommonly Ġused Ġin Ġthe Ġframework Ġprojects . Ċ Ġ* Ċ Ġ* Ġ@ see Ġ[ apply Standard ] Ċ Ġ*/ Ċ @ Suppress (" unused ") Ċ object ĠRe pos Ġ{ ĊĠĠĠ Ġval Ġold Sp ine : ĠString Ġ= ĠPublish ing Repos . maven Team Dev . releases ĊĠĠĠ Ġval Ġold Sp ine Snapshots : ĠString Ġ= ĠPublish ing Repos . maven Team Dev . snapshots ĊĊĠĠĠ Ġval Ġsp ine : ĠString Ġ= ĠPublish ing Repos . cloud Repo . releases ĊĠĠĠ Ġval Ġsp ine Snapshots : ĠString Ġ= ĠPublish ing Repos . cloud Repo . snapshots ĊĊĠĠĠ Ġconst Ġval Ġson atype Releases : ĠString Ġ= Ġ" https :// oss . son atype . org / content / repositories / snapshots " ĊĠĠĠ Ġconst Ġval Ġson atype Snapshots : ĠString Ġ= Ġ" https :// oss . son atype . org / content / repositories / snapshots " Ċ } Ċ Ċ /** Ċ Ġ* ĠThe Ġfunction Ġto Ġbe Ġused Ġin Ġ` build script ` Ġclauses Ġwhen Ġfully - qualified Ġcall Ġmust Ġbe Ġmade . Ċ Ġ*/ Ċ @ Suppress (" unused ") Ċ fun Ġdo Apply Standard ( repositories : ĠRepository Handler ) Ġ{ ĊĠĠĠ Ġrepositories . apply Standard () Ċ } Ċ Ċ /** Ċ Ġ* ĠApplies Ġrepositories Ġcommonly Ġused Ġby ĠSp ine ĠEvent ĠEngine Ġprojects . Ċ Ġ*/ Ċ @ Suppress (" unused ") Ċ fun ĠRepository Handler . apply Standard () Ġ{ ĊĊĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġgradle Plugin Portal () ĊĠĠĠĠĠĠĠ Ġmaven Local () ĊĊĠĠĠĠĠĠĠ Ġval Ġlibrary Group Ġ= Ġ" io . sp ine " ĊĠĠĠĠĠĠĠ Ġval Ġtools Group Ġ= Ġ" io . sp ine . tools " ĊĠĠĠĠĠĠĠ Ġval Ġg cloud Group Ġ= Ġ" io . sp ine . g cloud " ĊĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠURI ( Repos . sp ine ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Group ( library Group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Group ( tools Group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Group ( g cloud Group ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠURI ( Repos . sp ine Snapshots ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Group ( library Group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Group ( tools Group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Group ( g cloud Group ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠURI ( Repos . son atype Releases ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠURI ( Repos . son atype Snapshots ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ