package Ġorg . nixos . gradle 2 nix Ċ Ċ import Ġorg . apache . ivy . core . Log Options Ċ import Ġorg . apache . ivy . core . cache . Artifact Origin Ċ import Ġorg . apache . ivy . core . cache . Cache Resource Options Ċ import Ġorg . apache . ivy . core . cache . Default Repository CacheManager Ċ import Ġorg . apache . ivy . core . cache . Repository CacheManager Ċ import Ġorg . apache . ivy . core . module . id . Artifact Revision Id Ċ import Ġorg . apache . ivy . core . module . id . Module Revision Id Ċ import Ġorg . apache . ivy . core . resolve . Download Options Ċ import Ġorg . apache . ivy . core . settings . I vy Settings Ċ import Ġorg . apache . ivy . plugins . repository . url . URL Resource Ċ import Ġorg . apache . ivy . plugins . resolver . IB ib lio Resolver Ċ import Ġorg . apache . ivy . plugins . resolver . URL Resolver Ċ import Ġorg . apache . maven . artifact . repository . metadata . io . x pp 3 . Metadata X pp 3 Reader Ċ import Ġorg . codehaus . plex us . util . Reader Factory Ċ import Ġorg . codehaus . plex us . util . xml . pull . Xml Pull Parser Exception Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . artifacts . repositories . Artifact Repository Ċ import Ġorg . gradle . api . artifacts . repositories . I vy Artifact Repository Ċ import Ġorg . gradle . api . artifacts . repositories . Maven Artifact Repository Ċ import Ġorg . gradle . api . internal . artifacts . repositories . Resolution Aware Repository Ċ import Ġorg . gradle . api . internal . artifacts . repositories . resolver . I vy Resolver Ċ import Ġorg . gradle . api . logging . Logger Ċ import Ġorg . gradle . api . logging . Logging Ċ import Ġjava . io . IOException Ċ import Ġorg . apache . ivy . core . module . descriptor . Artifact Ġas ĠI vy Artifact Ċ import Ġorg . apache . ivy . core . module . descriptor . Default Artifact Ġas ĠI vy Default Artifact Ċ import Ġorg . apache . ivy . plugins . resolver . Repository Resolver Ġas ĠI vy Repository Resolver Ċ Ċ internal Ġfun ĠResolution Aware Repository . repository Resolver ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġscope : ĠConfiguration Scope , ĊĠĠĠ Ġiv y Settings : ĠI vy Settings Ċ ): ĠRepository Resolver ? Ġ= ĊĠĠĠ Ġwhen ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠMaven Artifact Repository Ġ-> ĠMaven Resolver ( project , Ġscope , Ġiv y Settings , Ġthis ) ĊĠĠĠĠĠĠĠ Ġis ĠI vy Artifact Repository Ġ-> ĠI vy Resolver ( project , Ġscope , Ġiv y Settings , Ġthis ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} Ċ Ċ internal Ġsealed Ġclass ĠRepository Resolver Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprotected Ġval Ġlog : ĠLogger Ġ= ĠLogging . getLogger (" gradle 2 nix ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġval Ġiv y Resolver : ĠI vy Repository Resolver ĊĊĠĠĠ Ġabstract Ġfun Ġresolve ( ĊĠĠĠĠĠĠĠ Ġartifact Id : ĠDefault Artifact Identifier , ĊĠĠĠĠĠĠĠ Ġsha 2 5 6 : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠDefault Artifact ? Ċ } Ċ Ċ internal Ġclass ĠMaven Resolver ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġscope : ĠConfiguration Scope , ĊĠĠĠ Ġiv y Settings : ĠI vy Settings , ĊĠĠĠ Ġrepository : ĠMaven Artifact Repository Ċ ) Ġ: ĠRepository Resolver () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġiv y Resolver : ĠIB ib lio Resolver Ġ= ĠIB ib lio Resolver (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġrepository . name ĊĠĠĠĠĠĠĠ Ġroot Ġ= Ġrepository . url . toString () ĊĠĠĠĠĠĠĠ Ġis M 2 compatible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsettings Ġ= Ġiv y Settings ĊĠĠĠĠĠĠĠ Ġset Cache ( cache Manager ( project , Ġscope , Ġiv y Settings , Ġrepository ). name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresolve ( artifactId : ĠDefault Artifact Identifier , Ġsha 2 5 6 : ĠString ?): ĠDefault Artifact ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġiv y Artifact : ĠI vy Artifact Ġ= Ġartifact Id . to Artifact () ĊĠĠĠĠĠĠĠ Ġval Ġorigin Ġ= Ġiv y Resolver . locate ( ivy Artifact )?. take If ( Artifact Origin :: is Exists ) Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġsha 2 5 6 Ġ?: Ġiv y Resolver . download ( origin , Ġdownload Options ). local File ?. sha 2 5 6 () Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġsnapshot Version : ĠSnapshot Version ? Ġ= Ġartifact Id . version . snapshot Version ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Snapshot Version ( artifactId , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠDefault Artifact ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġartifact Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġartifact Id . filename ( snapshot Version ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġartifact Id . repo Path (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġsnapshot Version ?. timestamp , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ= Ġsnapshot Version ?. build , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurls Ġ= ĠlistOf ( origin . location ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsha 2 5 6 Ġ= Ġhash ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Snapshot Version ( ĊĠĠĠĠĠĠĠ Ġartifact Id : ĠArtifact Identifier , ĊĠĠĠĠĠĠĠ Ġsnapshot Version : ĠSnapshot Version ĊĠĠĠ Ġ): ĠSnapshot Version Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( snapshot Version . timestamp Ġ!= Ġnull ) Ġreturn Ġsnapshot Version ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Location Ġ= Ġ"${ ivy Resolver . root }${ artifactId . repo Path () }/ maven - metadata . xml ". to Url () ĊĠĠĠĠĠĠĠ Ġval Ġmetadata File Ġ= Ġiv y Resolver . repository CacheManager . download Repository Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠURL Resource ( metadata Location , Ġiv y Resolver . timeout Constraint ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" maven - metadata ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" maven - metadata ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" xml ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCache Resource Options (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv y Resolver . repository ĊĠĠĠĠĠĠĠ Ġ). local File ĊĊĠĠĠĠĠĠĠ Ġif Ġ( metadata File Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn (" maven - metadata . xml Ġnot Ġfound Ġfor Ġsnapshot Ġdependency : Ġ$ artifactId ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsnapshot Version ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġparse Error ( e : ĠThrowable ): ĠPair < String ?, ĠInt ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Failed Ġto Ġparse Ġmaven - metadata . xml Ġfor Ġartifact : Ġ$ artifactId ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Error Ġwas : Ġ${ e . message }", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull Ġto Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġ( timestamp : ĠString ?, Ġbuild : ĠInt ?) Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMetadata X pp 3 Reader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read ( Reader Factory . new Xml Reader ( metadata File )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. version ing ?. snapshot ?. run Ġ{ Ġtimestamp Ġto Ġbuild Number Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġnull Ġto Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparse Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠXml Pull Parser Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparse Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsnapshot Version . copy ( timestamp Ġ= Ġtimestamp , Ġbuild Ġ= Ġbuild ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠI vy Resolver ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġscope : ĠConfiguration Scope , ĊĠĠĠ Ġiv y Settings : ĠI vy Settings , ĊĠĠĠ Ġrepository : ĠI vy Artifact Repository Ċ ) Ġ: ĠRepository Resolver () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġiv y Resolver : ĠURL Resolver Ġ= ĠURL Resolver (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġrepository . name ĊĠĠĠĠĠĠĠ Ġval Ġiv y Resolver Ġ= Ġ( repository Ġas ĠResolution Aware Repository ). create Resolver () Ġas ĠI vy Resolver ĊĠĠĠĠĠĠĠ Ġis M 2 compatible Ġ= Ġiv y Resolver . is M 2 compatible ĊĠĠĠĠĠĠĠ Ġfor Ġ( p Ġin Ġiv y Resolver . ivy Patterns ) Ġadd I vy Pattern ( p ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( p Ġin Ġiv y Resolver . artifact Patterns ) Ġadd Artifact Pattern ( p ) ĊĠĠĠĠĠĠĠ Ġsettings Ġ= Ġiv y Settings ĊĠĠĠĠĠĠĠ Ġset Cache ( cache Manager ( project , Ġscope , Ġiv y Settings , Ġrepository ). name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresolve ( artifactId : ĠDefault Artifact Identifier , Ġsha 2 5 6 : ĠString ?): ĠDefault Artifact ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġiv y Artifact : ĠI vy Artifact Ġ= Ġartifact Id . to Artifact () ĊĠĠĠĠĠĠĠ Ġval Ġorigin Ġ= Ġiv y Resolver . locate ( ivy Artifact )?. take If ( Artifact Origin :: is Exists ) Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġsha 2 5 6 Ġ?: Ġiv y Resolver . download ( origin , Ġdownload Options ). local File ?. sha 2 5 6 () Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠDefault Artifact ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠDefault Artifact Identifier ( artifactId ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġartifact Id . filename ( null ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġartifact Id . repo Path (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurls Ġ= ĠlistOf ( origin . location ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsha 2 5 6 Ġ= Ġhash ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġcache Manager ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġscope : ĠConfiguration Scope , ĊĠĠĠ Ġiv y Settings : ĠI vy Settings , ĊĠĠĠ Ġrepository : ĠArtifact Repository Ċ ): ĠRepository CacheManager Ġ{ ĊĠĠĠ Ġreturn ĠDefault Repository CacheManager ( ĊĠĠĠĠĠĠĠ Ġ"${ scope . name . toLowerCase ()} -${ repository . name }- cache ", ĊĠĠĠĠĠĠĠ Ġiv y Settings , ĊĠĠĠĠĠĠĠ Ġproject . build Dir . resolve (" tmp / gradle 2 nix /${ scope . name . toLowerCase () }/${ repository . name }") ĊĠĠĠ Ġ). also Ġ{ ĊĠĠĠĠĠĠĠ Ġiv y Settings . add Repository CacheManager ( it ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval Ġmetadata Types Ġ= Ġset Of (" pom ", Ġ" ivy ") Ċ Ċ private Ġfun ĠArtifact Identifier . to Artifact (): ĠI vy Artifact Ġ{ ĊĠĠĠ Ġval Ġmodule Revision Id Ġ= ĠModule Revision Id . newInstance ( group , Ġname , Ġversion ) ĊĠĠĠ Ġval Ġartifact Revision Id Ġ= ĠArtifact Revision Id . newInstance ( ĊĠĠĠĠĠĠĠ Ġmodule Revision Id , ĊĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠ Ġtype , ĊĠĠĠĠĠĠĠ Ġextension , ĊĠĠĠĠĠĠĠ Ġclassifier ?. let Ġ{ Ġmap Of (" classifier " Ġto Ġit ) Ġ} ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn ĠI vy Default Artifact ( artifact Revision Id , Ġnull , Ġnull , Ġtype Ġin Ġmetadata Types ) Ċ } Ċ Ċ private Ġdata Ġclass ĠSnapshot Version ( ĊĠĠĠ Ġval Ġbase : ĠString , ĊĠĠĠ Ġval Ġtimestamp : ĠString ?, ĊĠĠĠ Ġval Ġbuild : ĠInt ? Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( timestamp Ġ!= Ġnull Ġ&& Ġbuild Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ base -$ timestamp -$ build " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ base - SNAPSHOT " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval ĠS NAP SHOT _ REGEX Ġ= ĠRegex ("^ (.* )- SNAPSHOT $ ") Ċ private Ġval ĠS NAP SHOT _ TIME ST AM PED _ REGEX Ġ= ĠRegex ("^ (.* )- ([ 0 - 9 ]{ 8 }. [ 0 - 9 ]{ 6 }) - ([ 0 - 9 ]+ )$ ") Ċ Ċ private Ġfun ĠString . snapshot Version (): ĠSnapshot Version ? Ġ{ ĊĠĠĠ Ġreturn ĠS NAP SHOT _ REGEX . find ( this )?. de structured ?. let Ġ{ Ġ( base ) Ġ-> ĊĠĠĠĠĠĠĠ ĠSnapshot Version ( base , Ġnull , Ġnull ) ĊĠĠĠ Ġ} Ġ?: ĠS NAP SHOT _ TIME ST AM PED _ REGEX . find ( this )?. de structured ?. let Ġ{ Ġ( base , Ġtimestamp , Ġbuild ) Ġ-> ĊĠĠĠĠĠĠĠ ĠSnapshot Version ( base , Ġtimestamp , Ġbuild . toInt ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠArtifact Identifier . repo Path (): ĠString Ġ= ĊĠĠĠ Ġ"${ group . replace ('.', Ġ'/') }/ $ name /$ version " Ċ Ċ private Ġfun ĠArtifact Identifier . filename ( ĊĠĠĠ Ġsnapshot Version : ĠSnapshot Version ? Ċ ): ĠString Ġ= Ġbuild String Ġ{ ĊĠĠĠ Ġappend ( name , Ġ"-", Ġsnapshot Version Ġ?: Ġversion ) ĊĠĠĠ Ġif Ġ( classifier Ġ!= Ġnull ) Ġappend ("- ", Ġclassifier ) ĊĠĠĠ Ġappend (".", Ġextension ) Ċ } Ċ Ċ private Ġval Ġdownload Options Ġ= ĠDownload Options (). apply Ġ{ Ġlog Ġ= ĠLog Options . LOG _ QUI ET Ġ}