import Ġcom . atlassian . performance . tools . concurrency . api . submit With Log Context Ċ import Ġcom . atlassian . performance . tools . jira actions . api . scenario . Scenario Ċ import Ġcom . atlassian . performance . tools . report . api . Full Report Ċ import Ġcom . atlassian . performance . tools . report . api . Full Timeline Ċ import Ġcom . atlassian . performance . tools . report . api . result . Raw Co hort Result Ċ import Ġcom . atlassian . performance . tools . virtual users . api . Virtual User Options Ċ import Ġcom . atlassian . performance . tools . virtual users . api . config . Virtual User Target Ċ import Ġcom . atlassian . performance . tools . workspace . api . Root Workspace Ċ import Ġorg . junit . Test Ċ import Ġquick 3 0 3 . Benchmark Quality Ċ import Ġquick 3 0 3 . Quick And Dirty Ċ import Ġquick 3 0 3 . Slow And Mean ing ful Ċ import Ġquick 3 0 3 . vu . J ira Cloud Scenario Ċ import Ġquick 3 0 3 . vu . J ira Dc Scenario Ċ import Ġjava . io . File Ċ import Ġjava . net . URI Ċ import Ġjava . nio . file . Paths Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . Executors Ċ Ċ class ĠJira Offer ing Comparison IT Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġworkspace Ġ= ĠRoot Workspace ( Paths . get (" build ")). current Task ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Compare Cloud With Dc () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbenchmark Quality : ĠBenchmark Quality Ġ= ĠS low And Mean ing ful () ĊĠĠĠĠĠĠĠ Ġval Ġpool Ġ= ĠExec utors . new Cached ThreadPool () ĊĠĠĠĠĠĠĠ Ġval Ġcloud Result Ġ= Ġpool . submit With Log Context (" Cloud ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbenchmark ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġco hort Ġ= Ġ" Cloud ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ= Ġload Target ( File (" jira - cloud . properties ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscenario Ġ= ĠJira Cloud Scenario :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbenchmark Quality Ġ= Ġbenchmark Quality ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdc Result Ġ= Ġpool . submit With Log Context (" DC ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbenchmark ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġco hort Ġ= Ġ" DC ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ= Ġload Target ( File (" jira - dc . properties ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscenario Ġ= ĠJira Dc Scenario :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbenchmark Quality Ġ= Ġbenchmark Quality ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠFull Report (). dump ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= ĠlistOf ( cloud Result , Ġdc Result ). map Ġ{ Ġit . get (). prepare For J udge ment ( Full Timeline ()) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworkspace Ġ= Ġworkspace . isolate Test (" Compare ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Target ( properties : ĠFile ): ĠVirtual User Target Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġj ira Cloud Ġ= ĠProperties () ĊĠĠĠĠĠĠĠ Ġproperties . buffered Reader (). use Ġ{ Ġj ira Cloud . load ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠVirtual User Target ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Application Ġ= ĠURI ( jira Cloud . getProperty (" jira . uri ") !! ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserName Ġ= Ġj ira Cloud . getProperty (" user . name ") !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġj ira Cloud . getProperty (" user . password ") !! ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbenchmark ( ĊĠĠĠĠĠĠĠ Ġco hort : ĠString , ĊĠĠĠĠĠĠĠ Ġtarget : ĠVirtual User Target , ĊĠĠĠĠĠĠĠ Ġscenario : ĠClass < out ĠScenario >, ĊĠĠĠĠĠĠĠ Ġbenchmark Quality : ĠBenchmark Quality ĊĠĠĠ Ġ): ĠRaw Co hort Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresults Target Ġ= Ġworkspace . directory . resolve (" vu - results "). resolve ( co hort ) ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠVirtual User Options ( target , Ġbenchmark Quality . be have ( scenario )) ĊĠĠĠĠĠĠĠ Ġval Ġprovision ed Ġ= Ġbenchmark Quality ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. provide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. obtain V us ( results Target , Ġworkspace . directory ) ĊĠĠĠĠĠĠĠ Ġval Ġvirtual Users Ġ= Ġprovision ed . virtual Users ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvirtual Users . apply Load ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvirtual Users . gather Results () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRaw Co hort Result . Factory (). full Result ( co hort , Ġresults Target ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvirtual Users . gather Results () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRaw Co hort Result . Factory (). failed Result ( co hort , Ġresults Target , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovision ed . resource . release (). get () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }