package Ġat . y awk . jav ab rowser . generator Ċ Ċ import Ġat . y awk . jav ab rowser . Artifact Metadata Ċ import Ġat . y awk . jav ab rowser . Db Config Ċ import Ġjava . net . URL Ċ import Ġjava . nio . file . Path Ċ import Ġkotlin . script . experimental . annotations . Kotlin Script Ċ import Ġkotlin . script . experimental . api . Script Compilation Configuration Ċ import Ġkotlin . script . experimental . api . default Imports Ċ import Ġkotlin . script . experimental . api . value OrThrow Ċ import Ġkotlin . script . experimental . host . to Script Source Ċ import Ġkotlin . script . experimental . jvm . dependencies From Class loader Ċ import Ġkotlin . script . experimental . jvm . jvm Ċ import Ġkotlin . script . experimental . jvm host . Basic Jvm Script ing Host Ċ import Ġkotlin . script . experimental . jvm host . create Jvm Compilation Configuration From Template ĊĊ Ċ @ Kotlin Script ( ĊĠĠĠ Ġfile Extension Ġ= Ġ" generator . k ts ", ĊĠĠĠ Ġcompilation Configuration Ġ= ĠConfig . Companion . Configuration :: class Ċ ) Ċ abstract Ġclass ĠConfig Script Ġ{ ĊĠĠĠ Ġvar Ġdb Config : ĠDb Config ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġmaven Resolver : ĠMaven Dependency Resolver . Config Ġ= ĠMaven Dependency Resolver . Config () ĊĠĠĠ Ġval Ġartifacts Ġ= ĠArrayList < Artifact Config >() ĊĊĠĠĠ Ġfun Ġdatabase ( ĊĠĠĠĠĠĠĠ Ġurl : ĠString , ĊĠĠĠĠĠĠĠ Ġuser : ĠString , ĊĠĠĠĠĠĠĠ Ġpassword : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( db Config Ġ!= Ġnull ) Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠ Ġdb Config Ġ= ĠDb Config ( url , Ġuser , Ġpassword ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmaven Resolver ( config : ĠMaven Dependency Resolver . Config ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . maven Resolver Ġ= Ġconfig ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġartifacts ( f : ĠArtifact Collector . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠArtifact Collector (). f () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠArtifact Collector Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġjava ( version : ĠString , Ġarchive Url : ĠString , Ġj igsaw : ĠBoolean , Ġmetadata : ĠArtifact Metadata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifacts . add ( Artifact Config . Java ( version , ĠURL ( archive Url ), Ġj igsaw , Ġmetadata )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġandroid ( version : ĠString , Ġrepos : ĠList < Artifact Config . Git Repo >, Ġbuild Tools : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata : ĠArtifact Metadata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifacts . add ( Artifact Config . Android ( repos , Ġversion , ĠURL ( build Tools ), Ġmetadata )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġg ra al ( version : ĠString , Ġrepos : ĠList < URL >, Ġj dk : ĠString , Ġmetadata : ĠArtifact Metadata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifacts . add ( Artifact Config . G ra al ( version , Ġrepos , ĠURL ( jdk ), Ġmetadata )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġmaven ( groupId : ĠString , Ġartifact Id : ĠString , Ġversion : ĠString , Ġmetadata : ĠArtifact Metadata ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf : ĠMaven Builder . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠMaven Builder ( groupId , Ġartifact Id , Ġversion , Ġmetadata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . f () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifacts . add ( builder . build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMaven Builder ( private Ġval ĠgroupId : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġartifact Id : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmetadata : ĠArtifact Metadata ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġaliases Ġ= ĠArrayList < Artifact Config . Maven >() ĊĊĠĠĠĠĠĠĠ Ġfun Ġalias ( groupId : ĠString , Ġartifact Id : ĠString , Ġversion : ĠString Ġ= Ġthis . version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaliases . add ( Artifact Config . Maven ( groupId , Ġartifact Id , Ġversion )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild () Ġ= ĠArtifact Config . Maven ( groupId , Ġartifact Id , Ġversion , Ġmetadata , Ġaliases ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ author Ġyaw kat Ċ Ġ*/ Ċ data Ġclass ĠConfig ( ĊĠĠĠĠĠĠĠ Ġval Ġdatabase : ĠDb Config , ĊĠĠĠĠĠĠĠ Ġval Ġmaven Resolver : ĠMaven Dependency Resolver . Config , ĊĠĠĠĠĠĠĠ Ġval Ġartifacts : ĠList < Artifact Config > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArtifact Config . Java (" 8 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠURL (" https :// ci . y awk . at / job / jdk - hg - snapshot / repo _ path = jdk 8 u _ jdk 8 u / last Successful Build / artifact / jdk 8 u _ jdk 8 u . tar . z st "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArtifact Metadata ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArtifact Config . Java (" 1 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠURL (" https :// ci . y awk . at / job / jdk - hg - snapshot / repo _ path = jdk - updates _ jdk 1 0 u / last Successful Build / artifact / jdk - updates _ jdk 1 0 u . tar . z st "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArtifact Metadata ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArtifact Config . Maven (" com . google . gu ava ", Ġ" gu ava ", Ġ" 2 5 . 1 - jre ") ĊĠĠĠĠĠĠĠ Ġ) Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠConfiguration Ġ: ĠScript Compilation Configuration ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Imports ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" at . y awk . jav ab rowser . generator .* ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" at . y awk . jav ab rowser .* " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom File ( path : ĠPath ): ĠConfig Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompilation Configuration Ġ= Ġcreate Jvm Compilation Configuration From Template < Config Script > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies From Class loader ( whole Classpath Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠBasic Jvm Script ing Host (). eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath . to File (). to Script Source (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompilation Configuration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Script Ġ= Ġresult . value OrThrow (). returnValue . script Instance Ġas ĠConfig Script ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠConfig ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Ġ= Ġconfig Script . db Config !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifacts Ġ= Ġconfig Script . artifacts , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Resolver Ġ= Ġconfig Script . maven Resolver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }