package Ġde . un ia . se Ċ Ċ import Ġcom . diff plug . gradle . p 2 . As Maven Plugin Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . artifacts . Configuration Ċ import Ġorg . gradle . api . internal . provider . Value Supplier . Value Producer . task Ċ import Ġorg . gradle . api . tasks . Source Set Ċ import Ġorg . gradle . api . tasks . Source Set Container Ċ import Ġorg . gradle . api . tasks . testing . Test Ċ import Ġjava . io . File ĊĊ Ċ @ Suppress (" unused ") Ċ class ĠPl ant est ic Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPL AN TEST IC _ TASK _ NAME Ġ= Ġ" generate " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPL AN TEST IC _ EXTENSION _ NAME Ġ= Ġ" plant est ic " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplant est ic Runtime Ġ= Ġproject . configurations . create (" plant est ic Runtime ") ĊĠĠĠĠĠĠĠ Ġplant est ic Runtime . description Ġ= Ġ" The Ġclasspath Ġused Ġto Ġinvoke Ġplant est ic " ĊĊĠĠĠĠĠĠĠ Ġval Ġoutput DirectoryName Ġ= Ġ"${ project . build Dir }/ generated - src / plant est ic /" ĊĊĠĠĠĠĠĠĠ Ġproject . extensions . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPL AN TEST IC _ EXTENSION _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPl ant est ic Extension :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġextension : ĠPl ant est ic Extension Ġ-> ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplant est ic Task Ġ= Ġproject . tasks ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPL AN TEST IC _ TASK _ NAME , ĠPl ant est ic Task :: class . java , Ġplant est ic Runtime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput DirectoryName , Ġextension . source Set ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplant est ic Task . description Ġ= Ġ" Gener ates Ġthe Ġplant est ic Ġtest cases " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplant est ic Task . group Ġ= Ġ" plant est ic " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġproject . plugins . apply (" java ") ĊĊĠĠĠĠĠĠĠ Ġadd Ec lipse Dependencies ( project ) ĊĠĠĠĠĠĠĠ Ġadd Output To Test Sources ( project , Ġoutput DirectoryName ) ĊĠĠĠĠĠĠĠ Ġadd Plant est ic Dependencies ( plant est ic Runtime , Ġproject ) ĊĠĠĠĠĠĠĠ Ġadd JUnit ( project ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Ec lipse Dependencies ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . plugins . apply (" com . diff plug . p 2 . asm aven ") ĊĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġproject . plugins . apply ( As Maven Plugin :: class . java ). extension () ĊĠĠĠĠĠĠĠ Ġextension . group (" eclipse - p 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . repo (" http :// download . eclipse . org / releases / 2 0 2 0 - 0 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . feature (" org . eclipse . emf . ecore ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . feature (" org . eclipse . m 2 m . q vt . om l . sdk ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . feature (" org . eclipse . uml 2 . sdk ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . feature (" org . eclipse . ac ce leo ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Output To Test Sources ( project : ĠProject , Ġoutput DirectoryName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Sets Ġ= Ġproject . properties [" source Sets "] Ġas ĠSource Set Container ? ĊĠĠĠĠĠĠĠ Ġval Ġsource Set Ġ= Ġsource Sets !!. get ByName (" test ") ĊĠĠĠĠĠĠĠ Ġsource Set . java . src Dir ( output DirectoryName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd JUnit ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . tasks . named (" test ", ĠTest :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . use JUnit Platform () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . depends On (" generate ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġthe Ġconfiguration Ġthat Ġholds Ġthe Ġclasspath Ġto Ġuse Ġfor Ġinvoking Ġplant est ic . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġadd Plant est ic Dependencies ( plant est ic Runtime : ĠConfiguration , Ġproject : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . repositories . maven Central () ĊĠĠĠĠĠĠĠ Ġproject . repositories . maven Local () ĊĠĠĠĠĠĠĠ Ġproject . repositories . maven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Url (" https :// repo . eclipse . org / content / groups / releases /") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġproject . dependencies . add ( plant est ic Runtime . name , Ġ" de . un ia . se : core : 0 . 1 ") ĊĠĠĠĠĠĠĠ Ġproject . dependencies . add (" test Implementation ", Ġ" io . rest - ass ured : rest - ass ured : 3 . 0 . 0 ") ĊĠĠĠĠĠĠĠ Ġproject . dependencies . add (" test Implementation ", Ġ" org . apache . commons : commons - text : 1 . 7 ") ĊĠĠĠĠĠĠĠ Ġproject . dependencies . add (" test Implementation ", Ġ" io . rest - ass ured : rest - ass ured : 3 . 0 . 0 ") ĊĠĠĠĠĠĠĠ Ġproject . dependencies . add (" test Implementation ", Ġ" javax . xml . bind : jax b - api : 2 . 3 . 1 ") ĊĠĠĠĠĠĠĠ Ġproject . dependencies . add (" test Implementation ", Ġ" com . atlassian . o ai : swagger - request - validator - core : 2 . 1 0 ") ĊĠĠĠĠĠĠĠ Ġproject . dependencies . add (" test Implementation ", Ġ" org . junit . jupiter : junit - jupiter - engine : 5 . 3 . 1 ") ĊĠĠĠĠĠĠĠ Ġproject . dependencies . add (" test Implementation ", Ġ" com . atlassian . o ai : swagger - request - validator - rest ass ured : 2 . 1 0 . 0 ") ĊĠĠĠ Ġ} Ċ } Ċ