package Ġorg . art em bo g omo lo va . build . plugins Ċ Ċ import Ġjava . nio . charset . StandardCharsets Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . plugins . Extension Container Ċ import Ġorg . sonar q ube . gradle . Son ar Q ube Extension Ċ import Ġorg . sonar q ube . gradle . Son ar Q ube Plugin Ċ Ċ internal Ġclass ĠExternal Tool Integration Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġson ar App lier : ĠSon ar App lier Ġ= ĠSon ar App lier () ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġson ar App lier . apply ( target ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSon ar App lier Ġ: ĠPlugin App lier < Son ar Q ube Plugin >( Son ar Q ube Plugin :: class . java ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPROJECT _ KEY _ PROPERTY Ġ= Ġ" sonar . project Key " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOGIN _ PROPERTY Ġ= Ġ" sonar . login " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHOST _ URL _ PROPERTY Ġ= Ġ" sonar . host . url " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOR GAN IZATION _ PROPERTY Ġ= Ġ" sonar . organization " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPROJECT _ NAME _ PROPERTY Ġ= Ġ" sonar . projectName " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLANGUAGE _ PROPERTY Ġ= Ġ" sonar . language " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠVERBOSE _ PROPERTY Ġ= Ġ" sonar . verbose " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSOURCE _ ENCODING _ PROPERTY Ġ= Ġ" sonar . source Encoding " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCHECK STYLE _ REPORT _ PATH _ PROPERTY Ġ= Ġ" sonar . java . check style . report Paths " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP MD _ REPORT _ PATH _ PROPERTY Ġ= Ġ" sonar . java . pmd . report Paths " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP OT BUG S _ REPORT _ PATH _ PROPERTY Ġ= Ġ" sonar . java . spot bugs . report Paths " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDET EK T _ REPORT _ PATH _ PROPERTY Ġ= Ġ" sonar . kotlin . de te kt . report Paths " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠJ AC O CO _ REPORT _ PATH _ PROPERTY Ġ= Ġ" sonar . coverage . jac oco . xml Report Paths " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠREPORT _ PATH _ PATTERN Ġ= Ġ" build / reports /% s " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPATH _ COMMA _ SEPAR ATED _ LIST _ PATTERN Ġ= Ġ"% s ,% s " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfigure Properties ( properties : ĠMutable Map < String , ĠAny >, Ġtarget : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . configure Properties ( properties , Ġtarget ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! target . has Property ( PROJECT _ KEY _ PROPERTY )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties [ PROJECT _ KEY _ PROPERTY ] Ġ= Ġtarget . root Project . name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproperties [ PROJECT _ NAME _ PROPERTY ] Ġ= Ġtarget . root Project . name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Allow Re Apply Plugin After Configure ( plugin Class : ĠClass < Son ar Q ube Plugin >): ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġoverride Ġfun Ġconfigure Extensions ( target : ĠExtension Container , Ġproperties : ĠMutable Map < String , ĠAny >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . configure Extensions ( target , Ġproperties ) ĊĠĠĠĠĠĠĠ Ġconfig Son ar Q ube Extension ( target , Ġproperties ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfig Son ar Q ube Extension ( target : ĠExtension Container , Ġproperties : ĠMutable Map < String , ĠAny >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġson ar q ube Task Ġ= Ġtarget . get ByName ( Son ar Q ube Extension . SON AR Q UBE _ TASK _ NAME ) Ġas ĠSon ar Q ube Extension ĊĠĠĠĠĠĠĠ Ġwith ( sonar q ube Task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( PROJECT _ NAME _ PROPERTY , Ġproperties [ PROJECT _ NAME _ PROPERTY ] Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( PROJECT _ KEY _ PROPERTY , Ġproperties [ PROJECT _ KEY _ PROPERTY ] Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( LOGIN _ PROPERTY , Ġproperties [ LOGIN _ PROPERTY ] Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( HOST _ URL _ PROPERTY , Ġproperties [ HOST _ URL _ PROPERTY ] Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( ORG AN IZATION _ PROPERTY , Ġproperties [ ORG AN IZATION _ PROPERTY ] Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( LANGUAGE _ PROPERTY , ĠK OT LIN _ LANGUAGE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( VERBOSE _ PROPERTY , Ġtrue . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( SOURCE _ ENCODING _ PROPERTY , ĠStandard Charsets . UTF _ 8 . name ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck Style Report Paths Ġ= ĠPATH _ COMMA _ SEPAR ATED _ LIST _ PATTERN . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREPORT _ PATH _ PATTERN . format (" check style / main . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREPORT _ PATH _ PATTERN . format (" check style / test . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( CHECK STYLE _ REPORT _ PATH _ PROPERTY , Ġcheck Style Report Paths ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp md Report Paths Ġ= ĠPATH _ COMMA _ SEPAR ATED _ LIST _ PATTERN . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREPORT _ PATH _ PATTERN . format (" pmd / main . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREPORT _ PATH _ PATTERN . format (" pmd / test . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġde te kt Report Path Ġ= ĠREPORT _ PATH _ PATTERN . format (" de te kt / de te kt . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( DE TE KT _ REPORT _ PATH _ PROPERTY , Ġde te kt Report Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( PMD _ REPORT _ PATH _ PROPERTY , Ġp md Report Paths ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspot bugs Report Paths Ġ= ĠPATH _ COMMA _ SEPAR ATED _ LIST _ PATTERN . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREPORT _ PATH _ PATTERN . format (" spot bugs / main . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREPORT _ PATH _ PATTERN . format (" spot bugs / test . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( SP OT BUG S _ REPORT _ PATH _ PROPERTY , Ġspot bugs Report Paths ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj aco co Report Path Ġ= ĠREPORT _ PATH _ PATTERN . format (" jac oco / jac oco . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( J AC O CO _ REPORT _ PATH _ PROPERTY , Ġj aco co Report Path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