From 4dd9dc7dba2f42f90a3a47c761a204576d8307b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EC=84=B1=EB=AC=B5?= Date: Fri, 21 Nov 2025 17:40:56 +0900 Subject: [PATCH 1/3] Fix: Preserve example strings starting with digits in Schema annotation --- .DS_Store | Bin 0 -> 6148 bytes modules/.DS_Store | Bin 0 -> 8196 bytes modules/swagger-annotations/.DS_Store | Bin 0 -> 6148 bytes modules/swagger-annotations/src/.DS_Store | Bin 0 -> 6148 bytes .../swagger-annotations/src/main/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/io/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/io/swagger/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/io/swagger/v3/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/io/swagger/v3/oas/.DS_Store | Bin 0 -> 6148 bytes modules/swagger-core/.DS_Store | Bin 0 -> 6148 bytes modules/swagger-core/src/.DS_Store | Bin 0 -> 6148 bytes modules/swagger-core/src/main/.DS_Store | Bin 0 -> 6148 bytes modules/swagger-core/src/main/java/.DS_Store | Bin 0 -> 6148 bytes .../swagger-core/src/main/java/io/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/io/swagger/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/io/swagger/v3/.DS_Store | Bin 0 -> 6148 bytes .../main/java/io/swagger/v3/core/.DS_Store | Bin 0 -> 6148 bytes .../v3/core/util/AnnotationsUtils.java | 22 ++-- .../v3/core/util/AnnotationsUtilsTest.java | 111 ++++++++++++++++++ 20 files changed, 126 insertions(+), 7 deletions(-) create mode 100644 .DS_Store create mode 100644 modules/.DS_Store create mode 100644 modules/swagger-annotations/.DS_Store create mode 100644 modules/swagger-annotations/src/.DS_Store create mode 100644 modules/swagger-annotations/src/main/.DS_Store create mode 100644 modules/swagger-annotations/src/main/java/.DS_Store create mode 100644 modules/swagger-annotations/src/main/java/io/.DS_Store create mode 100644 modules/swagger-annotations/src/main/java/io/swagger/.DS_Store create mode 100644 modules/swagger-annotations/src/main/java/io/swagger/v3/.DS_Store create mode 100644 modules/swagger-annotations/src/main/java/io/swagger/v3/oas/.DS_Store create mode 100644 modules/swagger-core/.DS_Store create mode 100644 modules/swagger-core/src/.DS_Store create mode 100644 modules/swagger-core/src/main/.DS_Store create mode 100644 modules/swagger-core/src/main/java/.DS_Store create mode 100644 modules/swagger-core/src/main/java/io/.DS_Store create mode 100644 modules/swagger-core/src/main/java/io/swagger/.DS_Store create mode 100644 modules/swagger-core/src/main/java/io/swagger/v3/.DS_Store create mode 100644 modules/swagger-core/src/main/java/io/swagger/v3/core/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ddb8b37e479569762fed3500725ae3403fbf7704 GIT binary patch literal 6148 zcmeHKO>fgM7=GQAHDyA|0i<1!B5@t1Fa|{H~=cm5_N?%u9|c~sw(vi z|AD{2m0!Yt;RMfXyHb-4ZXksGR`&DSeqP&o+}JS@iOxK_OXL!fgTz?BitG~Oc1{

hTg8K*)8N%nz4o#Z{tAJJD-&KI$-5MQHzn{p{%KO{;p-fG_K~Ja;UXPwpK)nk4 z3pi!=gd{~Yr-Wk4%4~7-_w2C9re-Ez!)Y?k@^<^1sBP7+Y&V>Sv*Wx8&SVkf!+f4~ zhO<{(I*~F7*ZwekF^-FYd;LhJ`EZ=ZGZiq7Vo+Yc9H)^iI&z*ynTic`gVS`H19x|^ zIB2)`yn~1P%RO)L=pOw0`wy1OrgP)goyW(6_sJxcAC)E~uNLiMH`OXRMJ`Vs70snqYD3fg};sUc}^#Kt;$@rCx0%j=@hFpLC+tM zClxlY=_b2L$5{PC>e5qS>yo+fx^70eluwSH@MQMwhmI2ajaV)(a2EXRU|y7Kx2{D~&1ynK_P?!$;Qd( TD~+gu*$)9FgUzf0e^r5>&O5zi literal 0 HcmV?d00001 diff --git a/modules/.DS_Store b/modules/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1bab4838d9b308a7ab3fb12ad543990e55e5f5b0 GIT binary patch literal 8196 zcmeHML2uJA6n@?cOEs7(u|Y3L5eSLH2HnP(5SLQMfh$FD094X8E7{T{YSI=_Rq7f3 z1Al=lzl8t73BG50Q<}7_2ZVsxll>gq-+O+a?WE5mB2nwNw~5L`WFfOGt)iHbxSw+_ zE$NmLqyV0%LoW4biyR7aqfLWhz%XDKFbo(53G&>wcgalMN^j`7P z^Dy+ACv~U!!gGg>()!~tNE|P4dlKNaT?~2s(hJ(*uom`%b}X@V)nOH_Vxv?ZjrJ;) zO?z*Dcf4tj9_*lgZ}h1!Pqpnb8-I(n{)lk@OL}MpGz(Bu|p&DxVU*rz$V{5#dIi{?dlt; zE?Nhu2N)9p(Z^o*D46D5T+i^nk+av4`rFXJ*5+&CJ(6C*{27CF%+|#`c*gpaW#;oe zqvdLDK1b3ohqh@S^NHbCgg@R>$+RwcUO%VK>)K3R?}3bICxhkvn8x1t6;{rJ?*Rvr zr3BCHt0#SQVc=h8Kokz@2Q_$b@`E?)49D6w@>^t1JZ_?-grJb&IHU~6Ay5Bdh`NoTjHzll VQ4%dkfBquCeE%i!ra0FO`~(&JNYOZ*+3 z*`p$?Th*ooTyoo1I+%5Y<6z7a#`!7Aj#PgUte=andbV1_E72(JFNe@Tpw>Uv9eknlqUI2#V0Dh&ol6D~8bN=(kOr zV=&gJ(?OWahcIsz=7u8F+wu9f3J2k6TZte|Jm>N|Jfw&F$2uNzhXe7 zYHqEHQ!=%6ZgNy>ZPa^I5{ip8PE*iOr5IzW6z5Tupx-6~(J>fnL=Ord1QZS2Fat|v F;2V?(VCw(? literal 0 HcmV?d00001 diff --git a/modules/swagger-annotations/src/.DS_Store b/modules/swagger-annotations/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c2f9a9dc7672e7153c34d154e4470b357f6723c5 GIT binary patch literal 6148 zcmeHKO-sW-5Z!I7O({YT3OxqA7OmDQ;w9F4@M=U4DmAf1gK1X!VGpH{v;HA}iGN4m z>~0HMJqaRZ24>%6c4ou84Z9g3glr7kTSAnC5Dt_uQ^4?z&^+m!WUMC(l(fc4tZu_t zg?Od~S^hr*w0Akt6@iFE@@4-HF}LxqMHe!Q3rGD&yU(xTV;uDd)#{tfWOGZ)c_;4_ zoooMIjr>6{81@@M?~);K+j@o5FUs$sX&t|ZHpmo=O9fw<~NjH@`(|l76log| z>FRJHJ%c*+6afZk?-=?pham10|uj m)Zi=yhQ5jsOIL9jss(Zyc*GiN=R(qAXx%~V>!6`T; z=gPlRsoxL!gI*)(UeMF2QgJx3gYYbBr_J)xflB&8l(f4#A!@Y|a(NylEtNLZAZhh< zu5TusqEl>^E2B}pR;#-8oy~F89qn$w-rC$AkBiRo%G%yZ^C5mr)RUoJ;=9zcXmJA1 zFsAhk{caMgK2 literal 0 HcmV?d00001 diff --git a/modules/swagger-annotations/src/main/java/.DS_Store b/modules/swagger-annotations/src/main/java/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a560121ec691fc5a3e7256b92aef0bb3565b5934 GIT binary patch literal 6148 zcmeHK!AiqG5Zz6yO(;SR3OxqA7OmDQ;w8p<@M=U4Dm5`hgE1>jY7V84v;L4@;_v9p z?ncn+!HYF@Ns$RipRmXtw9iZUki=Qu>AZ5IR$o|bm<_XOUi!D9 z@be%aXI?Nm$EOn^lCZLa@H8G41AF;Eq}P#zsH$QA&w4%1S= z#_K=EI2v7zr9xN%;VKkRg>v0ua1{>oj`njkmI_rkAL5tr zci_$L1_^R>2mzY0X5V-|Z11zR>mef58g^ER8bstl87p-R{}GO}PD#aiW`N3Eqeorp zAEf$koK9tn<1;eA@2*BU6%_C?vjli19j*I*{PEGcGe4QrwpxJy- zm6_^~*_v1L=DhRpQWxPM8VvJR)Ia63BdybTVn^|D(k^(!;Eio7&I@yt-F!Hx@>tjb?Mn-}tjOUh+pxQ`>_2ly~^~h zd2UkpMveS*IDtDDuQ<2~`&p{99wL*fNw%OcAPfitU!MWDvUzh~e=0HqVL%voX9jqE z@S%)>!_uNzIxv_P09b|F2yFgo1M%;5zD@SZ1aK$Z?M_ks;W) z*`Zk@_}>iRx3k!YHBSyeUx$D4%eg^^MO<*iYgtcimTRmC8%Y6}w{B>}&sC zj{Q8yhgmxqT;kK2lu0_Y3@#^ReNoH^We1mkUXaHNz={Ye^jz!a0bs{s9Z+= zAWdX?2hTI#nGYc`KnxHAi_U;K_w3rDCrbGd1H{0u8Nl;FfFgPZ3ytdNfI+nYfMu9g z0ybX%F-92l3>F$;1%&HRKpo0Wi@|j`%nRe^87wsFaK=sZ!Ofew=}@?OJM1r%JL8^4 z8i@g7;4=f*`++!E|Brv}|CJLB!~ij{m<;f8$M3WuH&a{Zvcy^|KyN@%(67+=5dwxP h#o&vjxDKiW<^>vnp20#R%z)5EK+!-0G4Q7hyaUPOP;>wQ literal 0 HcmV?d00001 diff --git a/modules/swagger-annotations/src/main/java/io/swagger/v3/.DS_Store b/modules/swagger-annotations/src/main/java/io/swagger/v3/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6dfa7cb80bcc83d1bd6a2adfef76e0ea8acf6d73 GIT binary patch literal 6148 zcmeHK!AiqG5Z!I7O({YT3OxqA7OmDQ;w9F4@M=U4DmAf1gE1>jYY(N6v;L4@;_v92 z-K|in7Y~AE24>%6c4ou84Z9g3glrAFTS8QX5Dt_uSHkd(&^+m!Z$I>66{%x9};B(m}ocE_3<9(sI!$I%VhD zzgHuF5DbQCE9hU+)0t9nIJJZDJnD@)mDMAa41y@>^>sqj?IGmqB1*by)KbHwo9bNO zOgJT{)Tva*<7T~HbDMjONzEPaZ^Pbc>`o>nXKj7+;I#7)KPKwM5HImfYFV*3g;yB1 znrFYC#45RiXBs_?Vq^xG0cK!v8L%gwQ(oK>xiV&e8TcgwbUwIHLeFAmP#+x_bPE71 zz^w(g{`m*G)1C-+o4F?dPrA? z3+Wl;kr`kHW*MN~4^pA~|M=(rUkCBP3@`(W$$%`h{dNnr*}HYFO1f)Z=na&F;xdC@ kDKPX^j99vgt57ZQyJP@8i&f!laZ|D0`^_+jlTzt3?(5H-I5}Vp7&&9zeahNy;w7!v@uF4! zw8U8Gr@rSe2c%s!^K*tS^(+@|c6m_Nd>X9*ipn8IstdT0{Vc2souV;bET z(@f*b4(3h`ogOwvM#o0-BZb2FnTf*L(R1gk=9ur*wi*$i_Z$mZP7Kl#oMTF4RMikT+HaBCERDSYT_-M6= zh2bKLgCt;dWlfBpknJ+vWH2J1!9tT)#mgj$0lPSr6)%cB+91yEdg%EiT%Zn161H6l zAPPQnF{In{Y5{E&Z-0}TW{dVE>6xgQ%3QP`N!Q4yMGEl}Wt0GEQ5F>K2dc(Elki7$ z(HeS=I_M30i{7CR=o9*izM}&?gvaqkJc+0944%a{F5~-n6>ne2v^p#&w{VBjP zI6YqZjvLXC(FU|g*+qT`{nvL%F5e*$O)nB^_aP`M_#qtZpb+j1K)&JNYOZ*+3 z*`p$?Th*ooTyoo1I+%5Y<6z7a#`!7Aj#PgUte=andbV1_E72(JFNe@Tpw>Uv9eknlqUI2#V0Dh&ol6D~8bN=(kOr zV=&gJ(?OWahcIsz=7u8F+wu9f3J2k6TZte|Jm>N|Jfw&F$2uNzhXe7 zYHqEHQ!=%6ZgNy>ZPa^I5{ip8PE*iOr5IzW6z5Tupx-6~(J>fnL=Ord1QZS2Fat|v F;2V?(VCw(? literal 0 HcmV?d00001 diff --git a/modules/swagger-core/src/.DS_Store b/modules/swagger-core/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0eba97a9c4060877a5427d9057a3811c7febfec4 GIT binary patch literal 6148 zcmeHK!A{#i5S>lj;s_z-&`KOF^%@mZpjFk28{p6@uF3&WYS$51HQp$8nnM)HXZkU{ z@+JM9@@9953MoerR5Q}-o1LApy>G4E9U@ZwNw!JUB_bcn*y^D9hwwP-lC+%111f&T zr$T>A3!S3R4-|R)4Di}{bWRE7RNh*@j~ILX$B3E8A}*a)Be%|%>8Qx7It+iSR@-~_ ze8pe!SN)UtOi$xFsV7xG86R=)v(`m=Z71oMd^jC+U+n6#PV#a%HVJt)M9A@BUS@jQ z*OM} zX=KgeHT;CJn9q-RTo$@Kg^%Mss%c0S)wlTgg|WZ+KvzT<5C(*SC&_@@8~xQM`StSA z!hkSvpA7K+5I`9thmA$Eb)YdN0FbYdMqrz(KQLeiFml*fga@K*D$u4XS7InvIVhWs z@yNwD7Hv8y^JYB9y;->mMY+O51ty$SWKmjSKp42mK-+e^eE#p>UH{)qlAbUi4E$FN zC~q&`>tjmpY+afhpS1z>E0l%f8jFh*80IKOEFZ<|P$TdMYycyNjYW7MauF~zNFxk9 GC<9kEFJOlN literal 0 HcmV?d00001 diff --git a/modules/swagger-core/src/main/.DS_Store b/modules/swagger-core/src/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3cc6d6b87d7259cfd342a330e52f18b1f2254ca7 GIT binary patch literal 6148 zcmeHKOH0E*5ZZyc*GiN=R(qAXx%~V>!6`T; z=gPlRsoxL!gI*)(UeMF2QgJx3gYYbBr_J)xflB&8l(f4#A!@Y|a(NylEtNLZAZhh< zu5TusqEl>^E2B}pR;#-8oy~F89qn$w-rC$AkBiRo%G%yZ^C5mr)RUoJ;=9zcXmJA1 zFsAhk{caMgK2 literal 0 HcmV?d00001 diff --git a/modules/swagger-core/src/main/java/.DS_Store b/modules/swagger-core/src/main/java/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a560121ec691fc5a3e7256b92aef0bb3565b5934 GIT binary patch literal 6148 zcmeHK!AiqG5Zz6yO(;SR3OxqA7OmDQ;w8p<@M=U4Dm5`hgE1>jY7V84v;L4@;_v9p z?ncn+!HYF@Ns$RipRmXtw9iZUki=Qu>AZ5IR$o|bm<_XOUi!D9 z@be%aXI?Nm$EOn^lCZLa@H8G41AF;Eq}P#zsH$QA&w4%1S= z#_K=EI2v7zr9xN%;VKkRg>v0ua1{>oj`njkmI_rkAL5tr zci_$L1_^R>2mzY0X5V-|Z11zR>mef58g^ER8bstl87p-R{}GO}PD#aiW`N3Eqeorp zAEf$koK9tn<1;eA@2*BU6%_C?vjli19j*I*{PEGcGe4QrwpxJy- zm6_^~*_v1L=DhRpQWxPM8VvJR)Ia63BdybTVn^|D(k^(!;Eio7&I@yt-F!Hx@>tjb?Mn-}tjOUh+pxQ`>_2ly~^~h zd2UkpMveS*IDtDDuQ<2~`&p{99wL*fNw%OcAPfitU!MWDvUzh~e=0HqVL%voX9jqE z@S%)>!_uNzIxv_P09b|F2yFgo1M%;5zD@SZ1aK$Z?M_ks;W) z*`Zk@_}>iRx3k!YHBSyeUx$D4%eg^^MO<*iYgtcimTRmC8%Y6}w{B>}&sC zj{Q8yhgmxqT;kK2lu0_Y3@#^ReNoH^We1mkUXaHNz={Ye^jz!a0bs{s9Z+= zAWdX?2hTI#nGYc`KnxHAi_U;K_w3rDCrbGd1H{0u8Nl;FfFgPZ3ytdNfI+nYfMu9g z0ybX%F-92l3>F$;1%&HRKpo0Wi@|j`%nRe^87wsFaK=sZ!Ofew=}@?OJM1r%JL8^4 z8i@g7;4=f*`++!E|Brv}|CJLB!~ij{m<;f8$M3WuH&a{Zvcy^|KyN@%(67+=5dwxP h#o&vjxDKiW<^>vnp20#R%z)5EK+!-0G4Q7hyaUPOP;>wQ literal 0 HcmV?d00001 diff --git a/modules/swagger-core/src/main/java/io/swagger/v3/.DS_Store b/modules/swagger-core/src/main/java/io/swagger/v3/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e90bc9316355e195282483500d443e7e27b97b9d GIT binary patch literal 6148 zcmeHK!AiqG5Z!I7O({YT3OxqA7OmDQ;w9F4@M=U4Dz#~g24hy*)E-J9XZ<0+#NW|3 zyW4_RPl8C9f!Q~io!KyN!)`_hAsfT)mJlT&gaaka6fk@vG*3Dw8SBXcC9QE1sZJ27 z0ME1_%l~J9_AVznLW#cUec8W5%x%1D(S^+7g3;j7?(=K#7=?qRT78q5Y;I{e@8q4L zbM4=$k)O1a;h@p(U((Z=Qc*Cq+rfF*8?{QSM=DO*VchHMgs|H~$kjy{ch#t&hH-bG zbA2=66r4h#o`oR zV9e@y^80b5;#>Hp@zXd)W`G%B1{RS4d)7I{MJ$eMVg{IjUok-Eg9|0}ET#ta(Sbp? z0KgpFT43v6f1pbapl2~P2oFS>RG>+fw#AUPbC4z-^PY`Q4VrWz^_#JdeY3P3inNV~ zbal9pooSeQHkE{wEyKj9N$H`glr#J> zT=$pkf7xmKp6wt=fg_qWKk50ipT8H|pW8SlBGDhGFNwNDZb@A-r7>U6r@>#YaduQzAw!Su}r>RX$yW;5S=`s~Hq_k$C8 znyU-U9VYN^(zar;2G-zu-RIFLmn#2?Sk13_4xIu{0jI#j3fQ-XxBM{8^*RNd0{@`` z{C)`FjG@KKpni3r&{qIp8)0pz^9Lj61QtV!l|l5tgh>UORAH|e!lWY}SYBwcGHB9C z*vp5oBMW;&5qfkyKhSg%p+Q$V1)Ku66<9FME}#E<_uv0-C%KkWz$x%gDInUr(QY40 zvS;hu;`po$;D>NF=2Zr-Q&7=IF}Qpbufnw<9&iO1TC5Br0&^b%S_W4*1s+v_Ke^V2 A<^TWy literal 0 HcmV?d00001 diff --git a/modules/swagger-core/src/main/java/io/swagger/v3/core/util/AnnotationsUtils.java b/modules/swagger-core/src/main/java/io/swagger/v3/core/util/AnnotationsUtils.java index e331732722..82ce4e5c20 100644 --- a/modules/swagger-core/src/main/java/io/swagger/v3/core/util/AnnotationsUtils.java +++ b/modules/swagger-core/src/main/java/io/swagger/v3/core/util/AnnotationsUtils.java @@ -765,16 +765,24 @@ public static Optional getSchemaFromAnnotation( schemaObject.setDefault(schema.defaultValue()); } if (StringUtils.isNotBlank(schema.example())) { - try { - if (openapi31) { - schemaObject.setExample(Json31.mapper().readTree(schema.example())); - } else { - schemaObject.setExample(Json.mapper().readTree(schema.example())); + String exampleValue = schema.example().trim(); + + // Fix: Prevent numeric-starting example strings (e.g. "5 lacs per annum") from being parsed as numbers + if (exampleValue.matches("^[0-9].*") && !exampleValue.startsWith("\"")) { + schemaObject.setExample(exampleValue); + } else { + try { + if (openapi31) { + schemaObject.setExample(Json31.mapper().readTree(exampleValue)); + } else { + schemaObject.setExample(Json.mapper().readTree(exampleValue)); + } + } catch (IOException e) { + schemaObject.setExample(exampleValue); } - } catch (IOException e) { - schemaObject.setExample(schema.example()); } } + if (StringUtils.isNotBlank(schema.format())) { schemaObject.setFormat(schema.format()); } diff --git a/modules/swagger-core/src/test/java/io/swagger/v3/core/util/AnnotationsUtilsTest.java b/modules/swagger-core/src/test/java/io/swagger/v3/core/util/AnnotationsUtilsTest.java index 3b717062fc..7ee92cfbc2 100644 --- a/modules/swagger-core/src/test/java/io/swagger/v3/core/util/AnnotationsUtilsTest.java +++ b/modules/swagger-core/src/test/java/io/swagger/v3/core/util/AnnotationsUtilsTest.java @@ -7,6 +7,9 @@ import io.swagger.v3.oas.models.media.Schema; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import java.lang.annotation.Annotation; +import static org.testng.Assert.assertNotNull; + import java.io.File; import java.io.Serializable; @@ -59,6 +62,7 @@ public void resolveSchemaFromType(Class aClass, Map expected) assertEquals(schema.get$ref(), expected.get("$ref")); } + @DataProvider private Object[][] expectedSchemaFromTypeAndFormat() { return new Object[][]{ @@ -96,6 +100,113 @@ private void emailType() { @ApiResponse(content = @Content(schema = @io.swagger.v3.oas.annotations.media.Schema(implementation = DummyClass.class))) private void dummyType() { } +@Test + public void testExampleStartingWithNumberShouldBeString() throws Exception { + io.swagger.v3.oas.annotations.media.Schema annotation = new io.swagger.v3.oas.annotations.media.Schema() { + @Override + public Class annotationType() { + return io.swagger.v3.oas.annotations.media.Schema.class; + } + + // --- 기본 메타데이터 --- + @Override public String name() { return ""; } + @Override public String title() { return ""; } + @Override public String description() { return ""; } + @Override public String format() { return ""; } + @Override public String ref() { return ""; } + @Override public boolean nullable() { return false; } + @Override public boolean required() { return false; } + @Override public io.swagger.v3.oas.annotations.media.Schema.AccessMode accessMode() { return io.swagger.v3.oas.annotations.media.Schema.AccessMode.AUTO; } + @Override public io.swagger.v3.oas.annotations.media.Schema.RequiredMode requiredMode() { return io.swagger.v3.oas.annotations.media.Schema.RequiredMode.AUTO; } + @Override public String example() { return "5 lacs per annum"; } // ✅ 테스트 핵심 값 + @Override public Class implementation() { return java.lang.Void.class; } + @Override public Class not() { return java.lang.Void.class; } + @Override public Class[] oneOf() { return new Class[0]; } + @Override public Class[] anyOf() { return new Class[0]; } + @Override public Class[] allOf() { return new Class[0]; } + + // --- 수치/크기 제약조건 --- + @Override public double multipleOf() { return 0; } + @Override public String maximum() { return ""; } + @Override public boolean exclusiveMaximum() { return false; } + @Override public String minimum() { return ""; } + @Override public boolean exclusiveMinimum() { return false; } + @Override public int maxLength() { return Integer.MAX_VALUE; } + @Override public int minLength() { return 0; } + @Override public String pattern() { return ""; } + @Override public int maxProperties() { return 0; } + @Override public int minProperties() { return 0; } + + // --- 기타 속성들 --- + @Override public boolean hidden() { return false; } + @Override public boolean enumAsRef() { return false; } + @Override public boolean deprecated() { return false; } + @Override public boolean readOnly() { return false; } + @Override public boolean writeOnly() { return false; } + @Override public String type() { return ""; } + @Override public String defaultValue() { return ""; } + @Override public String discriminatorProperty() { return ""; } + @Override public String[] allowableValues() { return new String[0]; } + + // --- ✅ 누락되었던 메서드 (requiredProperties) --- + @Override public String[] requiredProperties() { return new String[0]; } + + // --- 복잡한 객체 반환 메서드들 --- + @Override public io.swagger.v3.oas.annotations.media.Schema.SchemaResolution schemaResolution() { return io.swagger.v3.oas.annotations.media.Schema.SchemaResolution.DEFAULT; } + @Override public String _const() { return ""; } + @Override public String[] examples() { return new String[0]; } + @Override public Class additionalPropertiesSchema() { return java.lang.Void.class; } + @Override public Class unevaluatedProperties() { return java.lang.Void.class; } + @Override public io.swagger.v3.oas.annotations.StringToClassMapItem[] properties() { return new io.swagger.v3.oas.annotations.StringToClassMapItem[0]; } + @Override public io.swagger.v3.oas.annotations.StringToClassMapItem[] patternProperties() { return new io.swagger.v3.oas.annotations.StringToClassMapItem[0]; } + @Override public io.swagger.v3.oas.annotations.StringToClassMapItem[] dependentSchemas() { return new io.swagger.v3.oas.annotations.StringToClassMapItem[0]; } + @Override public io.swagger.v3.oas.annotations.media.DependentRequired[] dependentRequiredMap() { return new io.swagger.v3.oas.annotations.media.DependentRequired[0]; } + @Override public io.swagger.v3.oas.annotations.media.Schema.AdditionalPropertiesValue additionalProperties() { return io.swagger.v3.oas.annotations.media.Schema.AdditionalPropertiesValue.FALSE; } + @Override public Class[] exampleClasses() { return new Class[0]; } + @Override public String $comment() { return ""; } + @Override public Class then() { return java.lang.Void.class; } + @Override public Class _else() { return java.lang.Void.class; } + @Override public Class _if() { return java.lang.Void.class; } + @Override public Class unevaluatedItems() { return java.lang.Void.class; } + @Override public Class additionalItems() { return java.lang.Void.class; } + @Override public int minContains() { return 0; } + @Override public int maxContains() { return 0; } + @Override public Class propertyNames() { return java.lang.Void.class; } + @Override public Class contentSchema() { return java.lang.Void.class; } + @Override public String contentMediaType() { return ""; } + @Override public String contentEncoding() { return ""; } + @Override public String $dynamicRef() { return ""; } + @Override public String $dynamicAnchor() { return ""; } + @Override public String $vocabulary() { return ""; } + @Override public String $anchor() { return ""; } + @Override public String $schema() { return ""; } + @Override public String $id() { return ""; } + @Override public Class contains() { return java.lang.Void.class; } + @Override public int exclusiveMinimumValue() { return 0; } + @Override public int exclusiveMaximumValue() { return 0; } + @Override public String[] types() { return new String[0]; } + @Override public Class[] prefixItems() { return new Class[0]; } + @Override public io.swagger.v3.oas.annotations.extensions.Extension[] extensions() { return new io.swagger.v3.oas.annotations.extensions.Extension[0]; } + @Override public Class[] subTypes() { return new Class[0]; } + @Override public io.swagger.v3.oas.annotations.media.DiscriminatorMapping[] discriminatorMapping() { return new io.swagger.v3.oas.annotations.media.DiscriminatorMapping[0]; } + + @Override + public io.swagger.v3.oas.annotations.ExternalDocumentation externalDocs() { + return new io.swagger.v3.oas.annotations.ExternalDocumentation() { + @Override public Class annotationType() { return io.swagger.v3.oas.annotations.ExternalDocumentation.class; } + @Override public String description() { return ""; } + @Override public String url() { return ""; } + @Override public io.swagger.v3.oas.annotations.extensions.Extension[] extensions() { return new io.swagger.v3.oas.annotations.extensions.Extension[0]; } + }; + } + }; + + io.swagger.v3.oas.models.media.Schema schema = + AnnotationsUtils.getSchemaFromAnnotation(annotation, null, null, false, null).get(); + + assertNotNull(schema); + assertEquals(schema.getExample(), "5 lacs per annum"); + } class DummyClass implements Serializable {} From 19aaedb4d76ddd03df0f5aa24d55e1c0032144f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EC=84=B1=EB=AC=B5?= Date: Fri, 21 Nov 2025 17:44:35 +0900 Subject: [PATCH 2/3] chore: remove all tracked .DS_Store files --- .DS_Store | Bin 6148 -> 0 bytes modules/.DS_Store | Bin 8196 -> 0 bytes modules/swagger-annotations/.DS_Store | Bin 6148 -> 0 bytes modules/swagger-annotations/src/.DS_Store | Bin 6148 -> 0 bytes modules/swagger-annotations/src/main/.DS_Store | Bin 6148 -> 0 bytes .../swagger-annotations/src/main/java/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/io/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/io/swagger/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/io/swagger/v3/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/io/swagger/v3/oas/.DS_Store | Bin 6148 -> 0 bytes modules/swagger-core/.DS_Store | Bin 6148 -> 0 bytes modules/swagger-core/src/.DS_Store | Bin 6148 -> 0 bytes modules/swagger-core/src/main/.DS_Store | Bin 6148 -> 0 bytes modules/swagger-core/src/main/java/.DS_Store | Bin 6148 -> 0 bytes modules/swagger-core/src/main/java/io/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/io/swagger/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/io/swagger/v3/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/io/swagger/v3/core/.DS_Store | Bin 6148 -> 0 bytes 18 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store delete mode 100644 modules/.DS_Store delete mode 100644 modules/swagger-annotations/.DS_Store delete mode 100644 modules/swagger-annotations/src/.DS_Store delete mode 100644 modules/swagger-annotations/src/main/.DS_Store delete mode 100644 modules/swagger-annotations/src/main/java/.DS_Store delete mode 100644 modules/swagger-annotations/src/main/java/io/.DS_Store delete mode 100644 modules/swagger-annotations/src/main/java/io/swagger/.DS_Store delete mode 100644 modules/swagger-annotations/src/main/java/io/swagger/v3/.DS_Store delete mode 100644 modules/swagger-annotations/src/main/java/io/swagger/v3/oas/.DS_Store delete mode 100644 modules/swagger-core/.DS_Store delete mode 100644 modules/swagger-core/src/.DS_Store delete mode 100644 modules/swagger-core/src/main/.DS_Store delete mode 100644 modules/swagger-core/src/main/java/.DS_Store delete mode 100644 modules/swagger-core/src/main/java/io/.DS_Store delete mode 100644 modules/swagger-core/src/main/java/io/swagger/.DS_Store delete mode 100644 modules/swagger-core/src/main/java/io/swagger/v3/.DS_Store delete mode 100644 modules/swagger-core/src/main/java/io/swagger/v3/core/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index ddb8b37e479569762fed3500725ae3403fbf7704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO>fgM7=GQAHDyA|0i<1!B5@t1Fa|{H~=cm5_N?%u9|c~sw(vi z|AD{2m0!Yt;RMfXyHb-4ZXksGR`&DSeqP&o+}JS@iOxK_OXL!fgTz?BitG~Oc1{

