From b0fb161a928b7e24ac00dac48651b21644d37b79 Mon Sep 17 00:00:00 2001 From: Quyen Ly Date: Wed, 8 Jan 2025 15:52:49 +0700 Subject: [PATCH] RAP-131 Disabled SQL validation if no SQL assertion group is provided --- dependency.txt | Bin 0 -> 80240 bytes .../rvf/core/service/ValidationRunner.java | 21 ++++++++++-------- .../controller/TestUploadFileController.java | 7 +++--- 3 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 dependency.txt diff --git a/dependency.txt b/dependency.txt new file mode 100644 index 0000000000000000000000000000000000000000..3145d17319af1886481603af9fcf3c2ab923860b GIT binary patch literal 80240 zcmeI5ZEqYoa>wU&fP4qPyx=hMO0w*=UgaKgxkGXf!0x?Df`japz4BU?PqNo`kk6i^ ze*IT1i`{GvyQd|M?1f>?OtZULtmi5g$^ZM`|5*KD^{3VER)1do*XqIQo7MBx$?A>$ zJG1{U?aGVQ#p=>N-`d}c)vML1-SKX9wc6|c{p0E%R=>6DAMEbe_Ia}U?)u4Nd**w) z^PN3;wK`rsw102x>5r@T_WRJDKI_`A?1>Az>%#uM?%qp(FYWG2yZfzOy|O!Lzg&H? ztLN6okJj>LweIeCZQoDqo>Tk(u)B+AudMyT?me})=fBqW&XexRH}=-`>RET+!w#aS z2Gv(~?Hj|$uU3Dt&)*wfzU}qOTin;Tpb2TL0+_ z;>;-bWl3LWl73(qJ1~sx+h4vR|A*c0Bg5|6zU_57=)A+BczORCzlnF@*{?f3&)c}p zn~{K0%j1z2U@1QXtYa->5FCy|aA-j}XP94uY)xRaNsMQxLN6_Fad@EwlGAzYiR@6x{^gugbw>CC(g_pcuG zyq~psMJLvNW_LiJGxGxQkzUw+C!Hts!LD4celU7HF|D@W>AIn>GwgYn@B%C)d6u_& z8-4&@Y1!wD{_I1e0{*gm+P()G+t&6zJZ(mBYI^O+=)(Wc(GT4v43+f|y!B-Dw6i_> zZ1-As(Z=iw#<3s~pUGSOx@bT8xcpM&JGbHEdSadFiE%G>-+Z#Q>3TFiv9$cyGVd!c zyF1L+BCOls(cM#7OYOGMS8c~ zQi6bf4n`r+ym0Alninp$XkNJ7f_^WxI5zUnlBDgPu3nl~(BlzDuE+N+Yj7XDd-wA4 z{2%p3FO2%~_Rh^0d}F_m@T)EcxU`m2iz@LAsZx4rzb@?#veJ+3|K~r~b+;JGCC`6J z3w>qS$7_TG`PP=P;vG{Yc@MGfb+QOYiXAn~lv&T~+ zk(ngJg^ttr_?GsLK? z{jIGv=gd;I*PP$I&TjX`BK~hm3*7~6Ga|XBF;8?*DV77do+D2f}U&yH>M4 z?g>Q>XO9BS9mcC`yZXW6nYFcP4c!kG-@Na8)H)3^d zSw!}FQqF{5)bJ?RfS>U>&ho|aJO4a146t%R`%~R4R-Ram9yvvQ-fs&Vv3A?IL_#AD zQ~tj^|K8V@{=4M8>|PGhwO_<|nNRz*IIINwS(bARcQZJ0j_QBHVN{Axd8f}WQ|gz; zIyxX?^ghn+=TXYvZ55q%_IY=`10wab=Oc3h$_0F$cKYt|(wAfZjXY~MfL+V{TboSt zj*`XMh1$Bi#W=E@<1$(F`yMez%&u3+I5qK~Osd(n@zQqlI_s+DzeLabwsGT9T>3;Z z$=P73^_isFCAajPx9wupUGx}}kA9n2_gFfg*W1NR7+4wGS2xFF`)tFM9p7@Q#6I$! z<639u;*L3+jD!-&Q0KVe$7M;+v9I-#eJL^O}Hm^XfrX%MI5R3TJ2! zb~={+MN^My;^B4f7IyQu4DaO1uKH(lHPAROZ>lP~Z3)3r3|CCD3-Q>>cVAhX(-jJ8 z7lcP$HA&7lzOr`sjCLm|KU3l#`tg;u!?*d$+F^^YtSz;SaXU~U8^dS53@+X+J1S01 zv{0;aXk5o$Hl;eozHfMYR(Ci%uQ`;5mhrxgeS4DiYv-+a4 zu0Z2G?(}Hi!lQG`Exyw}+PD9dG=KRy>He{{aY(eYLisu0bH4&l(K=2+ z_V*iyiq>%o9@vvLsA}BKvo)w{+S0wt>aM9I*u#ifN^f8wFXs<+u_$5R5flt zypC1Nc7fI!R5fnr6r~zeHEusNey-uFrrUwIM!_1l^K6ZRHEutwa{HmZw+2;>+j+JI zRZX`aR=FMejYCE2I0b1Phe{`Ejrk0;j`P(cqkRpk8n^Ro4XT=MC(BfWs>bc`dJR`K zZYO^;&h50;psI2EBYUz2RgK#pRXrJ6Yf#m=9bD9)s&V_Hs&1!s9I7MZs&T%ebsQ>M z$NB20s@rL;K~>{+IHLwtjoXi^x}DYY`e60X_CL>3_t(JJ zPPo&Vbwk*-mqdQ{@SauNq|<`;y4sr;2It(~kL{FX=GBi)YfL$3@0T|I2bQJf^kZO3 zRrtd*{PwzYi>UxU&hFHC#$4C>hc~u+z?r@8y}cFcJI-{PGrMxCz8`2EYAOh!)xKR* z*88nJ$C-CSeC9B-yXQN*leeYsj|`SegMhZPZYP4&7qfW6Qfps=XwSyQ-t(u|c=*BI z!1Vb6mpa>Ft><1GoB@cuSfdTDQi7tlkZ6qaVs zu84Za;aiRYq`XDya(>DCLxW1@=_h^no`@@@>-SAcUR{q{cpTTBQO+IbzK@Rr-`IX_6{M}K&rB=vbAvWup zh)cKNIvE8mg3cM*aNf$uK-LR_JmIkaPPh!}W#H<(1(C9Hd`u8o0&w8=^^r8_iSYsW;A)})lCA&5 zF8HtVGRC|iVP3nSUl||6Y0nL>j-gVE>k;Jl(NA}7(i{<&>8;H4%WC%_NiDIz#|`~O ztfijtO@^b=RqsK1k!WM84o>~N?l=)Ypg*G268mc(5l^|l=3YT=Nk1C(;67-P^8`}a zGNx!*V}EFHJYxEH&s;q?M5Q~1u&BPMO+$!|K=IMIn5eA(-R(41vqk4b&Y-^JlgZHE zI~|t3yPikeFlO`*Rx;re9YQS7(qqJDS<5N9p&xWSv0VQOy}Lc<8>7~lV?ffP@ilJO z_4!#?IhPK(mNVQr1HrvM;tz)cu4?H&TAb(hHZ15fdr$oC?@SuZVcDcvB976D=k{j* z^tZ}3O_71fD@nSa878naX;(pqvVM=l0srG|wCl|{x|~+x)YqMNBk9CO;v=-)=TM1` zQ)pS%=8AxnLn&)OyyDdE{eu<#ci6{iz6~$C2JZ7Pbs=r?ocA6pn)l3hrXA0SdQ+aJ zzi%1ZOjwA~X*~1to7JCIzgqoe_08({t3R*4{fVaIc!@IRlAc2pf0d$Rv{#W7Ox+9^6Ksj6<=skH`7$HhOnWvA&MvllHuc-Xo2VGmccW zlJ?5zdkM=x6Sb9dVV?)s-xF=A6@)o&VcTw!I_>zu-pSXIe=obc43=^&QiCb?PnYSv zM57uE&cRDlMsR4hL-xcu2G0v0;jL*=@+Rl@{duQdpzhi__a&gb$8{N7Dkww-s*&09b1^tbo44FBX1q+a|R9-;RLX7N?2 zaa_u#)Ohu#wTbASW1t2PZRDbL8c9E=zYIO*!gOjD3A>2Th@O$}=#;x#*zn((JGfhD zWVxUknM>j5u3ySdT1Ogg&v0E{`?P0LjqE7zPAuI2?J|Yk zQ68Z^GZZm{JTRxB9Qb>S=;@n1A!6_6cCD=a=wH!(tL;&x6kxD zj+Or4h4#@3%?X#T$wy>NRGmzT@^cPn#`J~J202gP$NiS4c3*D!#`3++ z&2uBy@wK>#&zFy5V=T?-?d-zakFd+T@Gc8g)RN=}-x-bLsi7}AEl9QuDA^U*qpbLA zNJn`{aOY+^3WoSM_ePlG`oa1|OOgftxcYDV8|8p`qfOir-(Mc}3mYSHe$jcE;?@3d z?^W5A?Z)SNFQ0`Wwoere%y#xG4Zv-Crgk`PN#==-6D@|8IqPt%dWNyywl}qTA$khTA%w&+3%@X6+X9- zT68~EVo93j%I)^BNU!7=+8(a5q+b|CbSiSIev9^=e01b6S>Yu#&~&(%W4SQfffYPA zsfhmSTv{%LGiHF83Ed@pkuPEH?Q%h=q${?OLp*Kfa+l#Md6T&f^~$nK)0NmcMSytp zpkYX$ka@YqsBaxC16c*u^e0>skO#;treCLp2&A4n&!Q4f(=^d_5NUL8Myj%i&)tNm#oA| z;Hu@|+Mc3g~8Fg{`~fw}7+3={f<+hayG>MKX7ta@OXv_j+3V9SL;$=vmJ!O;XDd@M7lQ3Nlx;6qc^#|oTF|VdzvYe?L?a{ z1&uJ3N6W6IHgQu;!-@P4|ZHu)$Lv**WfS*#8?lKx| zTk7>|cIQKt(=7L~SP90A37*xlVI%!2RiaWMtr^sI?{seOu^KVS)ontM&Qpka^X*_M zY3X)~5G`oc*@fkQmw=??d$hyj>!+jUn?s>oR@(b_3gQ39eA_e_at_UB;5DbMwW8-{ zy`@WaRT7e}x`dKp#$zp=a@Xn$O@}FJd+ORRI-egqp7>-5$V%3;1!p;YZbu{4mWB>` zFyl`B(}~f8tSmDoX$@*x`@Z?UVRl?KE7K!&al7!LJqR@aJHDpebIZdSvbesybQe5& zWzlHj0U}{`n4Dg3Q?60*s*lJ6#F#`>@*??#7nfilzoFWLwXLL>x1yrNhq2e;TG^KU zE}(=s#^ZPD`tb3{^u(+=@C%o%GA)Sbz>RmBLlH-+h(5MUGo|`#*Gy<7;C^JZ5dUqe zYK}1Ld#gz`@%CJ3b2$4pFs{$qGe3>rs_jYNeQo?$&Ph@~ zb>_3hLuiAJG4Yk}~u)0}j#c|Ux+Q(oi+QYhSkIOmGVS)2i4|fNP zFy$+oqQ81~FtO&!cjwA&<=w&L^D*dGy!-EiF5M-lT>mFczYKKJ8FRQj?cl$M?_OXF`2=47XKO?TZ4_fMhSX*d5!Mj9VSd308sj9qu1M^({NB11u? zzw_<;P!S$ynW@iLedP;C!+tzF`Cul`wg-VZa~%X9k_8<0nG_+zYvq%ujf8QM(` z%^!1!yF_br*>?sl`~1n4-4wl*dzltN#S9G|NUA~_^Ngm{`bb`v%5xkV)wNFpu{|qt zlTIFkeQy3kxLgYIn4w8{oeNv^P?mvEv5xW(o^RFOnoB{uBtD1IJsp$cOrHygS+-LC z*XJbq`8dBW-`(fXqQ(R=Y~R#X!46rJPx4y6PaZWme>Y#aezZT^P<4LH2viAsfHXq0@>!@YOCu@-S-fl_QQm z-pY5eA1@pi=cIv>6L;pyQ<=8q{#&7px`Pt~m@|o3-3H#WesXv#wY>BydZ%AbXW6cIK@zWNIw_bVQQ#|5feQw5%3k@1K0V z%`|AD@%krPQG(rmyQfS20q;k4UEkO5iL_`rJ-5w zdMiI74)F?Z{ZdrIIX=*m`cZNu(SxM#_V^^~GdLj5t~nj>nOz#j+lL-FTA(%C)~5*Z zmsUoVW=xZW#<|s!_Lb#ztn#B)MgSZUEaSk!kheLa;B%YiD zMJ~hB`UelCtoj@{$`V`Sk3KfE&+T^Dh;lNICd@FTtO7F&h_K7Ov8+1XPf^0lr%gLw~4n61D*&z9lBjw@a|xFm#w0og9&L8 z&B3M9a2TU!S4&sdCLzxZ2b%YZv6WLrR<@NVqph6_k*u?O{D~&hAj!EikD^lCI9`K8 zj_$%Nb)K1qGFaPozhhfC%JqD=4~Nfj>LiO(^UUyAUYhhg&#GhORZpu*5~uV%qf%Z} z+z|bv(p^I@N&MSJx13^io7|%J`>Q)W3r22%Kl zw)%~o_?UV_)~0Er5;f`^KJ*;=W1eHJav7r{9FKt68f=hG$6yC`X0Q5frTHshARh~t z{I0X+%xkvtNu)tv3#EAlw;IW(jC!biUs)5)p;?ZxS6%)D@5R^PM<0gBP4(4ddp9A+ za1Wo`;miH>A)Wg52g5sj9?)$)*s9N>yWQh6!ab#aN0^kS#96>_%4_4jPsVqWtv4pu zL=s8Tz!SVhd^x=@mut^Q!RfxwFZLb%CrIG^)GIw|#B(^==X;*n$apWcwBOl3YFYgn z(R{j^`+SlovK-S#>|DVvpc)!78;S9=|3myW)EfENbMBcVwPk;l7%}Z-+qV<3wXXGZXva7x*Y|ZBO~xDk zz?Y17vip{_0Tk%IA`>J!IlLRz;{HDAG2;IR%3`?xx9VUkYwp zSE&DUi$i04m!QBGkj-kJ6|Lpd=f$7>H7wI*P&9JuJM>WHucei_$<{F6sTw*oRk|Zt z9lrzX!#+;b(YaQWMpF#38Iw^{+&rvTW~UC#D&hO)@J_2w$~~JF+!6^5!4njJwBe18L5!#5{kucVF43 z`k?*-y0XtPefn=~m&Z%2!ALORB`F?j(L3rt{&h~A1`D|E$D{M0$Zb`=FCg5$X~#gK z98Rg&q;WOoythw=ZO;6~HzvPCPCs3X^4&6fe6#Wa9#lP_XdflTTbGF%Hv6XD-)=!e zd__&q=GE@*H~Tp1cyr4FPkb^zoWIyVSy^)R)YgFuU6Bs^til*qlbE;-`{u^BEns|YY3SrqD)$wG)v+`p&zwM?%Zft?isDMi4W9osrrEvO&9}_E0ME*LLuhu znGvBrZ&MGs)>1}}EM%I0(HtElW3chC*}6->Ui2cNg!CYs@ic|5flm*S0_e)Aw0%HkYIO7QsHu=9oX z11?{63ggkhRqb+F>N#S9lLyhzzBf5^PSohPipxv;eJCU4c~u|NnB@>u`kVV5MC51Y z-EmeZ`yJ_2aAdf2eMlX_(Z->ha5Ln^gqgf8#uYI~HiuVod?ad2ksES5REnbYqc1uK zo|1-*Q1y9a69<(co5nx6WE0^L8K5oMr#}B((#+tY)!&F*;`YsFg5o@oUyHLt@F$hJ zR2(J^s0Jwe!Pkt~t;e(`{ak$suMFAJjFssHXDmP5oH{*Kw)ml;>)(kGY)7e|7zGd_B|Yze_xf9mbQP zvcq8+>f1g>Ya?vkfxVx5$0KD8p<+^WHZ=276yq*H;(5V5#gBEa-;}=~6R>#)`5OF* znhq~;>2)ICJ`_AjZq`7pPMdMrMiV>puah2qux@54_4x$^Dn5R zK-VZwA$iDumuwRcr~%WO2ZndoFD{We&GZ*Waa6nWt;*Ar|2#R^ip)`Q#LFi1z!1pgm*v!4LDfrBFG@N$P<-Xq-yxN7Gc?Pb^8&!tF`Km?7-GnyoTiskc z>lgK8@myHfZ|&8=H=&oOK-z-canGR6X|4XRc!}5u>z6pru{jk+NyaqHl6j10hV`YS z-;S21TJvqkw+UvX1X*s;hPT1B_+P{kNcK`Zo5P*geE6OWXp zBLDSA(;=#%VaI2*b;232Jn3p{+T=9XA)9d37LT;+x^{~)jiw2LJ~dOzn13&SXS1Fg z$DH=d%6rzewNZ;IDJl=h`;XOos?vlVt8+=L% zFS~5`rH!2auv=tiu$EWd%%-;|oa}eG+4* zc`%mO-Rv^N(3ctjcCWl0ICJXt^KjtZwQ{VAK>OffsS;mz4YOeQtwi#8ICJSQY0}d- zf0}c-f{Go0r}&Jy22jndJUpV2z9i+kQTYW`WVU#Ld0%n28G4F)6X{$U&2^!_k$3E5 zl30(BTl!raf9}%1;mpdfSASjoVfF8;->x3mDcFCtRi?jL{fmA3rm&0SE{z0OhNJn` zD8`D4*ESmVW1}AS*uHCj;3xKZXuqxsPijS>)~T_|;DNp6-SxBVa{b8qW39^CWc6V6 zZCAy?-mPf;Bb&kcrCq0r|10}9ge$FAe6aeX!Gs1Qjs>>I_P#%^9@<~_)Ba=O>0QM8 F{{tT!lAr(p literal 0 HcmV?d00001 diff --git a/src/main/java/org/ihtsdo/rvf/core/service/ValidationRunner.java b/src/main/java/org/ihtsdo/rvf/core/service/ValidationRunner.java index 1fbf7f49..d1f5e1ab 100644 --- a/src/main/java/org/ihtsdo/rvf/core/service/ValidationRunner.java +++ b/src/main/java/org/ihtsdo/rvf/core/service/ValidationRunner.java @@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.io.File; import java.io.IOException; @@ -146,15 +147,17 @@ private void doRunValidations(ValidationRunConfig validationConfig, ValidationSt Map> taskMap = new HashMap<>(); ExecutorService executorService = Executors.newFixedThreadPool(5); StringBuilder statusMessages = new StringBuilder(); - statusMessages.append("RVF assertions validation started"); - reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation()); - ValidationStatusReport mysqlValidationStatusReport = new ValidationStatusReport(validationConfig); - mysqlValidationStatusReport.setResultReport(new ValidationReport()); - taskMap.put("SQL Assertions", executorService.submit(() -> mysqlValidationService.runRF2MysqlValidations(validationConfig, mysqlValidationStatusReport))); + if (!CollectionUtils.isEmpty(validationConfig.getGroupsList())) { + statusMessages.append("RVF assertions validation started"); + reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation()); + ValidationStatusReport mysqlValidationStatusReport = new ValidationStatusReport(validationConfig); + mysqlValidationStatusReport.setResultReport(new ValidationReport()); + taskMap.put("SQL Assertions", executorService.submit(() -> mysqlValidationService.runRF2MysqlValidations(validationConfig, mysqlValidationStatusReport))); + } if (validationConfig.isEnableDrools()) { - statusMessages.append("\nDrools rules validation started"); + statusMessages.append(statusMessages.isEmpty() ? "" : "\n").append("Drools rules validation started"); reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation()); ValidationStatusReport droolsValidationStatusReport = new ValidationStatusReport(validationConfig); droolsValidationStatusReport.setResultReport(new ValidationReport()); @@ -162,7 +165,7 @@ private void doRunValidations(ValidationRunConfig validationConfig, ValidationSt } if (validationConfig.isEnableMRCMValidation()) { - statusMessages.append("\nMRCM validation started"); + statusMessages.append(statusMessages.isEmpty() ? "" : "\n").append("MRCM validation started"); reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation()); ValidationStatusReport mrcmValidationStatusReport = new ValidationStatusReport(validationConfig); mrcmValidationStatusReport.setResultReport(new ValidationReport()); @@ -170,7 +173,7 @@ private void doRunValidations(ValidationRunConfig validationConfig, ValidationSt } if (validationConfig.isEnableTraceabilityValidation()) { - statusMessages.append("\nTraceability comparison validation started"); + statusMessages.append(statusMessages.isEmpty() ? "" : "\n").append("Traceability comparison validation started"); reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation()); ValidationStatusReport traceabilityComparisonReport = new ValidationStatusReport(validationConfig); traceabilityComparisonReport.setResultReport(new ValidationReport()); @@ -247,7 +250,7 @@ private void updateExecutionSummary(ValidationStatusReport statusReport, Validat List failures = statusReport.getResultReport().getAssertionsFailed(); Map testTypeFailuresCount = new EnumMap<>(TestType.class); testTypeFailuresCount.put(TestType.ARCHIVE_STRUCTURAL, 0); - testTypeFailuresCount.put(TestType.SQL, 0); + testTypeFailuresCount.put(TestType.SQL, !CollectionUtils.isEmpty(validationRunConfig.getGroupsList()) ? 0 : -1); testTypeFailuresCount.put(TestType.DROOL_RULES, validationRunConfig.isEnableDrools() ? 0 : -1); testTypeFailuresCount.put(TestType.MRCM, validationRunConfig.isEnableMRCMValidation() ? 0 : -1); testTypeFailuresCount.put(TestType.TRACEABILITY, validationRunConfig.isEnableTraceabilityValidation() ? 0 : -1); diff --git a/src/main/java/org/ihtsdo/rvf/rest/controller/TestUploadFileController.java b/src/main/java/org/ihtsdo/rvf/rest/controller/TestUploadFileController.java index d1d075c6..77bb81e1 100644 --- a/src/main/java/org/ihtsdo/rvf/rest/controller/TestUploadFileController.java +++ b/src/main/java/org/ihtsdo/rvf/rest/controller/TestUploadFileController.java @@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -191,7 +192,7 @@ public ResponseEntity> runPostTestPackage( @Parameter(description = "True if the test file contains RF2 delta files only. Defaults to false.") @RequestParam(value = RF2_DELTA_ONLY, required = false, defaultValue = "false") final boolean isRf2DeltaOnly, @Parameter(description = "Default to false to reduce the size of report file") @RequestParam(value = WRITE_SUCCESSES, required = false, defaultValue = "false") final boolean writeSucceses, @Parameter(description = "manifest.xml file(optional)") @RequestParam(value = MANIFEST, required = false) final MultipartFile manifestFile, - @Parameter(description = "Assertion group names separated by a comma.") @RequestParam(value = GROUPS) final List groupsList, + @Parameter(description = "Assertion group names separated by a comma.") @RequestParam(value = GROUPS, required = false) final List groupsList, @Parameter(description = "Assertion exclusion list separated by a comma.") @RequestParam(value = ASSERTION_EXCLUSION_LIST, required = false) final List assertionExclusionList, @Parameter(description = "Drools rules group names") @RequestParam(value = DROOLS_RULES_GROUPS, required = false) final List droolsRulesGroupsList, @Parameter(description = "Required for non-first time international release testing") @RequestParam(value = PREVIOUS_RELEASE, required = false) final String previousRelease, @@ -274,7 +275,7 @@ public ResponseEntity> runPostTestPackageViaS3( @Parameter(description = "True if the test file contains RF2 delta files only. Defaults to false.") @RequestParam(value = RF2_DELTA_ONLY, required = false, defaultValue = "false") final boolean isRf2DeltaOnly, @Parameter(description = "Defaults to false to reduce the size of report file") @RequestParam(value = WRITE_SUCCESSES, required = false, defaultValue = "false") final boolean writeSucceses, @Parameter(description = "manifest.xml file path in AWS S3") @RequestParam(name = "manifestFileS3Path", required = false) final String manifestFileS3Path, - @Parameter(description = "Assertion group names") @RequestParam(value = GROUPS) final List groupsList, + @Parameter(description = "Assertion group names") @RequestParam(value = GROUPS, required = false) final List groupsList, @Parameter(description = "Assertion exclusion list separated by a comma.") @RequestParam(value = ASSERTION_EXCLUSION_LIST, required = false) final List assertionExclusionList, @Parameter(description = "Drools rules group names") @RequestParam(value = DROOLS_RULES_GROUPS, required = false) final List droolsRulesGroupsList, @Parameter(description = "Required for non-first time international release testing") @RequestParam(value = PREVIOUS_RELEASE, required = false) final String previousRelease, @@ -357,7 +358,7 @@ private boolean isAssertionGroupsValid(List validationGroups, Map responseMap) { // check assertion groups - if (ValidationRunner.EMPTY_TEST_ASSERTION_GROUPS.equals(validationGroups)) { + if (CollectionUtils.isEmpty(validationGroups) || ValidationRunner.EMPTY_TEST_ASSERTION_GROUPS.equals(validationGroups)) { return true; }