hTg8K*)8N%nz4o#Z{tAJJD-&KI$-5MQHzn{p{%KO{;p-fG_K~Ja;UXPwpK)nk4 z3pi!=gd{~Yr-Wk4%4~7-_w2C9re-Ez!)Y?k@^<^1sBP7+Y&V>Sv*Wx8&SVkf!+f4~ zhO<{(I*~F7*ZwekF^-FYd;LhJ`EZ=ZGZiq7Vo+Yc9H)^iI&z*ynTic`gVS`H19x|^ zIB2)`yn~1P%RO)L=pOw0`wy1OrgP)goyW(6_sJxcAC)E~uNLiMH`OXRMJ`Vs70snqYD3fg};sUc}^#Kt;$@rCx0%j=@hFpLC+tM zClxlY=_b2L$5{PC>e5qS>yo+fx^70eluwSH@MQMwhmI2ajaV)(a2EXRU|y7Kx2{D~&1ynK_P?!$;Qd( TD~+gu*$)9FgUzf0e^r5>&O5zi diff --git a/modules/.DS_Store b/modules/.DS_Store deleted file mode 100644 index 1bab4838d9b308a7ab3fb12ad543990e55e5f5b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHML2uJA6n@?cOEs7(u|Y3L5eSLH2HnP(5SLQMfh$FD094X8E7{T{YSI=_Rq7f3 z1Al=lzl8t73BG50Q<}7_2ZVsxll>gq-+O+a?WE5mB2nwNw~5L`WFfOGt)iHbxSw+_ zE$NmLqyV0%LoW4biyR7aqfLWhz%XDKFbo(53G&>wcgalMN^j`7P z^Dy+ACv~U!!gGg>()!~tNE|P4dlKNaT?~2s(hJ(*uom`%b}X@V)nOH_Vxv?ZjrJ;) zO?z*Dcf4tj9_*lgZ}h1!Pqpnb8-I(n{)lk@OL}MpGz(Bu|p&DxVU*rz$V{5#dIi{?dlt; zE?Nhu2N)9p(Z^o*D46D5T+i^nk+av4`rFXJ*5+&CJ(6C*{27CF%+|#`c*gpaW#;oe zqvdLDK1b3ohqh@S^NHbCgg@R>$+RwcUO%VK>)K3R?}3bICxhkvn8x1t6;{rJ?*Rvr zr3BCHt0#SQVc=h8Kokz@2Q_$b@`E?)49D6w@>^t1JZ_?-grJb&IHU~6Ay5Bdh`NoTjHzll VQ4%dkfBquCeE%i!ra0FO`~(&JNYOZ*+3 z*`p$?Th*ooTyoo1I+%5Y<6z7a#`!7Aj#PgUte=andbV1_E72(JFNe@Tpw>Uv9eknlqUI2#V0Dh&ol6D~8bN=(kOr zV=&gJ(?OWahcIsz=7u8F+wu9f3J2k6TZte|Jm>N|Jfw&F$2uNzhXe7 zYHqEHQ!=%6ZgNy>ZPa^I5{ip8PE*iOr5IzW6z5Tupx-6~(J>fnL=Ord1QZS2Fat|v F;2V?(VCw(? diff --git a/modules/swagger-annotations/src/.DS_Store b/modules/swagger-annotations/src/.DS_Store deleted file mode 100644 index c2f9a9dc7672e7153c34d154e4470b357f6723c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO-sW-5Z!I7O({YT3OxqA7OmDQ;w9F4@M=U4DmAf1gK1X!VGpH{v;HA}iGN4m z>~0HMJqaRZ24>%6c4ou84Z9g3glr7kTSAnC5Dt_uQ^4?z&^+m!WUMC(l(fc4tZu_t zg?Od~S^hr*w0Akt6@iFE@@4-HF}LxqMHe!Q3rGD&yU(xTV;uDd)#{tfWOGZ)c_;4_ zoooMIjr>6{81@@M?~);K+j@o5FUs$sX&t|ZHpmo=O9fw<~NjH@`(|l76log| z>FRJHJ%c*+6afZk?-=?pham10|uj m)Zi=yhQ5jsOIL9jss(Zyc*GiN=R(qAXx%~V>!6`T; z=gPlRsoxL!gI*)(UeMF2QgJx3gYYbBr_J)xflB&8l(f4#A!@Y|a(NylEtNLZAZhh< zu5TusqEl>^E2B}pR;#-8oy~F89qn$w-rC$AkBiRo%G%yZ^C5mr)RUoJ;=9zcXmJA1 zFsAhk{caMgK2 diff --git a/modules/swagger-annotations/src/main/java/.DS_Store b/modules/swagger-annotations/src/main/java/.DS_Store deleted file mode 100644 index a560121ec691fc5a3e7256b92aef0bb3565b5934..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!AiqG5Zz6yO(;SR3OxqA7OmDQ;w8p<@M=U4Dm5`hgE1>jY7V84v;L4@;_v9p z?ncn+!HYF@Ns$RipRmXtw9iZUki=Qu>AZ5IR$o|bm<_XOUi!D9 z@be%aXI?Nm$EOn^lCZLa@H8G41AF;Eq}P#zsH$QA&w4%1S= z#_K=EI2v7zr9xN%;VKkRg>v0ua1{>oj`njkmI_rkAL5tr zci_$L1_^R>2mzY0X5V-|Z11zR>mef58g^ER8bstl87p-R{}GO}PD#aiW`N3Eqeorp zAEf$koK9tn<1;eA@2*BU6%_C?vjli19j*I*{PEGcGe4QrwpxJy- zm6_^~*_v1L=DhRpQWxPM8VvJR)Ia63BdybTVn^|D(k^(!;Eio7&I@yt-F!Hx@>tjb?Mn-}tjOUh+pxQ`>_2ly~^~h zd2UkpMveS*IDtDDuQ<2~`&p{99wL*fNw%OcAPfitU!MWDvUzh~e=0HqVL%voX9jqE z@S%)>!_uNzIxv_P09b|F2yFgo1M%;5zD@SZ1aK$Z?M_ks;W) z*`Zk@_}>iRx3k!YHBSyeUx$D4%eg^^MO<*iYgtcimTRmC8%Y6}w{B>}&sC zj{Q8yhgmxqT;kK2lu0_Y3@#^ReNoH^We1mkUXaHNz={Ye^jz!a0bs{s9Z+= zAWdX?2hTI#nGYc`KnxHAi_U;K_w3rDCrbGd1H{0u8Nl;FfFgPZ3ytdNfI+nYfMu9g z0ybX%F-92l3>F$;1%&HRKpo0Wi@|j`%nRe^87wsFaK=sZ!Ofew=}@?OJM1r%JL8^4 z8i@g7;4=f*`++!E|Brv}|CJLB!~ij{m<;f8$M3WuH&a{Zvcy^|KyN@%(67+=5dwxP h#o&vjxDKiW<^>vnp20#R%z)5EK+!-0G4Q7hyaUPOP;>wQ diff --git a/modules/swagger-annotations/src/main/java/io/swagger/v3/.DS_Store b/modules/swagger-annotations/src/main/java/io/swagger/v3/.DS_Store deleted file mode 100644 index 6dfa7cb80bcc83d1bd6a2adfef76e0ea8acf6d73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!AiqG5Z!I7O({YT3OxqA7OmDQ;w9F4@M=U4DmAf1gE1>jYY(N6v;L4@;_v92 z-K|in7Y~AE24>%6c4ou84Z9g3glrAFTS8QX5Dt_uSHkd(&^+m!Z$I>66{%x9};B(m}ocE_3<9(sI!$I%VhD zzgHuF5DbQCE9hU+)0t9nIJJZDJnD@)mDMAa41y@>^>sqj?IGmqB1*by)KbHwo9bNO zOgJT{)Tva*<7T~HbDMjONzEPaZ^Pbc>`o>nXKj7+;I#7)KPKwM5HImfYFV*3g;yB1 znrFYC#45RiXBs_?Vq^xG0cK!v8L%gwQ(oK>xiV&e8TcgwbUwIHLeFAmP#+x_bPE71 zz^w(g{`m*G)1C-+o4F?dPrA? z3+Wl;kr`kHW*MN~4^pA~|M=(rUkCBP3@`(W$$%`h{dNnr*}HYFO1f)Z=na&F;xdC@ kDKPX^j99vgt57ZQyJP@8i&f!laZ|D0`^_+jlTzt3?(5H-I5}Vp7&&9zeahNy;w7!v@uF4! zw8U8Gr@rSe2c%s!^K*tS^(+@|c6m_Nd>X9*ipn8IstdT0{Vc2souV;bET z(@f*b4(3h`ogOwvM#o0-BZb2FnTf*L(R1gk=9ur*wi*$i_Z$mZP7Kl#oMTF4RMikT+HaBCERDSYT_-M6= zh2bKLgCt;dWlfBpknJ+vWH2J1!9tT)#mgj$0lPSr6)%cB+91yEdg%EiT%Zn161H6l zAPPQnF{In{Y5{E&Z-0}TW{dVE>6xgQ%3QP`N!Q4yMGEl}Wt0GEQ5F>K2dc(Elki7$ z(HeS=I_M30i{7CR=o9*izM}&?gvaqkJc+0944%a{F5~-n6>ne2v^p#&w{VBjP zI6YqZjvLXC(FU|g*+qT`{nvL%F5e*$O)nB^_aP`M_#qtZpb+j1K)&JNYOZ*+3 z*`p$?Th*ooTyoo1I+%5Y<6z7a#`!7Aj#PgUte=andbV1_E72(JFNe@Tpw>Uv9eknlqUI2#V0Dh&ol6D~8bN=(kOr zV=&gJ(?OWahcIsz=7u8F+wu9f3J2k6TZte|Jm>N|Jfw&F$2uNzhXe7 zYHqEHQ!=%6ZgNy>ZPa^I5{ip8PE*iOr5IzW6z5Tupx-6~(J>fnL=Ord1QZS2Fat|v F;2V?(VCw(? diff --git a/modules/swagger-core/src/.DS_Store b/modules/swagger-core/src/.DS_Store deleted file mode 100644 index 0eba97a9c4060877a5427d9057a3811c7febfec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!A{#i5S>lj;s_z-&`KOF^%@mZpjFk28{p6@uF3&WYS$51HQp$8nnM)HXZkU{ z@+JM9@@9953MoerR5Q}-o1LApy>G4E9U@ZwNw!JUB_bcn*y^D9hwwP-lC+%111f&T zr$T>A3!S3R4-|R)4Di}{bWRE7RNh*@j~ILX$B3E8A}*a)Be%|%>8Qx7It+iSR@-~_ ze8pe!SN)UtOi$xFsV7xG86R=)v(`m=Z71oMd^jC+U+n6#PV#a%HVJt)M9A@BUS@jQ z*OM} zX=KgeHT;CJn9q-RTo$@Kg^%Mss%c0S)wlTgg|WZ+KvzT<5C(*SC&_@@8~xQM`StSA z!hkSvpA7K+5I`9thmA$Eb)YdN0FbYdMqrz(KQLeiFml*fga@K*D$u4XS7InvIVhWs z@yNwD7Hv8y^JYB9y;->mMY+O51ty$SWKmjSKp42mK-+e^eE#p>UH{)qlAbUi4E$FN zC~q&`>tjmpY+afhpS1z>E0l%f8jFh*80IKOEFZ<|P$TdMYycyNjYW7MauF~zNFxk9 GC<9kEFJOlN diff --git a/modules/swagger-core/src/main/.DS_Store b/modules/swagger-core/src/main/.DS_Store deleted file mode 100644 index 3cc6d6b87d7259cfd342a330e52f18b1f2254ca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKOH0E*5ZZyc*GiN=R(qAXx%~V>!6`T; z=gPlRsoxL!gI*)(UeMF2QgJx3gYYbBr_J)xflB&8l(f4#A!@Y|a(NylEtNLZAZhh< zu5TusqEl>^E2B}pR;#-8oy~F89qn$w-rC$AkBiRo%G%yZ^C5mr)RUoJ;=9zcXmJA1 zFsAhk{caMgK2 diff --git a/modules/swagger-core/src/main/java/.DS_Store b/modules/swagger-core/src/main/java/.DS_Store deleted file mode 100644 index a560121ec691fc5a3e7256b92aef0bb3565b5934..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!AiqG5Zz6yO(;SR3OxqA7OmDQ;w8p<@M=U4Dm5`hgE1>jY7V84v;L4@;_v9p z?ncn+!HYF@Ns$RipRmXtw9iZUki=Qu>AZ5IR$o|bm<_XOUi!D9 z@be%aXI?Nm$EOn^lCZLa@H8G41AF;Eq}P#zsH$QA&w4%1S= z#_K=EI2v7zr9xN%;VKkRg>v0ua1{>oj`njkmI_rkAL5tr zci_$L1_^R>2mzY0X5V-|Z11zR>mef58g^ER8bstl87p-R{}GO}PD#aiW`N3Eqeorp zAEf$koK9tn<1;eA@2*BU6%_C?vjli19j*I*{PEGcGe4QrwpxJy- zm6_^~*_v1L=DhRpQWxPM8VvJR)Ia63BdybTVn^|D(k^(!;Eio7&I@yt-F!Hx@>tjb?Mn-}tjOUh+pxQ`>_2ly~^~h zd2UkpMveS*IDtDDuQ<2~`&p{99wL*fNw%OcAPfitU!MWDvUzh~e=0HqVL%voX9jqE z@S%)>!_uNzIxv_P09b|F2yFgo1M%;5zD@SZ1aK$Z?M_ks;W) z*`Zk@_}>iRx3k!YHBSyeUx$D4%eg^^MO<*iYgtcimTRmC8%Y6}w{B>}&sC zj{Q8yhgmxqT;kK2lu0_Y3@#^ReNoH^We1mkUXaHNz={Ye^jz!a0bs{s9Z+= zAWdX?2hTI#nGYc`KnxHAi_U;K_w3rDCrbGd1H{0u8Nl;FfFgPZ3ytdNfI+nYfMu9g z0ybX%F-92l3>F$;1%&HRKpo0Wi@|j`%nRe^87wsFaK=sZ!Ofew=}@?OJM1r%JL8^4 z8i@g7;4=f*`++!E|Brv}|CJLB!~ij{m<;f8$M3WuH&a{Zvcy^|KyN@%(67+=5dwxP h#o&vjxDKiW<^>vnp20#R%z)5EK+!-0G4Q7hyaUPOP;>wQ diff --git a/modules/swagger-core/src/main/java/io/swagger/v3/.DS_Store b/modules/swagger-core/src/main/java/io/swagger/v3/.DS_Store deleted file mode 100644 index e90bc9316355e195282483500d443e7e27b97b9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!AiqG5Z!I7O({YT3OxqA7OmDQ;w9F4@M=U4Dz#~g24hy*)E-J9XZ<0+#NW|3 zyW4_RPl8C9f!Q~io!KyN!)`_hAsfT)mJlT&gaaka6fk@vG*3Dw8SBXcC9QE1sZJ27 z0ME1_%l~J9_AVznLW#cUec8W5%x%1D(S^+7g3;j7?(=K#7=?qRT78q5Y;I{e@8q4L zbM4=$k)O1a;h@p(U((Z=Qc*Cq+rfF*8?{QSM=DO*VchHMgs|H~$kjy{ch#t&hH-bG zbA2=66r4h#o`oR zV9e@y^80b5;#>Hp@zXd)W`G%B1{RS4d)7I{MJ$eMVg{IjUok-Eg9|0}ET#ta(Sbp? z0KgpFT43v6f1pbapl2~P2oFS>RG>+fw#AUPbC4z-^PY`Q4VrWz^_#JdeY3P3inNV~ zbal9pooSeQHkE{wEyKj9N$H`glr#J> zT=$pkf7xmKp6wt=fg_qWKk50ipT8H|pW8SlBGDhGFNwNDZb@A-r7>U6r@>#YaduQzAw!Su}r>RX$yW;5S=`s~Hq_k$C8 znyU-U9VYN^(zar;2G-zu-RIFLmn#2?Sk13_4xIu{0jI#j3fQ-XxBM{8^*RNd0{@`` z{C)`FjG@KKpni3r&{qIp8)0pz^9Lj61QtV!l|l5tgh>UORAH|e!lWY}SYBwcGHB9C z*vp5oBMW;&5qfkyKhSg%p+Q$V1)Ku66<9FME}#E<_uv0-C%KkWz$x%gDInUr(QY40 zvS;hu;`po$;D>NF=2Zr-Q&7=IF}Qpbufnw<9&iO1TC5Br0&^b%S_W4*1s+v_Ke^V2 A<^TWy From 2a6820d3ea3bc2f69b4d4a62d0c243d0fdf09434 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EC=84=B1=EB=AC=B5?= Date: Fri, 21 Nov 2025 19:32:10 +0900 Subject: [PATCH 3/3] Reflect additional changes --- .../io/swagger/v3/core/util/AnnotationsUtilsTest.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/modules/swagger-core/src/test/java/io/swagger/v3/core/util/AnnotationsUtilsTest.java b/modules/swagger-core/src/test/java/io/swagger/v3/core/util/AnnotationsUtilsTest.java index 7ee92cfbc2..6d17ed5f94 100644 --- a/modules/swagger-core/src/test/java/io/swagger/v3/core/util/AnnotationsUtilsTest.java +++ b/modules/swagger-core/src/test/java/io/swagger/v3/core/util/AnnotationsUtilsTest.java @@ -108,7 +108,6 @@ public Class annotationType() { return io.swagger.v3.oas.annotations.media.Schema.class; } - // --- 기본 메타데이터 --- @Override public String name() { return ""; } @Override public String title() { return ""; } @Override public String description() { return ""; } @@ -118,14 +117,13 @@ public Class annotationType() { @Override public boolean required() { return false; } @Override public io.swagger.v3.oas.annotations.media.Schema.AccessMode accessMode() { return io.swagger.v3.oas.annotations.media.Schema.AccessMode.AUTO; } @Override public io.swagger.v3.oas.annotations.media.Schema.RequiredMode requiredMode() { return io.swagger.v3.oas.annotations.media.Schema.RequiredMode.AUTO; } - @Override public String example() { return "5 lacs per annum"; } // ✅ 테스트 핵심 값 + @Override public String example() { return "5 lacs per annum"; } @Override public Class implementation() { return java.lang.Void.class; } @Override public Class not() { return java.lang.Void.class; } @Override public Class[] oneOf() { return new Class[0]; } @Override public Class[] anyOf() { return new Class[0]; } @Override public Class[] allOf() { return new Class[0]; } - // --- 수치/크기 제약조건 --- @Override public double multipleOf() { return 0; } @Override public String maximum() { return ""; } @Override public boolean exclusiveMaximum() { return false; } @@ -137,7 +135,6 @@ public Class annotationType() { @Override public int maxProperties() { return 0; } @Override public int minProperties() { return 0; } - // --- 기타 속성들 --- @Override public boolean hidden() { return false; } @Override public boolean enumAsRef() { return false; } @Override public boolean deprecated() { return false; } @@ -147,11 +144,9 @@ public Class annotationType() { @Override public String defaultValue() { return ""; } @Override public String discriminatorProperty() { return ""; } @Override public String[] allowableValues() { return new String[0]; } - - // --- ✅ 누락되었던 메서드 (requiredProperties) --- + @Override public String[] requiredProperties() { return new String[0]; } - // --- 복잡한 객체 반환 메서드들 --- @Override public io.swagger.v3.oas.annotations.media.Schema.SchemaResolution schemaResolution() { return io.swagger.v3.oas.annotations.media.Schema.SchemaResolution.DEFAULT; } @Override public String _const() { return ""; } @Override public String[] examples() { return new String[0]; }