je5O2mqeoYONtMVCIKiyqiC{&Oo? z7DPs@uF9!?waxnUT-=F-igGtyr7#sbokEN=t+oLie@!7jrrO$@3Qni3dcczp`Y6@Qq zS4pe=JR}N8DeAdC*v!~zYNV-8er(xzeAM`0+g>MM>NgRYiUog~=G?1So zdOJ#0j2+YmU@%RJ=rgTg&$@tf-Km*>R}Ubg#Z;o-MWKd!7=`NqFj4R@X6a #F}}`KIc}herVWLM^KBHz!3XO9nKh|MtKN(*>B%V-aG49y*P71mHN{C$RJK_ zixk~JSATi4Vm#ie3^DT79yGvd!NM?Gx|ll<#6A&VVPZVfdo!UL)V8R|{We-BjTX7F zu*SLTLVEACzQV5%_vdI!n<-&rxbJv``Jix~kAAuVd*7wdyRk(yhal2JG8VL{ieebm zwv<}l17m-a#a&r_HO@@#yo;Yn$bwo1eIO8fO_E>DZ(*@gZ0o5MuA2o>^s9|0&SPWz z&7z(|InmY#mFE8ajRNxM6NuXeuy2aJ`sdN2A^u>}D0N!+Tg?u0ZYdLxMuT{o5uOJ0 zVYK_nkrd{oukZ~ly p+!=H&4#N8GoN&vSksSKH z_jIU>6AImEMKb%0H5<;2@DLS`8D)7x#tglcb|L@=if~1<$f%htNH?MP=3Kl;QhTpK zg^LVl@bj8sABlVHvaB}|g=b<0ls2B^zx6U;42C4`Z(=`I&L xDZnnfvNzSzTOjYza z93$O#)slJa)x{o@m7y^6-A3ey7;dDHFa757X8)tEs8~jzRT#5Q81Y@Jx7bD`F}N~Y z; lO+{&l?9f7irEdCZ5U-#=8(H?-tc}mo>6-eeYseAHNmBwgu=T)Mm z|1d=U+RjS?7QAyY-0-m>BpA;hNL%J)x!TjMf2n8H)m|&4zse;kr2iO>{=uU9AJ38e z8?DOa?=XSJ>0e-iPquK92`H!t6uFqFt_Vi`f~E-P%9EgR;$chHLHlO7$>|!FW?XV6 zcVh$>g9G`#gJN<5)fQ?q{*oH$Lj~#5TQ74hw^eX;5%dK Gf5Igc<6&8#ATLMLVh3(qXSs3R^FgPTa`P ;XI22Zsq|!K|BWVBx*Vroc z2m>icl1Z0~4CP&JcfnzymZYWz3XCxWnB-~i`j&_|J8bmh#160vPTJjw7z6;b?U-1k z(nuuD$SJb3Duobzs+$|Y0RM!`rHz7B(kwGM1Xd8O*$pspGN2?)lSn(T`Rxk*&_nl^ zF~gv~|CNdAs#KVGV3zc;eY%yRqUw}m7^{lAnU$F Q?%Bmaeu#0Gjgq)aUww@73R*SW87Z3HETudzO_f@KC z8st4qUxaj0-L#t?PW9@ehZ4LZey0fMb@gK1AB@5NLKxy|Bt u zycO6zUwoybr2_7n 8xnLdRy2y4K4t0Kgpf z@L4Wy(LENz+ppU~elu?kbi-vI ioX~jyTCx=9&RC9n54MTV+60kz)Cp)ich2C$HUHjN-sE; zP>Oh%l4Xl@!1{?CrQWI|&b(etS1XXg@t#c&n^aFmtWi$iZ&rq4Ch<=`% *&ip&25Gb>2LCrJA_u8M66&IPTBz?F9C?i9*z)nVEAY|g@4@p;$4p2lXeiM zx1CKGf>;8qz1WpCvlNA~DF^AtXY8L(*S2GN0V-SJ$*erF7`i|FVD^AD0RsJD>bep@ z9F*7FJ4k+IG*@!C!@j~1f(E2^W+CzWFrf{ZC>8@{d -FRW^J2Orl)EF}dbpV-TO{#%{9L@LdQ-FXj2&K1*4`pC*e2;0kelWoffG~m_ 9nkvNuEM z RI9E>1oicB>B{L&dI>t!JV^kte+{0z%kC;cx?pW(_FoEojR#3Xi=yQz|tVwdckr zGpm<^c+eDcn@ljkhv2UGEDKPTfJ-ekteCT0UaaHvCJ#oFVrR3kY`91rIhhu?b0_bD z>_PcX&>3@_Sr$U^mX04$Bx9U#7ab=B3F2VyFM5okMXHxzz^k> ==40Jg9dZTMQhMmjKPwS8HJTkV@VQ91zA!b4>PApwn?xA zv;-QF!)Z;bn=NR8V)sZl*qFOsID7tdHY#V!!91~()B;euSv@FE(bs9FLQNA@><0;I zka$3Iw4?Gqg#~ilV9aIU;HX=P8J4WlAW~=BvPj+2ikM;>=O`y+tojxrREgSk tg47d)<}mg?}O$ z*@X)0#HHPDmhHl-?J}4}$GrIH+DqOPOMwZnxE5_3B}}ur81~N-K{_5A^-$|L8q--G z36eUwzMQQu>rY&00w#a-YPpE0M{~C`^6`jGsvZ|cP0Cs-=51Gr=5KJFUzBZpO`|38 zr*o}xL*2^c>MD|J+OkQ&bQ=)ZR{1uN0W&}j{CS#iJ%*=Gnth-h{rzZ^SxiAlf$afo zj|e^}qtt-^MDQsjNME-&ahL9g>*Sn^U$$9b9-L>yBco|7Bbt{Rv+3D^iDhNt$cbgZ z$i^wjJ&pvHgcH(;ZjxVCxm{9-1SF|k`EQX~vP-8@S7~F1OX?}l4>}ZLJqP7++%e vAT)!xi zTGDqpQlos*4RMq$@mt{46OiP{t`qV!)CZ`wcsek>H(3-tFXcNifvfo0xvF+=1IN5^ z#4$J2_LA`&II+>Gw?PcuVk!h8fhnTQBM6aE%s ^#4i7!pZH&pfuJ{-eN;kLjzBT^Zru=93! zBh0ZW JU8XqA^an3+kLS~2@1}G|vnB^!x zFYH#WQ!srorFOPANy2oa%|}w9;}%N$EZyt~*FGP `We@js^KuL{&3)M#$#MV5?loUWuDZ&Ba=d>=DSS3KNSI zHJnSP?>LPU7O?YCpn!8a3p2nhyN5l!=@YbUT `@N0*wg*QWhRf7v;+_b+g>x0mMl`&TibiUI^g{Qnwu|8K}G)i`xm5kvcwd(~&h zZv)eYQw0N)TL_EzRcjU9N{3 u?=h@ig62Qm<98n3p%1%fr(D*8Mb{oB8y%z5NbWfRhilBb1Do1&pU3_^4`6 zZ@-$!+3M11%j Qoldu6zC=F+Igvyl1ib%a zjN{|^W&xI=-}hs2L8!?JOEZ!NEXZ_#e(;Nh9+x38 x(b-qU+(yLO3b83mBN5nTDs zT|;33o5q)s-3CRLq$;9;y%JEpIGbRV4N~h$S>2fpXFJRmqTnI{%c7<-Q8)Xm*79Lj zJ21_f(2dl%K!iJqn7rnMbv6{MG1p{Lk&aX$3a0~q-D i54jn&vqNp39^Wbm09h7ER9 znL`+rHb16hQfbGevO9(}-tXSr`0n%1K5CLIm$=+O)8w cC9*A$hl@uJ;z?ni#azUb@v)^k+*yr-rd+&N!QD9O z=18nDSze=O#oi;_xHjz47-?Txi{yc&?*%zYB;y=6O^0}de58RgX5^ F^K#sC-;n)6_U|jXt_AHfC+uuvf##8T81y88 zV&ZvaA2(fb9O1&Qxczg7&rZDiHS4>a_&csj7MUZh=j!R(z!Z=$CtA>|3_-A98}^TM zEI}i`#Tz>H!5}{*!17&UNO4K{8|#|oal`b;eWvqFr7{%*W|A@Q58QyZ3)J^>|M2lX z`9!msG(M2&Vn?UV;{T>LGO- =UIqm6Pw6Fxv 8JRHsp3AV5lb{o` zRm0|Ju;10J=7^I9C4sof?KpRq;-F8A%jcWx)3Mv8HmKK4%85RxAt{m1fG~kP?>N*u z_prUw^(v&wb;I33TZv1rd94n$fGG#>e9RF+kKXAu!$7#;o{Abp#c|tKN?aZMv{KZF zn%XE_3a3vN$uFFOX$)%RQ^MdTE)ZOod+`T6Ph~cH+U)~w#u77i5WY#~hny+~N3I(; zpUJP^r*p>rMq-+8=+)ETBSKqIUMChHz3%Bh9>QGn_TSM9Sv0Yi2DffWV>t@d_t)&j zD)zLI>!p^pouKNIr$u^+s $NaNN>uIpWD6nAm@#cGF zdgY*A|M>615bzF*wY)T>e!TAy*Qpu@*c*Nb1DN~LwILR`Bp1OC >yle9qEY%9 zo~|lXkMdih;xh` j;7?%EGvqsHII6e^d_)YDFRp;z-7gP% z4o{=I=c};{)mKkBwv1LIMScuU1vSglY^c4wYRr~D;4ADUi*Y8D?qFf9JixaWR*}Z1 z+`XLbB~5qqe+b;=$LqF1h_N5R5#X=EZFAxRsrf(&mzMMe?{c;%o&5to?(V8s)*fqL z=1N-W^$JBW@%Zas8v7N>; B z0doL(LWB!!Fcu*xDKSSZX#ljSkSKSuIWuD>w2RO?=md3D&FxgvIEUw0u==T?l+`J$ zwqN)yIDb{g^l6?9cWjxp_4K9hlD_wq>+AW)MgEmP7-LveAVOfFtrgq8DlB$gb*XXL zxvF)jwYffBx%32qIAMX-EHVmI?kMKnqE+CuhcOcfsu3tM?7AT|V7u*VH8V(W(#$+c zjp8^3JjUCt@JP3ZY!)+LYSLa uTKCrX7+Puq=@6DUiQ6&bxD&&TWYiGbh# zc8 b<@G+?Sc}A#8H*xJPAhJ9+n=L!nhs| zXKx(oZAU1yY}ctC8HaGT9o~ |wHEA1$R6*nhUE1uwRjENFKwUnz`AXKZXtt+Uedan9 zb@ZIa(=SScNVY4Km*{EN4tsnaa}u3d)D1t?pC$HmX!g@`8J^cHqxwQUOj4OwxY8=r zG;YyEQ^4+(UB%*J8UV2!>GVZDTfvp=zt~{A{g&13pNu^{o{Zjv7pJ!}o0oaH?q%*+ zTr4te!z519#L6Y=I!(QTEelm?EOK2uu{)a8{s^ryGW6^ug5;hgumq`x Yq @@l~4Qy;s(w4XAxQIjw<+ =6MaeuF;pvzbW!~-9{~ h3-Hw53JgYM1{GaSuasPp~j7O|ZM8nwO7H($vp_P!lw9mo} zdZxmW2>$Pn8ThcRfx{FrEq^#n!oV`|M E<_`GVAeM$ zA|Eu$8c?iH{3tBFadAXww>-_*N1K_0DHIgau*9Y`K{P?Q*6WoUMx!141Iq&!(LZOg zgXB*>1-uN`o?Rl(sygIUr);A)-u^)lUdU0stX1fZ^~HY(cS^`Wda47+<;|9*9C&w= zYfyHqrg{OHw8Wuul&8#QZA4gY#Zkq7wQTce7t^*j<` n2NTDv znx(5jk#i)JBDrG*DXEmoJy(}fDwNxvkiDeC#aBZLICb+-w!AJA;`C48B|wYq0G Dk4*VH~(4_`9Sd%atdm+|$y~zcV7IyB@L9Pr#S)(?4WderG%(2IsXI zF)rakbggZ2O5yKCeO_L` #q70Pr75m%kp;{vuDR zeI3^RJ9d$qrlYbh{)K+ofZmFQ3>C6=2rlSWFp<);-kVF~$j$?Wm9VAXXN@;8Hkpkj z9w rW+zBKAAtE3 =L8LnEj0=^*p*t%mDX9Gs#jf? z*}3SuY?Lrgw^?DyJ}7Elg=O4)Fm;^V5kLfuX{IY2MYOq|LUd_qKcILI0lhJf25vdA z7`xFmKiRKN7H8B$WF$JA-SNY*cDD>Y84$^=eo5vf+upVpe{xNe8kcZVP!J z>sAsYxd|>RoJrN mS+yrjUiIA7{zQDg(pTc+MV!nJ`xictsf55ZG))H_<8FR##ucx zJ82>7%+4P1MlI!JgM?;j4&f (*VY@alvBi)ER zRAo)$j#V|IDl_gn<1U1F>D?2eFte&6jL;J)JsX#oH|D >%PLHUzlBp4_|SbfGoSF+j6Z62P(x)Tf0 zM&WBA%IY+0_O1%`i?Lx=Z24<(>t1c2DsL8HeL-r4cJSz~D(jYP<5|6xDe$rR>@sRG zc0ZS1nm?OnHW#R>QGYJut@4T_$=B@Rlbw4tyn}&=K#DzdFDj<9xneH6usUZ|Zu0JB z3G|v0od{sHi8 Oa0>aa z(Mj3N$<@r|uMz6+d?Ga&jW0gY2Lv@V*-94i9w;&zEgjj8&KZta(Qe_PQylCJ^u_ #ha+bI+V}&z^Jk+54-UO`UHUHX1~B;j5!tI}Fi)rgl1fY0dbwo9Fht z;Mu{DKw6#i=Q*K|XIt+-EhV~bBa%am2ox;9I4Wh>>{z=(E6MqjuYe!Sz*{>F1A|T- zPHY$ClFm*J;=%863eCWJ+f82x-NmJCpJglfXJ=AOlbk$=D9~7$OYVDW+kOO1Kz&@N z>=^g4aEBYkj@`-Uc?!zb9W1)Y4580n15RO+Eg#iY+R7#U3vT;G84L!a29B*L4jG^i zu5k;J `^BaS3l>gg`P;_@pY@9 z BohOHb9`xODez7 zhu5bA-YC6zDF_@&)!F^()ruE)%wQE9#G@DE=<&F%6kWbS=z{^YER8nDQD=>BqR{Y( z{|Q)ZGPv*qYZf9y*2qMdbuFb}g()Bpk&Id0BYcd3_{&Y{T yPZi zXMJ=(sM-%fEM$bWBrkwWmXBisAA5ja&D|ERLVO|!gbZboDqg?PU!aN>meSM~){{IW zG5WHiT(r;->n&3zT(p3wm$h=c&ssTOlQ|!`e#j5e#R%)|v%*=eHp-a}k$8)C$(!E} zVm~9^r{kbnxJ@~dvx_WKWQ@bPx` WnpDUaU@#%mAzJLU` zRE0M{G)G55SFtO!q%@}8jat?@6p0%>Csyg%{_|Zg wgeKO+K@+vu zt_DK?ny=0-YNoahHXs*MXr4b*4(G?TO;AyglMp8mUUIXtJOr^%2NLn&40T+WwK!nn z!qx8gjJ$g|7ZI`dCPSSyE0bz4I&4Mw!G l&N%`}}$R$uW*!ct+=H^K?sSud+7=e1E 717H #;5GE3>3ZutYwl4 x=J@pBLj1sQ>OM^N6IQJ`>dLfSj%NQtWd0# zX+esV%;;aKN7j__A$Z{N_t`SYDrtd)JoTfXd-Xh|;_RdVEk0QbW`wNy;rp-OFiTM> z10VH8M*Csd`N+5I?INLv@lo&4@e+M-QX`9?SFJa@_r!5Z*Kgf1AmTB`*iy%&M!BSO za39^0hqY95pgPZXAme-YsU$b7My~Kok`$9lriq9Yx(^2ay?8xU#-X4!qrF%O^Frbp zGor86){B0YO8M2Z4b95)iiM&2=EU^LrR@G1mE9JaI}$F^TEI{DQE5k{Q(l-@dn@=k z |Smc}e=QcuR1;vqwNn zn^~;j5z9o#nS8WKr^zB$zwk?IGik>q7Av$KN8ix$QH2OxK_BH7cI7Ac$wwgf1@yg+ zTiqqZ@ha5|7~)FWEm_p`<*}Zb+{rc6G6_?*S2Aes$_^on@O`8=wi)H}u#FXSU4$e! zFevVErRf2|h%>Tfd{|u#OPOIfzU{p+i;O(5vo*sjJJ&nv=8k|46_ie{ hT8Fq1P_A#eYf6ax_Y}vZeM1k7**yLc;v$vR~>JAxYk2)%v^m4wA1E0tV%yo5c zF1zzkb@n>?N2kzC_|`DH3(d8(GZG6F*u^Ylhu)nIQ7?=()#Sm$N_g7ZjYiObzim_} zZN=O-6bNA5)$3jFt4t4lvaRBPcXOCWdx)*Sw&c~iss`gyqcOtlP?Rx^;UfU8`}J+j z9YjZ^LV}j9eE}<@+>fgG$y{Et%4hR*Nhl?lKs^zrXCm42wEh+Xq4fzs2^USUxo|P| zYPCqxur@ZtMQs6N*OtkB6_sza?8OBh*7KnxQu$|9W)yo&oP6D89WrlU V3 z?q`}E6siqKuiwSDvJ$Iu+1+vrP6eeMYPj8U4#_=?nk ojGG&qwJ}=fi`M2CKP87MqCLtNTnk%XyI@a zJ*6zCnlzf3Qu}mJ*%gW7suQNCgP3M?9x$M;rb|?lEy3KjUjdGeu;g*uVlEig@87)< zDuPZHKHcrl8*LEmJV0Mi=7||ocKc(XrkwzXWs8 6N zYwf@|lRKh?#W6sm9!s)f#{OocDfLE2LPRsy_^qIa9Utk~(jUbqaw-w`9uKJ_`66 mLFB02WdM2AIO0v$`3Q{C)IgZX%)Ydc45Myr(hpeV!Y9STqQS**&C1fvD z
F3kTfs5tF6(PweJ}JY48J`)H1o9Hy&9(sP`DDBny29m`9Fjd1zH67T;AO zjz&}$KD8`>!)9e(mX~&(4Oo|{mSvs{8gSqRDDW>;9FxE3C?n741Xd2WycCV(bnrwD z7L I3C}$O?C21+N0mhgW$h*9qj~R0 zQB|<-jDC$D1L3dL^s+)IMqWjNyDk;2;ANd(^&rq4;Lz zn{wWe?{e+aZ;w(X07+d7Pn#S&mV_e(?x#XR6!Ci{yt`-nZnno@y0a&u(4;{=Xoju} z)Zb9hiiXt2W;`WxKqh1U*h WdY$9sAvdj9R*5exhqWN;#|F%K+O{47;y6;*M2jh;R&)#^#@-1i0dD!8zt^%ld z=EQ9vx2uhjXH!RdA34tWQO NNA3{so68<8c@0}45=C*LKwPT-NrUenQ-Bv-ee`}!UFzJm-BlP`cO=2eFk zRun}ly1$Yi)%;7&`wm|OhH>qsPf>mRaLUXVtG7`2z-ArO)}@Vy^n1&l%@@~_Iw ES?h#CwP$#4z96m^ z+iVSt8;dc1)R;c=T#_FJi#BSIC2KevlERtHx}phH+4%81%Wpx5?{HZy SRfOGS<~;ptru{ktaemY zi))@MqCN{~AI|h#I9ymN2KBQn)0TsZrkB2r5k|6Zzt%lgNmJ4^F%M>sjXV2^XM=^+ zWa0W=(VVCzBur8qHz{`}61PKDZavOGHOy^*L=ad?( >+!YBz9yX0rFW$j zQ2w?l#3E{=y!WQAz`{W%`jKZ;s)yCNYS#lHhMB=b2#sG5N !B z&8G0zdYM#C`u A{u$DHg^W4U~iTZj@VBvCt7&ZN5P9U4TPv9;o zxY1t^t5mhkBg~!dL24)4dG=GgfMr!Y7EJcnDn-34b*uz?_VLe?wk^gjGqRFA^J z&rVrQDwlT&vAES3G#mg{_oPFNu`;+c(&+LOh@XDz8z^Od6apF)6z59;MD O9!+9~)(`)OX%DE p>OK6 zQac=7V6+E=YGN@LM|uZ*jAn>Y-UJx6Yx%}iMks9J%&%IDNd!SXW8I(M9X!I)e^_R$ z9!r7x(*J!drwLAY*FJ6a4e~ r!q~F z#OdNk&7q$(bDc8{xs_BRc)%sMU+2cENFkX8H(nDydb|@ic1ucarD=w;27$1d^SRiQ zdtg@)$T4pA!s;9U69OXZ7Oh GXGDFs)kr8n3h8CZ?3z`Eq1XC!7 z{2>jIr_D?8Dx|ekYGB!>kG09un^ZP=?8ErPEvv(LiF$HnTKX6Wos>6Rf-zC}33VxF zn8z}G*w2I;O}1k+R!A@)r_#d3E`GeYFXi)Yv{ZRHp_qd|$=iPUerjZNU-~_HTul0- zTs^(=hP72~*_QRDE*2V6foL&38D1wlz*=`>?2K?WQ=8-W=i|cbR0+$uyizwJuC3)s z=Ey9Uaj@IYop04noPNP6^akGV{YC>SH_kWs?rVfZ?dUx_l_FLDSTwJ3l-;|uX{@dh zE+K=)Rrk6RbUr#mfA9SFdFkL}?_lcWVrl9ObXDq;W0z% (MDMicw-W!7h|qlH^CamS$tvo10aRqqt$O8|87h`~d?%uuvg3YR{(hTrm_#%85IFaTL;9r*H z!?WRwvSI8cx<9agU7`&ShcDNK!5N^g9j j{Vbb zz?ERZGvO-=U`!sK-!cDLUjWa8PqKvZ90dQ&gQZ-;GvQN*V9YJiE6o4-x_>7U!SlYt z9rnX`5rALwt{nZtBjL{@VaWT^zeE1|bP}Ene|`odugLuW f9)K90 B^ i(yOUUFe8VP!cKXteB7 RJ(w0D3A#LOg+dSz{tsb$o815a literal 0 HcmV?d00001 diff --git a/etl-common/target/maven-archiver/pom.properties b/etl-common/target/maven-archiver/pom.properties index 72f02fc..9905eb9 100644 --- a/etl-common/target/maven-archiver/pom.properties +++ b/etl-common/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Tue Jun 18 19:06:20 CST 2024 -version=1.0-SNAPSHOT +#Fri Jun 21 17:06:57 CST 2024 groupId=com.bwie artifactId=etl-common +version=1.0-SNAPSHOT diff --git a/etl-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/etl-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..55b2628 --- /dev/null +++ b/etl-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,19 @@ +com\etl\common\constants\Constants.class +com\etl\common\result\PageResult.class +com\etl\common\constants\JwtConstants.class +com\etl\common\Entity.class +com\etl\common\handler\ExceptionHandlers.class +com\etl\common\util\JwtUtils.class +com\etl\common\util\RequestUtil.class +com\etl\common\exception\ServiceException.class +com\etl\common\result\ResultBody.class +com\etl\common\config\Swagger.class +com\etl\common\exception\AllException.class +com\etl\common\util\RestTemplateUtil.class +com\etl\common\result\Result.class +com\etl\common\config\Swagger$1.class +com\etl\common\BaseEntity.class +com\etl\common\exception\GlobalException.class +com\etl\common\util\RestTemplateConfig.class +com\etl\common\constants\TokenConstants.class +com\etl\common\util\StringUtils.class diff --git a/etl-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/etl-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..1597a51 --- /dev/null +++ b/etl-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,18 @@ +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\config\Swagger.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\exception\AllException.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\result\Result.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\util\RestTemplateConfig.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\constants\Constants.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\result\PageResult.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\constants\TokenConstants.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\util\RequestUtil.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\util\StringUtils.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\util\RestTemplateUtil.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\constants\JwtConstants.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\util\JwtUtils.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\BaseEntity.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\exception\GlobalException.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\handler\ExceptionHandlers.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\Entity.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\exception\ServiceException.java +D:\workspace\etl-cloud\etl-common\src\main\java\com\etl\common\result\ResultBody.java diff --git a/etl-data-source/el-data-source-common/pom.xml b/etl-data-source/el-data-source-common/pom.xml new file mode 100644 index 0000000..fa054e0 --- /dev/null +++ b/etl-data-source/el-data-source-common/pom.xml @@ -0,0 +1,26 @@ + + + diff --git a/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/DatabaseConfig.java b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/DatabaseConfig.java new file mode 100644 index 0000000..27c41a3 --- /dev/null +++ b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/DatabaseConfig.java @@ -0,0 +1,36 @@ +package com.etl.data.source.common.pojo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "数据库配置") +public class DatabaseConfig { + @NotBlank(message = "驱动类不能为空") + @ApiModelProperty(value = "驱动类") + private String driverClassName; + @NotBlank(message = "数据库连接地址不能为空") + @ApiModelProperty(value = "数据库连接地址") + private String url; + @NotBlank(message = "数据库用户名不能为空") + @ApiModelProperty(value = "数据库用户名") + private String username; + @NotBlank(message = "数据库密码不能为空") + @ApiModelProperty(value = "数据库密码") + private String password; + @ApiModelProperty(value = "数据库表名") + private String tableName; + @ApiModelProperty(value = "数据库库名") + private String warehouseName; + +} + diff --git a/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/DatabaseRedis.java b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/DatabaseRedis.java new file mode 100644 index 0000000..bf67072 --- /dev/null +++ b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/DatabaseRedis.java @@ -0,0 +1,25 @@ +package com.etl.data.source.common.pojo; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; + +/** + * @ClassName DatabaseRedis + * @Description 描述 + * @Author ZeZhang.Liu + * @Date 2024/6/24 8:35 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "redis数据库配置") +public class DatabaseRedis { + @NotBlank(message = "redis连接地址不能为空") + private String url; + @NotBlank(message = "redis端口号不能为空") + private String port; +} diff --git a/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/constants/MysqlConstants.java b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/constants/MysqlConstants.java new file mode 100644 index 0000000..a0fc707 --- /dev/null +++ b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/constants/MysqlConstants.java @@ -0,0 +1,13 @@ +package com.etl.data.source.common.pojo.constants; + +/** + * @ClassName MysqlConstants + * @Description 描述 + * @Author ZeZhang.Liu + * @Date 2024/6/21 20:34 + */ +public class MysqlConstants { + public static final String MYSQL_USER = "user"; + + public static final String MYSQL_PASSWORD = "password"; +} diff --git a/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/req/ConnectMysqlReq.java b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/req/ConnectMysqlReq.java new file mode 100644 index 0000000..f23dac1 --- /dev/null +++ b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/req/ConnectMysqlReq.java @@ -0,0 +1,22 @@ +package com.etl.data.source.common.pojo.req; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName ConnectMysqlReq + * @Description 描述 + * @Author ZeZhang.Liu + * @Date 2024/6/21 15:32 + */ +@Data +@ApiModel(value = "连接mysql请求参数") +public class ConnectMysqlReq { + @ApiModelProperty(value = "数据库连接地址") + private String url; + @ApiModelProperty(value = "数据库用户名") + private String user; + @ApiModelProperty(value = "数据库密码") + private String passWard; +} diff --git a/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/resq/ColumnInfo.java b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/resq/ColumnInfo.java new file mode 100644 index 0000000..e2cba26 --- /dev/null +++ b/etl-data-source/el-data-source-common/src/main/java/com/etl/data/source/common/pojo/resq/ColumnInfo.java @@ -0,0 +1,27 @@ +package com.etl.data.source.common.pojo.resq; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "字段信息") +public class ColumnInfo { + @ApiModelProperty(value = "字段名") + private String columnName; + @ApiModelProperty(value = "字段类型") + private String dataType; + @ApiModelProperty(value = "字段长度") + private Integer characterMaximumLength; // 注意这里可能是null + @ApiModelProperty(value = "字段键类型") + private String columnKey; // 主键、唯一键等 + @ApiModelProperty(value = "是否为空") + private String isNullable; // YES 或 NO + @ApiModelProperty(value = "字段注释") + private String columnComment; // 列注释 + +} diff --git a/etl-data-source/el-data-source-common/target/classes/com/etl/data/source/common/pojo/DatabaseConfig.class b/etl-data-source/el-data-source-common/target/classes/com/etl/data/source/common/pojo/DatabaseConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..350a6fdceec9833359e8ee62b9b1cb0da9d179cb GIT binary patch literal 4630 zcmb_f`)?f875-*-W_R{!XJaP}Nk~H7V6W{grIfbogf=glP}`(Q2!Ya;u|3$6tar@r zY(n~ikV0unC{>F<6|IV@k|0HpNVS7P>EjnF^~e5HsXtZ1arhrX>33#k--BwTN~<&H z-t(Pv?>*4.0.0 ++ +com.bwie +etl-data-source +1.0-SNAPSHOT +el-data-source-common +el-data-source-common ++ +1.8 +UTF-8 +UTF-8 +2.6.13 ++ + ++ +com.bwie +etl-common +1.0-SNAPSHOT +>f>m)(Gn&Q$YmAj>#8R-SeV#{7 zFSO4!TC0>4Y`y;S2Ou zzr1+;`K!w>oo|nk>jp5u0#kj;smv(Y(6BGR{oKlL&$N5@bXd7k*JSejGBvF?UcbnZ z6=Y7C6>HAn{5la_sE5eSTJGM?diM gy7OGCIGHsC!^Yc!*u;3hb3VYc FTcE^SuQJ^^O+bJ-Sx{f<%RTT6|+6KC|V83VX?$ ut~q^T!d&pu$0N); zY4mBcyiXFwEih+R=X`!e2Zs(Y9|sQ|nApdJQIA!uYOUld= r?mGT?#xZu-W!t@10f#3aoDiOLGw1)+BO@jcdt2i^TXxji_D!)}&R-r< z|LZ8^=4l=RA3l42<-NDkxDA`r7!)xqV!MdXiTFG=E7<<&wr3iT;y@Z-z&&Z~7j1`V zJ4M_p;wvJ)D&kxCwu1GY7su|JU7E2fY1lZfU~~I22RmrLGmRI(V=OkZg+<=U1A$6F zVZT)`G+XJBEsavM**mhOt=Q~RhSHeBJ+w7v2?~bJLS8bh6raNyPZbr zPNUsUBZRZ?-A;wN)1BQ;1;R-bPG8oP;x|~zT{Mt9-G;l7V<*W$`9=B^_*MAT@_&GG znMwp-qKtW+efTo 7qP-pTm#5vmOd~2vP`5WS_b~ T2T%-6hU_;c>Lp#_@N6g0F?giLEw{zhM+PH90F1 zJfgA|J*?8r;rtuW)JwyEMf_LLqL+sMg80NpehIqQq>`8%p(v`Oe?!Vp-^ZE@NRJxo z5|VX9s;Ci?D#i>=FtPWMyMT )YUDS=Zfb;+qH}n=zrkEfoQ%o8O0VM-a z!brA&vc(iZ*<#vA2`C+asI`E4iW!1>idiEgplkrj7}+{Vy~OoLTMh-ErLX#VX|VJr z?#I`ewSKH%oCigOC(%DK!M-T+_y;DbsjSc<9-yYt@-_}qi=l*<@C|DGABA%`L`}!f zaRP^_CGZL?9HExP5_$3 +2}BH2%eN`XOo={2Lo^j9L~CbH3x~kLx#)jpLDz zur7{o@~0~w;TB&_d@7am=8ftzf;&|4_NOLPkkowA2G$y>(KsDRjUpGWA11P&ehGTN z(L1(7-RaS1WAE4;$)ooUUqF0x3B8X=f2yd8!B7K>E|l_3>7wSD$R^K8H?+DbQ;d10 zSi?k)`Ci##+%u70fmgh4>M81;NpF})I(lskr@*8B3W9Y;@jHA6k8yn(UWZ97!lJ!~ zDXu-rJN7K5si}N}%wdL_#zIZ7xIzIJcj0krar_MHF-uLCGAg$t{V_XKmQhhyIw;D= z4AyK%q@y2N9Z<)p?Og#Z)&grHJ9`6gydB)chZq7Ez00NP6>bY06Jd@`-%m8to%!a2 z$!8UwVb0|;KlU!xJbV?o+}b7d3Ay;m_4|5C^mV?@lb|oR-q$mt-{R}s{CzpY*Ly_2 zm0}4SI ~(|lZ9#m3H4I2(Fb+T8j6 ~BM-jifyKPAuXLOq0d-mLO&pF?B&bhz+ zz4Rl1L0o7-6er~}tYIX<{ghlzC(w>FQW}-gSq-lx(1NizigF*1<6ImQQhZ&Wk7<|` zh}NBoKzi(wamCOpMs-%7@*Jx=TM)=h)~lX1XI`{iYr0|{uU2i(@GQIP3LNk+ysKX^ zD%Omz)Jr_@9K))5u0C#iC+O@ly=Zf$>l(ABz#hk(vD^ngeX;V<_2tiQEr0(0{X175 zd~o;vou$>Umw4V7@BDkU#+XXYc07SD-_7bb-!5PKa{1a~qmS6E>0OYBc4T{-VNy=o zGfbsz%&MB>^|@)&Id2e~WWX*Nm5YXB$?s69cx8)V^|6vYr<-0yCsads?YdJkiFa(>WEB* z4$FpH4k(Ledq){*Vsf-N!c-{79Mi2=SP>-%qwWv9#yvaeA(|Yus+M<*ZI+c-4>aMR zIV*`NpX5`PUz-Mc56V^**gIy~y8DhXJ8L?+vC*6Q@tRd+kt-~N%J!_YxI6roS^4DF z%GI08OCSI7;nmf w?JycS5Rs4Y1C?Fb%qHyVRCE3hrtWj z%SWM|Z%2fGM9p;vzqWzB#{W(iyRe&zR)`L4s3MY_t+riTZM%@59}>cK4;|^;1$Q;~ zJ;W^v5j@E?<|{k#6y;=KfF33X%H)vi=F5@Imv=Y4ybt@s%Xx;1$WXby+YsMTdOUQ> zzug&FgrQ|xk`tNnGtK=({;MC!m-NG~;3~oV$ygfqa$oK%sLFibFNl5$H9Ft-Gor=* z+yWH;lY% JQR$%?1?Za^DYK>RJK*Yb)y$SC1STvEuR?&j1C242J1Q5?pLc!@Dp z?uRKw*xHBiGV_UIALrx )VER;u7D5OCMLWdBKXtePik&2yA*9_KdltvZJ7>^?# zBAsMRL8RFq(DKG266tLVNJ_xm(yf84NqIY$1+;A*k)Y(kd}TviLcTwt|Bc~XL~3(q zw>O=y0*1oNMJ5+za&0+Y_Gc{De;Zo{B<;KD2~5}P+7=EPuZK@dgv};9;+6FW=~V_g H?&8EhQP;DY literal 0 HcmV?d00001 diff --git a/etl-data-source/el-data-source-common/target/classes/com/etl/data/source/common/pojo/constants/MysqlConstants.class b/etl-data-source/el-data-source-common/target/classes/com/etl/data/source/common/pojo/constants/MysqlConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..6b6430aadd9d9ccb1834b9bde5d5fecf8b80fdcf GIT binary patch literal 474 zcmbVIyH3ME5S+`?ah@bROFE$78VUpm2?eMe0x<+pp^I}07dgJ*JA?QvDkKU%fR93K z91zgbjCN*swX^g7@%jc}2dgf!Xce(o#1ezsx$!T&+bjR1$I$e~;z96GL?iCoSVg0K zhH6_!#)`=HMVLqj%M7*o()p3^Uw3=Q4ptZn2P#tbkRiLV*=NYL^-wa@Jr&8bWHONP zr5J>yG(8=NurFdY<6mOV-YLVd=LLGgr49K|Siy}>;y`lJCOYC%J=Rpuy%^qkGWX%P zHA6mKKOH|+vn#E??d{oL6}Tuf?Ed!#L*pl&?qDnfOMfOt#thC>81ty(A=Z(hd_lN| z9P*%KQdT7H{Ng3*kZF_&D>T7V4&=99z@F2UDq(?SpoAJ>C9U(Qqd|;efiQ#SC)`qT A-v9sr literal 0 HcmV?d00001 diff --git a/etl-data-source/el-data-source-common/target/classes/com/etl/data/source/common/pojo/req/ConnectMysqlReq.class b/etl-data-source/el-data-source-common/target/classes/com/etl/data/source/common/pojo/req/ConnectMysqlReq.class new file mode 100644 index 0000000000000000000000000000000000000000..e00c164bd303ee597ca9bbe3d4234fefcd4a98ac GIT binary patch literal 2537 zcmbVNU2has7=F&~eC>7$rL=`rRM0AIw`Jr@VM|p&K%j-%LJ>rC*iPEP?aX#|7UWL3 zFy2&6)ElG58^sGEkZ7A=;>Qgp{*M-Zgow|XnReUlCK8kOoaekB=e+OpzVq&1|J?Z% zz%IO Rz z-qdkkAYBbg0 JpZ~D%(cJu}GXh50u2jz0!MMQMCH?%(5AS{Zfq=Hp_1y3! zCehVB#(NI(VcHG4o^zr)b szCoCuY0(q$sM2aEoc<%A_`+zxH4 z;#Y&BV^KEcdsf-M riv0WGq$Jpo8FxnY z&P1XF$KvS8Y$A^i&5@#3fHkqQCTJcF?c%#bb~&Py-57P0QMA27GFHAgX;&uWs<1>y z8Ord;(V;_(l~@a$O0^WSZgCuHXWR#w&e{t`=*R6SkR6RmbJ?ZL2HDHrc)cTmGvn zS-1^x^G(T8-oH7waQoW)C)e0oCZ57(6Yc0Q@wi-`K!?E2|Ir;L_Q5jo9JZR+CQ+9} z-EtWKyLChTw|1cFmd0g;>eK3Cu?9@Mg$wM9-p!Jq0fDC8&5I22B)Ux;!d8Kn+O=`% zNwHlnJ08ECzDCWqs{fKW`mu!*q>XbYjg%w=jG3nCMrnWYQ>Y0 zJ1M4W3oo;{3+`&q9K>yc6rSd)MZ#u0Lu|$d=)|);2}vl|mCipQb*s*KT|;Nqpn-F` z-g$jPXV$KPvr_Ne-q5)R`NX-vBvUfUp8U^9HBP!Cwn&negv139=xuyY`cdzR>&0GZ ze2?;|_r&EDvbE#9#2&_+VO}%&p6{V5H}Zc#{Ss>WM*erGL%lt-(4r%OexjF4LFxMw zO*!Q*)?J6$ms4h8ELvm=Dorv4EvHHw?JiocqdBMMv}H!wf=;7s!N}>-$ViOzoUv%6 z++aZIRXue+4s?m$89a~eOrss|VF&vxMU9J{l%>&wB7b?eL%|Uo#%?11=HeB+K%}9> zPJEF_N5D^E50Qbrd@~PIH~z*N9fb$z(9zF7Lp;F77-p73Ud>UFbjM!qvO82spNxL> z7ZEpyx)i<2m}T@r4wm>Dv5kHjy-&CF?^6aM$~U$2Pm*w>C4U`y-z=Kmk@8GIk&2v> zXbf3~Sd}fPk%|?FoQ#|rsWvqx^`-d1B&;+>@G@!Qw8t>^6Qz*FaU5W%X?`I)aF9r0 zz#H%?ks8r<1=>Rj6w)RHse%v>X =^Yk^o I$9a16U)KQM4*&oF literal 0 HcmV?d00001 diff --git a/etl-data-source/el-data-source-common/target/classes/com/etl/data/source/common/pojo/resq/ColumnInfo.class b/etl-data-source/el-data-source-common/target/classes/com/etl/data/source/common/pojo/resq/ColumnInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..3471ed56edb11c101c3b40b8786fa1d3796e6dd3 GIT binary patch literal 4523 zcmb7H|8E;-8ULJp=R4bHJ9V3MN6X08P!cDZDc`xYgRbjnSdx{tlx_^z)ww2aZC`4i zyOl2++h7}G6GZ}TLI`O>YC$S16C^_&V(`n5_>rHG_z7ug)&HSmeBOJ{_Qk%4OllrK z_k6qOeV)(ryw`vH_xfJ|d BAh^c`c|wqj zf_z($?+ER8b$l;_ZFthaQ{wmg2A($Xj9{NN@B;%sH1M2(=Y`+};qau6A1TOGyjr{7 zSa9mDg5um+=YmtNIgO?Aalct@EX^pej k4wx^N?4syA8h^ z_{JZ8bL;sRsa|sZLy?N@7@vsb)2*3$h==E^=c)~Np
RzL~;+^%%O}BNvEMGs{IOFl$S>|(pw}zI; zZj-tVZ^$%Kx$cRAYKa5RM#?kPRd-90Yi+E-@c3W}CQdRp+C_2`UYq1L5{=MFO@uJJ zuae2}aYJ%lbvL<`d%o?|Sj`PtJ#_l4Tk&Tm9#Nop8*v`0h)>U7cAE-ziEfN-2EW~b z)u!r#bdDfoD0GO3a)D6~`gv&*5k#U$3`c`VNnjEMa`>XCs2GXUt U>*Z*6Ny}kAB+ppbt`kIN4VARA%1^F1pO_T&TCCEJ( zRUmf32iXrM9>xPEK8MenI4ro2W1or73StW~BglS19>LeyyZ+^WU%Ogcbeks5V2K;K zcfj#pD-W1>5!~0=snJeH5Ae>I8jT;I!2BfzCJlm#VAE-zn;Px4ozFuZb=Y`{lnE0q z_EFbMQ_e1-;H<2;jYS31F(4RR(BZjQ{tfn>B{2Yqjy>+;WqT*@?i3QDRbY?#l;!W; z{M*yQ7!_>apkgl-Z0Vq4f(o{IP%%jbTR*6nrh;%7RFqMqkUb{-1oJBMSK+T#`XiLz zlS$x{q^Uqy;0Fj`N&|cvpW%}tutD1IoalGn7VAu$#W*MXowvt26Ob{^YQOVvtTTZe z >aQG%{_&(uI)`8tIl1G0NF#8s+Sal@>;s&?s$X zB1U;TOQXDPT3KOahDPKfMg==Zqk^5ca>6Jd8s)5f$4I@(^Cu%qL8A0kS(h$KZ{tfi z!m179CT6)P5?pit!j~yaa&`R^50X=9vx+%#8s>40e@BS!8ZKdh9RD}NTjC*d27Zcj zI7%*!SGdo=LN0?fcI6nkEdERcA17zx-`uSy$mQ@K?7~;c<#Cev&S6+LZX>VbYwux1 z$0`0Zl=pClWYZsrW!}6Z!-)~wOH8mPpdd=K*#K+Z(r7G*D2*a+P#Gq1gnnsyUmlv- zuO0~CvwLV}ncy*oCa*xBUc=C1LY}o%p|I3YV+cq|m1%2%if9U)3`^^%a&{_ErMfC& zOnT*QJx~!|p_krK6>K9=8C?}YN3Y%S5O`FcAUtOhzs95Z2G6JAHGGp?f=&A+zQwaA zu?NrMF>)$LbQumgjYXZuX>uv}yiF?Pbo>N6u}IDkZB*`t`91|I+o&jP9Teq#2J1a1 zgkTt2$Dm`QZWM)Psfbz6vR@h+>l=-G_A!dk#TanudBy8O$8?-y&v#Qb-C1vb@JLkQ z8P;4}=BM7mwuj$DvABH=I|PXMQyi8&r+-IrMDpo1>@40P`J9kjlIQU6D1J!t1;Otk zS;OxB>rSo$`F(II#DO9{1jBrK9~W=p!~I)06MI*lAw1;A#Y;Sl&cp02(K)y;OH->z zl%`jaELrL*)RLvG^25bStzuxuXM^YhQjE|Y#l7KODrDj|6qCF+_~uFmoVbzHfD?C$ Z7I5NL5Z`iDJ|%Fr`!#otdG2YU_CE%Qh@Sue literal 0 HcmV?d00001 diff --git a/etl-data-source/el-data-source-server/pom.xml b/etl-data-source/el-data-source-server/pom.xml new file mode 100644 index 0000000..df6f5e3 --- /dev/null +++ b/etl-data-source/el-data-source-server/pom.xml @@ -0,0 +1,115 @@ + + + diff --git a/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/ElDataSourceServerApplication.java b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/ElDataSourceServerApplication.java new file mode 100644 index 0000000..8d13b2f --- /dev/null +++ b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/ElDataSourceServerApplication.java @@ -0,0 +1,19 @@ +package com.etl.data.source.server; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ElDataSourceServerApplication { + + public static void main(String[] args) { + SpringApplication.run(ElDataSourceServerApplication.class, args); + System.out.println(" __ __ _ _ _ _"); + System.out.println(" ___ _ __ ___/ _|__ / /_ | | | | | | ___| |__"); + System.out.println(" / _ \\ '__/ _ \\ _/ _ \\ | '_ \\ | |_| | | |/ _ \\ '_ \\"); + System.out.println("| (_) | | | __/ | || __/| |_) || _ | | | __/ | | |"); + System.out.println(" \\___/|_| \\___|_| \\___| |_.__/ |_| |_| |_| \\___|_| |_|"); + System.out.println(" 数据源业务启动成功!"); + } + +} diff --git a/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/GlobalExceptionHandler.java b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/GlobalExceptionHandler.java new file mode 100644 index 0000000..00e5e69 --- /dev/null +++ b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/GlobalExceptionHandler.java @@ -0,0 +1,42 @@ +package com.etl.data.source.server; + +import com.etl.common.result.Result; +import lombok.extern.log4j.Log4j2; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; + +import java.util.List; +import java.util.stream.Collectors; + +@ControllerAdvice +@Log4j2 +public class GlobalExceptionHandler { + + @ExceptionHandler(MethodArgumentNotValidException.class) + public ResponseEntity4.0.0 ++ +com.bwie +etl-data-source +1.0-SNAPSHOT +el-data-source-server +el-data-source-server ++ +1.8 +UTF-8 +UTF-8 +2.6.13 ++ ++ +com.bwie +el-data-source-common +1.0-SNAPSHOT ++ +org.springframework.cloud +spring-cloud-starter-bootstrap +3.1.3 ++ +org.springframework.boot +spring-boot-configuration-processor +true ++ +org.springframework +spring-jdbc ++ +com.alibaba.cloud +spring-cloud-starter-alibaba-nacos-config ++ +redis.clients +jedis +3.7.0 ++ +com.alibaba.cloud +spring-cloud-starter-alibaba-nacos-discovery ++ +org.springframework.boot +spring-boot-starter-web ++ +com.mysql +mysql-connector-j +runtime ++ + +org.springframework.boot +spring-boot-starter ++ +org.springframework.boot +spring-boot-starter-test +test ++ + ++ ++ +org.springframework.boot +spring-boot-dependencies +${spring-boot.version} +pom +import ++ + ++ ++ +org.apache.maven.plugins +maven-compiler-plugin +3.8.1 ++ +1.8 +1.8 +UTF-8 ++ +org.springframework.boot +spring-boot-maven-plugin +${spring-boot.version} ++ +com.etl.data.source.server.ElDataSourceServerApplication +true ++ ++ +repackage ++ +repackage +> handleValidationExceptions(MethodArgumentNotValidException ex) { + List fieldErrors = ex.getBindingResult().getFieldErrors(); + + String errorMessage = fieldErrors.stream() + .map(FieldError::getDefaultMessage) + .collect(Collectors.joining(", ")); + + log.error(errorMessage); + + // 使用Result封装错误信息 + Result result = Result.error(errorMessage); + return new ResponseEntity<>(result, HttpStatus.BAD_REQUEST); + } + + @ExceptionHandler(Exception.class) + public ResponseEntity > handleException(Exception ex) { + log.error("General exception", ex); // 最好打印堆栈信息以便排查问题 + + // 使用Result封装错误信息 + Result result = Result.error(ex.getMessage()); + return new ResponseEntity<>(result, HttpStatus.INTERNAL_SERVER_ERROR); + } +} diff --git a/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/config/Swagger.java b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/config/Swagger.java new file mode 100644 index 0000000..708f9a6 --- /dev/null +++ b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/config/Swagger.java @@ -0,0 +1,101 @@ +package com.etl.data.source.server.config; + +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; + +@Configuration +@EnableSwagger2WebMvc +@Slf4j +public class Swagger { + + @Bean(value = "defaultApi") + public Docket defaultApi() { + Docket docket = new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + //分组名称 + .groupName("2.X版本") + .select() + //这里指定Controller扫描包路径 +// .apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller")) + //这里指定扫描有ApiOperation注解的类 + .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) + //所有路径 + .paths(PathSelectors.any()) + //不包含^/inner/.*的路径 + //.paths(input -> !input.matches("^/inner/.*")) + .build(); + return docket; + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("七组RESTful APIs") + .description("构建RESTful APIs") + .termsOfServiceUrl("https://blog.csdn.net/weixin_43453386") + .contact(new Contact("刘泽璋", + "https://blog.csdn.net/weixin_43453386", + "xxx@163.com")) + .version("1.0") + .build(); + } + /** + * 解决SpringBoot和Swagger2冲突 + * + * @return + */ + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List ) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + log.warn("修改WebMvcRequestHandlerProvider的属性:handlerMappings出错,可能导致swagger不可用", e); + throw new IllegalStateException(e); + } + } + }; + } +} + + + diff --git a/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/controller/DatabaseController.java b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/controller/DatabaseController.java new file mode 100644 index 0000000..4ebc8f6 --- /dev/null +++ b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/controller/DatabaseController.java @@ -0,0 +1,75 @@ +package com.etl.data.source.server.controller; + +import com.etl.common.result.Result; +import com.etl.data.source.common.pojo.DatabaseConfig; +import com.etl.data.source.common.pojo.DatabaseRedis; +import com.etl.data.source.common.pojo.resq.ColumnInfo; +import com.etl.data.source.server.service.DatabaseService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import redis.clients.jedis.Jedis; + +import javax.validation.Valid; +import java.util.List; + + +// 声明为一个 Spring Boot 控制器 +@RestController +@Api(tags = "数据源") +@Slf4j +public class DatabaseController { + @Autowired + private DatabaseService databaseService; + + @PostMapping("/testDatabaseRedis") + public Result testDatabaseRedis(@Valid @RequestBody DatabaseRedis databaseRedis) { + try (Jedis jedis = new Jedis(databaseRedis.getUrl(), Integer.parseInt(databaseRedis.getPort()))) { + // 测试连接,例如设置一个键并获取它 + String testKey = "testKey"; + String testValue = "testValue"; + jedis.set(testKey, testValue); + String result = jedis.get(testKey); + + // 假设Result是一个泛型类,用于封装响应结果 + return Result.success(result); + } catch (Exception e) { + // 处理异常,例如记录日志或返回错误结果 + log.info("Redis test failed: " + e.getMessage()); + return Result.error("连接失败"); + } + } + // POST请求映射到/test-database-connection路径 + @PostMapping("/testDatabaseMysql") + @ApiOperation(value = "测试数据库连接") + public Result testDatabaseConnection(@Valid @RequestBody DatabaseConfig config) { + String string = databaseService.testDatabaseConnection(config); + if (string.equals("ok")) { + return Result.success("连接成功"); + } else { + return Result.error("连接失败"); + } + } + @PostMapping("/findDatabaseTable") + @ApiOperation(value = "查询数据库表") + public Result > findDatabaseTable(@Valid @RequestBody DatabaseConfig config){ + return Result.success(databaseService.findDatabaseTable(config)); + } + @PostMapping("/findDatabaseTableName") + @ApiOperation("查询指定数据库的所有表名") + public Result
> findDatabaseTableName(@Valid @RequestBody DatabaseConfig config){ + return Result.success(databaseService.findDatabaseTables(config)); + } + @PostMapping("/findDatabaseTableField") + @ApiOperation("查询指定数据库的指定表的所有字段") + public Result
> findDatabaseTableField(@Valid @RequestBody DatabaseConfig config){ + return Result.success(databaseService.findDatabaseTableField(config)); + } + + +} diff --git a/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/service/DatabaseService.java b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/service/DatabaseService.java new file mode 100644 index 0000000..f58747f --- /dev/null +++ b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/service/DatabaseService.java @@ -0,0 +1,22 @@ +package com.etl.data.source.server.service; + +import com.etl.data.source.common.pojo.DatabaseConfig; +import com.etl.data.source.common.pojo.resq.ColumnInfo; + +import java.util.List; + +/** + * @ClassName DatabaseService + * @Description 描述 + * @Author ZeZhang.Liu + * @Date 2024/6/21 20:16 + */ +public interface DatabaseService { + String testDatabaseConnection(DatabaseConfig config); + + List
findDatabaseTable(DatabaseConfig config); + + List findDatabaseTables(DatabaseConfig config); + + List findDatabaseTableField(DatabaseConfig config); +} diff --git a/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/service/impl/DatabaseServiceImpl.java b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/service/impl/DatabaseServiceImpl.java new file mode 100644 index 0000000..c2a3c4f --- /dev/null +++ b/etl-data-source/el-data-source-server/src/main/java/com/etl/data/source/server/service/impl/DatabaseServiceImpl.java @@ -0,0 +1,174 @@ +package com.etl.data.source.server.service.impl; + +import com.etl.common.util.StringUtils; +import com.etl.data.source.common.pojo.DatabaseConfig; +import com.etl.data.source.common.pojo.constants.MysqlConstants; +import com.etl.data.source.common.pojo.resq.ColumnInfo; +import com.etl.data.source.server.service.DatabaseService; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.stereotype.Service; + +import javax.sql.DataSource; +import java.sql.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +/** + * @ClassName DatabaseServiceImpl + * @Description 描述 + * @Author ZeZhang.Liu + * @Date 2024/6/21 20:16 + */ +@Service +public class DatabaseServiceImpl implements DatabaseService { + @Override + public String testDatabaseConnection(DatabaseConfig config) { + try { + // 创建数据源 + DataSource dataSource = createDataSource(config); + // 使用JdbcTemplate执行SQL语句 + JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); + jdbcTemplate.execute("SELECT 1"); + // 如果连接成功,返回"ok" + return "ok"; + } catch (Exception e) { + // 如果发生异常,打印异常信息并返回"error" + e.printStackTrace(); + return "error"; + } + } + + @Override + public List findDatabaseTable(DatabaseConfig config) { + List tableNames = new ArrayList<>(); + try (Connection connection = getConnection(config)) { + try (Statement statement = connection.createStatement()) { + // 查询所有数据库名 + try (ResultSet resultSet = statement.executeQuery("SHOW DATABASES;")) { + while (resultSet.next()) { + tableNames.add(resultSet.getString(1)); + } + } + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return tableNames; + } + + @Override + public List findDatabaseTables(DatabaseConfig config) { + if(StringUtils.isNull(config.getWarehouseName())){ + throw new RuntimeException("请选择数据库"); + } + List tableNames = new ArrayList<>(); + try (Connection connection = getConnection(config)) { + try (Statement statement = connection.createStatement()) { + // 查询指定数据库的所有表名 + try (ResultSet resultSet = statement.executeQuery( + "SHOW TABLES FROM " + config.getWarehouseName() + ";")) { + while (resultSet.next()) { + tableNames.add(resultSet.getString(1)); + } + } + } + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return tableNames; + } + + @Override + public List findDatabaseTableField(DatabaseConfig config) { + if(StringUtils.isNull(config.getWarehouseName())){ + throw new RuntimeException("请选择数据库"); + } + if(StringUtils.isNull(config.getTableName())){ + throw new RuntimeException("请选择表"); + } + List columnInfos = new ArrayList<>(); + Connection connection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + // 加载并注册JDBC驱动 + Class.forName(config.getDriverClassName()); + + // 建立数据库连接 + connection = DriverManager.getConnection(config.getUrl(), config.getUsername(), config.getPassword()); + + // 创建PreparedStatement以避免SQL注入 + String sql = "SELECT " + + "COLUMN_NAME, " + + "DATA_TYPE, " + + "CHARACTER_MAXIMUM_LENGTH, " + + "COLUMN_KEY, " + + "IS_NULLABLE, " + + "COLUMN_COMMENT " + + "FROM INFORMATION_SCHEMA.COLUMNS " + + "WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?"; + + preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, config.getWarehouseName()); + preparedStatement.setString(2, config.getTableName()); + + // 执行查询 + resultSet = preparedStatement.executeQuery(); + + // 遍历结果集 + while (resultSet.next()) { + ColumnInfo columnInfo = new ColumnInfo(); + columnInfo.setColumnName(resultSet.getString("COLUMN_NAME")); + columnInfo.setDataType(resultSet.getString("DATA_TYPE")); + columnInfo.setCharacterMaximumLength(resultSet.getInt("CHARACTER_MAXIMUM_LENGTH")); // 注意可能为null + columnInfo.setColumnKey(resultSet.getString("COLUMN_KEY")); + columnInfo.setIsNullable(resultSet.getString("IS_NULLABLE")); + columnInfo.setColumnComment(resultSet.getString("COLUMN_COMMENT")); + + columnInfos.add(columnInfo); + } + + } catch (ClassNotFoundException | SQLException e) { + // 处理异常 + e.printStackTrace(); + } finally { + // 关闭资源 + try { + if (resultSet != null) resultSet.close(); + if (preparedStatement != null) preparedStatement.close(); + if (connection != null) connection.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return columnInfos; + } + + + private static Connection getConnection(DatabaseConfig config) throws ClassNotFoundException, SQLException { + // 加载MySQL驱动 + Class.forName(config.getDriverClassName()); + // 设置数据库连接信息 + String url = config.getUrl(); + Properties properties = new Properties(); + properties.setProperty(MysqlConstants.MYSQL_USER, config.getUsername()); + properties.setProperty(MysqlConstants.MYSQL_PASSWORD, config.getPassword()); + // 获取数据库连接 + return DriverManager.getConnection(url, properties); + } + + private DataSource createDataSource(DatabaseConfig config) { + // 使用DriverManagerDataSource创建数据源 + DriverManagerDataSource dataSource = new DriverManagerDataSource(); + // 设置数据源的驱动类名、URL、用户名和密码 + dataSource.setDriverClassName(config.getDriverClassName()); + dataSource.setUrl(config.getUrl()); + dataSource.setUsername(config.getUsername()); + dataSource.setPassword(config.getPassword()); + return dataSource; + } +} diff --git a/etl-data-source/el-data-source-server/src/main/resources/bootstrap.yml b/etl-data-source/el-data-source-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..86f79de --- /dev/null +++ b/etl-data-source/el-data-source-server/src/main/resources/bootstrap.yml @@ -0,0 +1,27 @@ +# Tomcat +server: + port: 8886 +# Spring +spring: + application: + # 应用名称 + name: etl-data-source-service + profiles: + # 环境配置 + active: dev + main: + # 允许使用循环引用 + allow-circular-references: true + # 允许定义相同的bean对象 去覆盖原有的 + allow-bean-definition-overriding: true + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 182.254.221.163:8848 + config: + # 配置中心地址 + server-addr: 182.254.221.163:8848 + # 配置文件格式 + file-extension: yml + diff --git a/etl-data-source/el-data-source-server/src/test/java/com/etl/data/source/server/ElDataSourceServerApplicationTests.java b/etl-data-source/el-data-source-server/src/test/java/com/etl/data/source/server/ElDataSourceServerApplicationTests.java new file mode 100644 index 0000000..00fb8a7 --- /dev/null +++ b/etl-data-source/el-data-source-server/src/test/java/com/etl/data/source/server/ElDataSourceServerApplicationTests.java @@ -0,0 +1,39 @@ +package com.etl.data.source.server; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import java.sql.*; +import java.util.*; + +@SpringBootTest +class ElDataSourceServerApplicationTests { + @Test + void contextLoads() { +// List list = Arrays.asList("a", "b", "c"); +// list.forEach(item -> System.out.println("Lambda方式遍历元素: "+item)); + //创建一个未排序的列表 + List list = Arrays.asList("b", "a", "c","aa"); + //使用传统方式进行排序 +// Collections.sort(list, new Comparator () { +// @Override +// public int compare(String o1, String o2) { +// return o1.compareTo(o2); +// } +// }); +// +// System.out.println("传统方式排序结果:"+list); +// list.sort((s1,s2) -> s1.compareTo(s2)); +// System.out.println("Lambda方式排序结果:"+list); + //创建一个新的列表来存储过滤后的结果 +// ArrayList filteredLis = new ArrayList<>(); +// //使用传统方式过滤 +// for (String item : list) { +// if(item.startsWith("a")){ +// filteredLis.add(item); +// } +// } +// //打印过滤后的列表 +// System.out.println("传统过滤结果:"+filteredLis); + } + +} diff --git a/etl-data-source/el-data-source-server/target/classes/bootstrap.yml b/etl-data-source/el-data-source-server/target/classes/bootstrap.yml new file mode 100644 index 0000000..86f79de --- /dev/null +++ b/etl-data-source/el-data-source-server/target/classes/bootstrap.yml @@ -0,0 +1,27 @@ +# Tomcat +server: + port: 8886 +# Spring +spring: + application: + # 应用名称 + name: etl-data-source-service + profiles: + # 环境配置 + active: dev + main: + # 允许使用循环引用 + allow-circular-references: true + # 允许定义相同的bean对象 去覆盖原有的 + allow-bean-definition-overriding: true + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 182.254.221.163:8848 + config: + # 配置中心地址 + server-addr: 182.254.221.163:8848 + # 配置文件格式 + file-extension: yml + diff --git a/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/ElDataSourceServerApplication.class b/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/ElDataSourceServerApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..d16812d15f9f1f3837dff09523a2d26be8f4945b GIT binary patch literal 1327 zcmbVMO-~a+7=DJYT}l-!g5nnoe$ZBBL`fiGhzNRW)L4TDNjBTE)Wz*C*`1;$8xwDa z#Dt3%FUFfEzYa=>@dx-jY_I+U<2%zWtp+)`o1N$Vn)iKX=AHfiYx^63NlYe?#4!!W z6F7n4ZWtKRF`B?hoYHYx#~B@CI?_5a8nO&sR~*j~vkdL&%pya_yuWNS^yVDTzF8?3 z?BK3daLJO&`9;fJv;s%!v9Uuua6*R5xuRd@ws85fB`hBLm7r+z&<@t^fM0hP$e35Q zyfV$Lt+`Io5{~c9P{p$4cnpK-`?*zX-Quq0m3UqRj#rvdjI5wUHTrjPGbHMHZ#a_T z=$@s 1U3^XoH)zGl1KDy-T?!I1su`PWap<+SO-1QqJr zLb|1G=UpodXLjk-%&wh94JGWyg3rf|C2v+s2{KDJ-H{fm`6r>U%T(R35aEG(amVMk zsc8jW8`~<=gnqTQKg|r9Y+K w#9*JC_Y3XrrHpeA>WdH`CZl8Yg6go!Kv7AC -jd6>Q6L=(fmisUj+-yRX}nY_cZV7QFDj z@B0`32gMnsI^*~= KPdZMIt$*p_p>vSC)u;+! VH0^2Av($Tivptxze1ZMBqFXU!U>hYf zFb&_Wc|~dX(p!+8anyEaOgnqND64_xI>$_>WQUsXm nD4>4)g7>VP|@MQ)lk*(B0N_7;8qR3jsP_s3s@xo)y1gec5KveUdIKz zq~T@td_`b~>Zn(DrG&Pk;Z+^4;i7{5y1<&F(vhBNZ WDglh!rI8?8+1@gEX!bwy_TIR>N*1V4 3wgAw+A9w^ct6000{6x%Ch`?4u^IpR zRvI7SV}V1--7IE76K;zbDvf%2hgq%K7X-GnK%1>OMK$z{BlQJ+wV`QN3vv$UidhwS zxQ;xWDk}xV9o525(fun#kE`k`2H~{Q=3N%E!z;ssap#QBnO;G@Sd$J5FhP1l1Qlq- zNS;cPSitHynv@BirfY6+PZ8({ho?Ya9ADkV>fW+xxpb1oC5KuP+jYkWO}aZNb;DXe z#(PA8L!-t7&5Vs6KAX>;Je4g>3EY!7K(1n4dZIddA%pt1@<1oVo6VSOQPYdG4aR zr41|Mwav_KOdf$W>#T7VS+|^-@v%-{AD^7c<|jvUXA9Z Tjhl5 z@Or}@+eHo0EmPn?9Pqep`hI=(T}z6(n`-z($EWyG!&f@K#@hmSHBGUc1^1jZa%N?w zWU`f+v!=>rmRY9KeADnPdqd83&(&By`f-O%I8-kgxWD3{>hhwd7>#s)d&D>#bL~oJ zw=hoe8WtzN`NK%%^?Bo^Q s7Hs7kzj1IE+Ct_l6xPAL!@GY$Y6)!u6N5`=7x+zW zFJV;*z1n4TE}<)hKarligv_2L=qc>EjN69Ve@FM}jqR7P`d9S)NI7kx?#m%q*ggt ?N9qh(cjH5b3RBA_Clv?ZlSG5bnXfv|@mKJNVm1p4+e!yNGo+IoI Fi!<`7=g9!j1Kqn1Z zj_5XWslTq?zROtuGcqcwA{NyiTJSLUQg|d3reZzB_b>RL=K3>ygU{*nF}^DZ;{ -97g_ zzH{!m=N$dx-&g(uU>AOq!FC+fFqOeJJfa?t_9BBqA9s)RqKMfH9>-Djc1*)@wfBU2 zoKSL4_TZ@up2p`g_&mO#9;Swp1}lU8DEC12qJpZ1xePYL&fp~GH8>h-8tMYwV|LvR z#s#_t29FA)C*86X*if+R@=&u@lHROYa!BbbxR&W0H9cE>$Ha6nXZr&BRJ|^}Nyqek z$ (p)eN$E;V4!=;nb3i1g`G4SkqH9wdj#Z2_4Bu#4Q>$KOS z_70h~(7P1_u{wcu#lW=Yr_Dy}ZD!voOEwfFUxO=fuhsMew`QM_#fCyqaZepI>t#oJ zlxdK_SlkgqZw9tw6l_1pt0?!>S`66;*~&gKTW;gDz^3+ypKdHi{mxY)W3#jQamI0N z(XQ6bpy|;edu(=h!S$+!A3^iz=A!G(8;i0O9)%+VqqblfH5tsgW#fo^rYZd(20m4< zxb3dw$5%TNSykTjRb|l5O~?B?oLPKANnh7gZ0VE*wk8h9lNE %zXe<+wg`dpgV;4bSNC;On>>I|L5I+2)=y%C6O{$$Ai8;W!J! c?#zGd0Tux=N zN5^TL(eOnbU&5C)d_~8zcuvPx@il?<;mvO4oQ~(QL&ppFx{hz)EM1ywzq1;?spCbw zq~TjSUdAgrzKvG}?prAkQ;s96rZeGHLl0Z&D6sQ-CQDVd7K@JW;JX5)ci#TPyXTf} z7J~OKym0NU*WP{Z^$)IIScUM~*(?7#cm9K`FJF80jrX7b^R+jwzJK *L z@16UdhVSY4KF$f;a~&wwwLm5?-Hjh;_@Ry;;l~2G|DkyEU{;hzHCJGFr?R6;t#4FJ zD{#Hj%S~V}i8Cv;-}M9rZY-?0S0c&Mx?;NJi@@M5!zXVmU03B_2Vmm^gB|bLtvSYm z(arRgW=&u_HHFZ_oQ$Xjn+`Yg8Jx!jR=Z9mjm>@=e!}(;uuwDC+SF8 iC#Ic!k^%gr%tPm!)fKjYc1o=;Y{xag!p@wP1vA-)VI!Xjdab69%d zgzC9n^hDtPPI;2B+!}*2W~icnbd=p_BV7-#nN!(y(kQrU5Toze)ikEsqUmvZ8cLdp zy-8S^o%7s9H5G=l&6Xr{`_`kKF8BXAkPt6JFk=Qx 6m3zCs;Lb~<5cYevA2Y6E0=*obmcKOoib+^--T5YGl7A+H z5G#l}S5#^I{)n@~7@G)eo8T-5z$E*vZ$>6>E}OgzvF1tBaf&tziH2Vbd}O8CwpniX zhqwLad>CaB+YW)d_|s+$|2a4C>mI%tT!o?zU4nRvFDdNgvpXbC;$FV%5d-c+KfeeH z_mfKro9N;n(3krgQsk`trH%aXZHLVXh4nV^}WbsI-ac3kIYot6rih XKF?Jd&gGV{M&JtZVhLIbm(jC?wJH1+nQ89zva=2^ zK~LeB@-0HNO>yH8dU2SDW*C&mh~x 839H z37el7zJx7rQyBd5xP{?~);ro9IIez=64D8BJc+G%ipTSG=)e#omce>FjNR0+6&sPq zSg38J< @hAv|3-=U>nN4o3xBt)@{^5k$L zPu5|ALMk#U)l$8CSkN%Zj}$(OeO%N0fqVcT=35_W+qeQfcn!bA&xv)KUn=1a(ZFFI H&SU=pj&GH$ literal 0 HcmV?d00001 diff --git a/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/config/Swagger.class b/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/config/Swagger.class new file mode 100644 index 0000000000000000000000000000000000000000..a18a893813d9ceb0bc8ace5688c5ee8ddd76c612 GIT binary patch literal 3202 zcmbVOTT>KQ5dMbS><$wztI?<=0l^3oc3`;#MU8-nB&!e>QKFH|&YoQchnaOQup}`i z(Ii@V%Tpdw`2~4Mv}&QGk{^)Y5%piB(r0GC<+7k|)lQ#tru+2QU-#)V|NQslZvb6* z7)2unBpkz_i1Sel;ev!p3`?|pk&i|q_=wAo`6DUfl7!0`l`w`+B#a})M-%*UMZ~0p zy%>z(Dwo$HnBwx&2(EK^L&Rqh+>Bsa!XbRlm(&Q-Tx$H05y2!ha2#0)In0RA1;`_& z$?QQxbsXjhs5GpcfLPM9bBbeRyJnT7mCG@^Pe9FS-PGN)q|@9oDWGc5$}j=Dle)<+ zdvj@KPpD~wR>)XWjY-wk`8-^#a%XhfzBQ>?a|&|}C8N5k;#i)oF~wo_JhK(eGP8P4 zNiC?MM=8Uys%N >zq+>&(iwr=LKRzb;Fnm5NxS9NvERDyM7fu)ta;pKGGQO;Z1 zE#`9Aq)H #0)`xXzwWd&DJ*Ho1O zrkVt$dR{d=Vn|f;`iPmeh>z`pB35)_hoa}oWZ$wD|3%fz7|b5Ct$97eY`*`P<+wE0 znB!QsfU~r-pTrI5(xmDrSygi_dvTTWP4?tWQZ>F;Q+s>6fc>kxtuKklY0U_WLQ46$ zyrA duK>^Xvq~5S%cm?Tl0*s1jxuEOiVJ-wuCnx{d96>z zaWu 8&$JF8VO5X|Y+ z{kwec`O5wAq0~gyGwS=tM##(8xJz%I{dWK9%9HhPzTt0<&A4vfIi)CRI`whQ$(V7I zxpa*5f^JTCb#`@kcJ}tj_?9alFUwt6r<6RG%8ICY`rwymkN )LcqQof~Shm}pl^_EN1+F=-H zw>{>#VOLz;fjad51>K#w#M~Jx^P+Q8A1DpfzxyaoKXlL44JGTDnt!j1*({@Ls>=w) znQ|zC^&P^X`;wYIA({?dmvi(=d~Zotyd2Oqy2ey@ri7$Q)m#)%Pnp_*g6cdOQViAp zP9$C3R(87q~+6;3vThDXu1?+X1J?D&OQ$d|yu?+zyxA3&N zW;d_!qa^YR$8S(Kc0N>LGux*8%ZDM-$Bg5LaB$;i)P>;QrB;$-Zt!JAZMZb3)oR>m z*+*Y)jr0`>2sq5IG#b^=nC>-tw$e-?DUhr_v4o00X;6XpLnWXNZ8Vkx1;k02Z`6(s z(&EN<=;O13WZMcVryikd$={}?2r(8ZB3gtLt6hd%#2d@lRmAQh_9R>XAcMfkQAB85 zk6J>xk8mD96OItZ210k7T(^=-4&XrGBm~e(vjjQ`NEf}^MY5azJ=Y;P1g(PKwlwGP zJU>>7aRqy)mJo~WD`J1_%_0uO4i@p&3Jy)h4#y70jx3?Bh__?!6!C5m^&0^u5G8lJ z$lX42)rcN~c#<5PB0z}}hLjLsl-`~qARI!y4;_fCpn)J9<$DVy3=jH2@RW1|dm`w= z=@5J!N&c&P1Yx699T9hCErkuCW;E8gjHbsBcp6Kc9HBIwrL_ut=)03>bdKiz^nZ{3 L5@|P(B$)pL31y)p literal 0 HcmV?d00001 diff --git a/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/controller/DatabaseController.class b/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/controller/DatabaseController.class new file mode 100644 index 0000000000000000000000000000000000000000..2004636cf05cda92cfb791d15faa747cdbbf6d9d GIT binary patch literal 4929 zcmcIn{dW}Q6@F&3$!s E-uJoBy>st7 z|Nh_2e*tL4^(Z!AM8@GLG8h#PGYSjYC_*?AL2Cq$h^{RjP82S3qBkaEJc=baDr2G= z>+y3LzldTvMk4s7Xnz&OGW=Tfep7>&@NxvN2-)9?y|32bcX%y=*Q0m?$0B%BjNcNE zx5eYQjCZ1V7bj%=UP492N=t}!TXtG?GQ+JSYPXe6>vo%jWhu?ohBQYX(CslJsY__> zPFka??q*c6q&im4PU@<|W!?4~?oxNpm7=0}f6jD`QGL*GjG>I)Zkm>>xrSvr5_b3} zXKlkw58K+PK5p5E)gfIo9d%esx|ThmYDEFHJ?C2EhOMWlwrZzg8tyLI(AYF6A>3)D zh;doBVd}lP(IMU5ukkd`xTKaD)NDhHgUPUa$l&pbyIGX9OxLzD85&nGs PgTKsTu}95tCSbklWIZ(4m)%u!ULNL`7}$B!oU ztndrhmIx0E=LdGFMVMlt;QEElqJ{xiOCIjgvL53MIvIc9Yrw#kaZ<(~8QDZXV5CjW z&Dn&K{AQ`!Sz=kh)-D>hy==gZ>qF|0VWvuBt }3QpcIIpF7d8Z1-hO@h;_0HU z|D1j`f9$3FhsS2lUYI^{obvPZ?lJUCO2Vmcos)7^sx(zGO&(D@txRsz>@tU~wq5*_ zP(R<`0P)rZE%rE|#YO9 xNH$weW6NN zE-|q*xU=F!{@`6Am&;*SOS3dp`@YKGJfUDSnpu|@EDlW73QplY1@GfM8Glmn0Zt34 zKP&hUe^Kxe&M<{5_!wsud?J*sn5|9w582kZsI?0IicjY(6-$hQhp~}#%u4w=x+7;~ zQo2ncukbX81lBODk-Jo)LBTnErr^8)c0mC9n}WaN9}*P*9i0C3^32t93jT@D6?_kk zGA=6Ehf5Md77Ncw1(Ud3+?{{p#PpkI6g-P73ce7J7jT7sC>K4!9fv7y;TwUBs|v1R zNTQV%pBQ?%pdt|Si+ylWU=B^|?$b8&*viJH`K6Ed z2(I^8HnA+9h1X@eI@2BFHLKZ<&LI;*<9zX^F22xZ=DWnrtHRMKwxi5)8AbD_sDRKU zY%HUoyd_R9nbaMI^tMtFpXz%Ts>)=>a`-AP(Nd{_TsBJ{9i4e;b*Zvq47Ujjt9T92 zP3~za-4om@=3@+kn6F-xmi17-mga#G*DCn3_Rjk@-%^9AXaV*Kp;EVPi;kLOauLDZ zLW3~271nwAC|=&~es7ns`#$pYY-9z{$Q^GaT87S=6ITUiJtv{#e$OdZL0TA_S8aG= z{hciD@xLgT3+WgCLx*+0)Tf;p&2bn*cS^Ql9Y3u$@RKftH6nL;J?0olXkx#L?IyM| zTP9aNTR2kLN^C1PU59j;oe;M0DK>*@R6Z4d1GeJ(9MM(y0V;*Clt&mfocru6gbr+; zLIr=}8>qaFsvfB~CMUwNNTRYi9*$Q|q52tirVve3#j9?hCLuR}jkPUbqpo=h%6Y^R zk(PL53QNyJ7Bg{qG7*l4d*k6-iRwGIMqA?1lC9OZdaj`MD=a^79kJMoDXgT1IyO^S z^(E> uhu$j$6(MNqy>lg)oXD)h!-KozyMz62kao9qOI^)*+wpa z21>6-91meF>E1}Hw~*xRBzb`CAlDDF{|ZU|m^2FppWw-Hp54k_VM_fFkFZzi$vw(m z6;{B+4$g-tw*d*Xu}5A5&P8u0 `Mq4bjao$KtWYZ P9OZlk=NdL$#hT4u;(-u)nqv=6VeJQ~j(vwwF&TIY0pl_9 z1;$$qxm!u5*5FZ((FR{nk)H 1M0Z~sOJ{}>Zc2W zYA6e;<32(CtN`lZB0#;cAgFa^LG4`xs29sHr4>L8-4j#<$zs}DN1uy-)v@(A@X!~i f6{$}uNquqpEXBDHbnny{d&3;3x$BS@`o{kOW=2r4 literal 0 HcmV?d00001 diff --git a/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/service/DatabaseService.class b/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/service/DatabaseService.class new file mode 100644 index 0000000000000000000000000000000000000000..837743a2cc51459d111abc4ec680716af2776823 GIT binary patch literal 654 zcmb_aO-sZu5S^@b>#kp`h`&KE2E<#%gS#vU1rHVPX*(?`X`=bqALqdz;Exigi>r$j z1of26 6pi1_zbY $(2U;`q$FxZ44 X^<(M|V2kR}mwLQbZxeE7iQIhy_OHo} literal 0 HcmV?d00001 diff --git a/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/service/impl/DatabaseServiceImpl.class b/etl-data-source/el-data-source-server/target/classes/com/etl/data/source/server/service/impl/DatabaseServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..eb22ae2f08e961d10a54d460f3c433e4035119c5 GIT binary patch literal 8250 zcmeHMdtg)7dH)?-(v_ua48k_Z5MmM_#@Gl*2t-aG#*f%Rk{!!nph<|3FGgTXjvhR+ zENz;t3nfmQ&~~Fs(`IW+l6DE%R)gcM-nxx#*_y3;bzS#tmo#bDZtd2!Yq!wfckk89 zHVMu8XEDC#obP N<87lN2GnyjgM;h zm MhbocV$b{=$vFl=iRO_-i5ljR#-E z-wNeRZv36JUv}f~rTqst{!!Y05?#-G(152j{IdsLIHTcT-1v%gzv{-niuG4Cyy`(n zwk3qG$>TM7ye^NgYxstSf79?y1=r1qWFoswp|WZ1ZUsk2YS>Vy2_=$7BsX@zNDsyi zjFRFDrQ)&C-LZ5+#x~KBJ(S2O+!BhX#sWrmG%y^?#sZmCE*&=l86$nvNSjT9!^GJ5 zXrPnx2Vxl`$~h8yNo!N6&l;I*eySstOd9cQB9&C=Y?@ayt&OFUf$`MgR6!%f4kkw0 z)`kwpj>ZC`vE)b~noTE?Bh>E^x1y$3G-h%f4`lAO+_C87(hm mWZ0-!3q=OVAP0kTNytKEnB6o)R%|biSc~Mt(wJq zbIG3D2fnS%jPGx0_;(He!GzcFZ4KX{^U=geGM3Gyc~-ms-y1fsWhTm;)8Pv1=McLS z#^|uQS);kJWN-3dN@3$$h6fMmUT$Pwgd17Ot(EMYC+wG4MA`f39ih^I^u`M+=-i_5 zv@sq_8^eWDR9Ie=?VmkMs~y&K;lytKu|1bV`cDo2#nP*g`w1Mzd?l!~P|V)CZCpn6 zh> V+LgOAonYk-$C9xTBVF`FT(x}aPRNz8G+%>Cs`+|}Lk0gpE}2b? z8M_mi1oON-nM|=luo`lOP4oJY$r@=Rm1Uv_Y;|oqc44=U$8lPr`O1s2h<#VV9qkHr zbqqFc)bZc=o X`P({vi2r4g(eZzHL&qfrRv%p{RiUd&QD0(t@K8E+Ov<0G z9LlNCSahmmG?vLkQrYfQE;(HAkT;9TGCPwsd`nj@rD@8ot14BY&`?xmpFoKc-)qmG zfBju2Up@8As~ cn%eym(snihHx9C}!2r9l6Blu)*C}WG >-v)j?rKG5DV*fp>}+`gwbyeqsv)D^jHu!l32#Llk0Esed={gGXv zkoZ@a=;#ZFyCQ>@yS ht%HJWR)ry6f*+}_w8 z>9mRBlaO?^L@i~x(v@E|@TAo;1%iONkmpV6je@sir4k{_b#;|&ew750xoBOj5W>>S zEnQbvt42+&)YUcWT3xMDtC^9--O$w<5%-qtiLR~_(gK^w-Wgpr3ANTd^;z{uVe4D1 zjQ2ZHKr)*NgikOeSwO8J(PNIFPgiSIGxKkpp-jv)Ea$yWq3yC6{MMC6S1tISu3F`> zULFDQzimE8>A;nsP8Ql?%=aBQOvI_M=?WCis(A|Q=My6BG6 v0o33{k+vT=Bs`@BDNTm2n5BYlEb!F)D~$fK}EN;;Cpaqbo0QuZ-r zcyH%dQ`gixFX*p~4HI9Lt-?CzHqqdWkESy8y_#In+&B?XCS#C)X{kqrLfs|{Ur3`v zgh_`|jB-J)%%J=_%ilMy&WD5@24;#`{_Y~&<{jutWFomyA_P}#eB4OVaBHbyi+7%v z8M`iXKit_=eg||qX1)ekPWd>rZgA^1F+Hs*M!QMnNgqt5ErHc BIjao~>Zo@n#O2p@62enjX zijh>`)H{!Po_tw2mj>mU%Ns0R6vK>WEZA;sxtC+9B!k2|*2ebA8&z4f=7XS@w{Y?F z$Y&6h@%)a)Msr5rL2<7v18fd1&M#IE#h9f8SK-+4#8_@DWF$wjheW7kt$7g%bG_i| zPJ<~bp7)x;Du{*KUYPD+jWgc^Wid9OrNGuw#r7IXOyyTqLbB6RVf$r8XI)bH%qXv! zT(OU?%!z#$iB{Z7rx>^5wjH-v$?r^2C=Bx3lg5_Flg}ZJ0&EpqXY+Ze7uc!59zI lOp{;T;?)+=;vR6yYcNxyr$|v3cEjRD`Edxwqv!9FbO^a}q9}b}rm9i7KDx zoT*_6mhzicrKx`f-2hh5P9tjQULCIG>?-)NhF_+xGwt30C+B^*8~f>14XSVtVwCq& z_5k9f(X#E8^oC*3&OuV?{T>Y?934V}eDt;QbCg_2_YY3PyZ1cw@VX1Aj;NrcbqWg< zf=(55`JKL+DJ-l&P*Xv-Uz@@rg)^vY@oSDL_$n}k#ng88(%1ajMcn0gUxZ({Y8B2R z60GvO{Z*5wKZ_j&>Q+*#sH X2b}73( z&eQohoWi3Vr*I!+{2V@m3mh-Q$MLe=ev$OA;_LV($1mec{ALK^ai6N=c%iCP&31b| z>DyGNx(#(iWt$bpaH~7jenyGaHZVdZq9a($XDcIcJ>wuiYa8j=CS1>-E^MYZ8|lqv z`fwvH259j{zS?Y|rS;UhMcs*;sCA3F2V2!Jf?OHU!$@3%2XGii*jtKkU=(AF+G^E@ zBsEr&+hN9Pr9@snR@t*+)vfNvIPPVHrm0Qx%%WsSVH~RkSbm94R%ys;$Z0sL;h2Ww z8cvwc`}hQwMcH_J`RL*AC2oxO&G muqy+Vg&9GYvP;b z-(u9vVWAfJSJ31X-zp1izz(Lf13yEa3f#|q`q_M5v;0_jeR|y_mR-Q|GpL@%ReOCa z&g1HtH_i2FG_nw^^j$NFYekriZxtVtSpCx?@RKS6_v0bFhcUUEA^wEjeuBsN0#kmP z<0n{sWc+1(1+Q=%z!&(f!E6=Jmhae0R0GF9 I;kFE5wO~P5x5&mIJX@h+=^Q4z;bl((&?ntZfwJC{Nq74J?-H|(@TGM z(z|YYx061F=v5~@2&oMS({cx`gw;v((MniNAfg^af1xNu3q_%YGFDMosSepiVWOlc zoGuiF({@o I~Lggc@3Lb{V#C%nOv^6D_;=0mG zp#&1Bpp!gJ7qE7SZ8Lw@@wepyS|h&oL07BaHH83Cg2V4{aAMgMHV~FLL}-oOpTb4~ z6>@!>7$P-|O{_N8%Y99lal;fgSMbkqH=3g@_Gqg)x@ii*3Z_TfByKhdx7gF$%+Ypx zbgMaPw?{jOQS#_yLXdz*OcR*Mt?ls>zI5;{>>}*D`Yf_U4X#Oap2cCSS9K*)+X_-Q z5Y$|O8IRx}n(@152nyW%bSe4VfUWEa+_TySenJVWew)6J2e*n8Y421Is0Y!Y_OZvY zeVM<+iyK6-9%gGTulE(qye7ia4Fso~2v0W?G;Za^dn+MfKSAIiv-xghcu{9@6vyyR zLXVTYP9EoF@-bc}&oN(TNc}wC#Y*%bUT4+%4uQ&d`Ef^KLRI5YwFHmR^Y^Lcc)wbS z$Lalh)EYdj){$omc{<1wCQm c zGw$Q%|2V78J855|w@=ZBcf& x5M<(n#vO(R&6$rT4 zq~2jw9&A>7@bj$44uY6nCTwwXXDsMp@&5w(1w!vcZSCSq+}>FT;b9Gg9VdYwAm{Z~ z@m_u}p~r}?&^`VJs?D3+qPV_Kh1R`&ipRwd%^VYtb5WK20X8< tB1Nq4x# z*TXUMsduQwcRRa$k?0*-#}wRojzZQ;N&|sD@L@*P6SVme-Ud(dHQ=LI$Ndv{)@T_p z_XFfuMcDanf`>ZR{rBPh)bbd)Tx|V}ybAdg&slNqevZVs=4piJPdMB{SDGdfk(S={ zNz4EJ($cj%7~ADueUe^1O`!P M{;ZfUA+z2pW4B>`^p9iNc|;O9%gSK>!El!2wWsfq0oHI(TDs`V)n z0aI%iMZi=Tt!*V}jm|v-?}@uD7|pv8Fhj85yBzz3&8l^Zl!~+{v^WB7OHNlQl-RO< zQ~VyZWQh1v^n^t8*Vf7Cz=|}BJtT{|Vk=z_y`Jjn4;lQBdWqvj3AoGyLqP&T5r?WM z6(CN8poIv5pq6bNFml8DF0Wyw2YAT?OUA9?CHjMxJBEx|! ?zrV3$7&m8KN6@ z4TS6}2ojd)k0mYx7x%x;#7j1m2L$ru1%cR6x#IC;5}Al0s0I4s($RgEk2Ih)F2w;} zkItB WXj5)>6oHW@KZeu>NELc>(%S zRj;omC0nbb?Nefk=^%PpCe?YJT+(pLp$|rIYKS(%HcDGICKE1Um3xDDAZ3F+^pP6u zqRNh4X7W)Zv2H9^9cb{xrODaQ#AhWvg!wLShfxXFC#T;SZXw3)NPDGC=2L5nKf4h= zLW%czE*Iqi8*$EnxJM1Tv*y6YZj~W-*Y%Zq^?tAMIo6w)Z0r@MS$0c=uUNy-5_PSk zk>6=IUgndThLgS&D1QGje~EpO)mQs(M}0axPg7UXYL}%}P57SCQjA2#%gSe+I?dFO z?kY9bySiV4eBf5mt(0!>)b5Vs4Ig9r>DiO`zQTX^*M7;nG4~kR>Q`>3V`av0cGdkt z3Uhslmb7E>bB^I+qHNkO7^MS=ngtSdaP176;EaJYWxH@rY!{MlKp^0}-7sWtyq}sI z4nrcPqwD>|;gGX_9k@!-(wtK30p5H~!4LzmmYtH!Kq)UZlQ8hEuhJ>`xbByro;iD~ z%&jv#vpeap9Bu_iY7ab)9;&$(nDN{ATyHNg<$@I4{+>)$N0UsYh|};}!#@m1($1N; zVTYiV|FTdGpx@iyd&6V|Ui}o=lB@cSN;rQsul(A(#8RmjU#>I=^5*kg7Z{lhIdK!I zjU`7zWjD^8)vGg#xcZw;(UARzKRYj@Psn_a&u`Q|D0=dCT&FK;uiTF5eQ6Te1WS z&7G{u&!NS4NFJr}M`Nv`584I#nm9Hm(cKNMNbeUXDM;@X&wW2!iOiiHB1sESTa4l2 z_N)gyx?@N?5y6&uzXsJL!*+7jW9;MBNU6QbF-#>*qw10G=B%FTnf%UEE{uEAWiKrg ziFqpTlQYXshbza>a;w%CDfoC6dju8-(%ckYmkcN=%%JD)gt4ql{NoiYGp@SG&hl1? zO>XY?18vt+=y6dz8Rq-t6D2x5@0+iez@$L?$i9~k`@5P9cIS!77H&N-`qsQTP-b*% zhL&Sn_(M+OR~FI@K;oARsV~MK>$iNJS2{yiIs=77%{9RL$LjI-TCKJQ3X6lWOAu_a z1i@Amlz5<^SJw7e>hgg=G%*lJ>mPFwfB-4JxMxTEt$H*dq2n$#cEK@yFT4$RuFHz? zjz1|cnO9R8D-@wvj?35AWS;A9u G#vtqC&`i93DQ(AgX*bjvIgdqieIn;BC zrn` girjG*-;oAR?4FaQ&0&pBrNk z>YD?LUsRi_CnHMJ9DCa-di4+Qs(Iei*v`{d_KOadR!^9?a7pRLhdiNItV|MIYDqoj1Iy3YE~jl~TR z?6(710@1BG21pU1(w!3gWH-O6%qPa{s9+C$2HvCpF5alx3to>>DTEY)!##vIj|mF9 z<=uK)EKzm}C5~pg2({FScZgPAaW{CLG;uo8DG7G3V4J2oMP|FyXm&wKbCNXf_J)#i z3;3=us| CA11WXcoz5 `e1!@tks zukT`QsZHJ_XMMGQBFB1aR8U?E>$u)Zrz`d%>}Z^+sU)HHW82a3n|gza?@7NZ7a )pO#Z07+30M`BUv2kRE|HQBFjMRJ=gZ9*x=MWeGl?_#$$d~@@}I1zA>Bo zn9t6!pH$=GFJhU)o#z6kEI!NV%qV)JKP1tEUiGGK3k`ll)z5G$JK_B@GfToDlIgW= z;K+~zD~Rbm)>UI0JSx?XdOcmvs>?IsmFu?D@I1SN$FAx9>!K%Z;X;Hy>0Xz(eCt@h z&*2}f+Tp2_)V?6()NuNn@ U$>D!#1pVY zvNx6_+Kdo>EDr%auNjaNDBgSX6-qt|J+fhjhr~ncP$+dYMSWmif96y@7ADkUC!#Sw z@OCpY?M(1xf}c<+Z<%zCbaZ%n`XPj`b}-uShAs4L==8)s1 a-n*Ehb}A0)fw1YlFQ(?3d3?E;1K;>TXLv!!t(*5zbH-a2K-#@ zaG};fZ~4mxEUjWGhW|nPaOYatGuaJx(IBAtd2{|Bjs>UPa@M#K%x<_`u>VRh5I3j& zuFk@4z+9F)Yp|@=jyc?5(9aq&hdn3!+dt-BYR}vq{CSn(P7wk8^;^DJi#xcy2|o{? YJq5SsSR?oa*lc3JX9mc;<3bVmFQ8~Gxc~qF literal 0 HcmV?d00001 diff --git a/etl-data-source/el-data-source-server/target/maven-archiver/pom.properties b/etl-data-source/el-data-source-server/target/maven-archiver/pom.properties new file mode 100644 index 0000000..935ab4d --- /dev/null +++ b/etl-data-source/el-data-source-server/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Jun 21 15:04:44 CST 2024 +groupId=com.bwie +artifactId=el-data-source-server +version=1.0-SNAPSHOT diff --git a/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..8fc62ec --- /dev/null +++ b/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1 @@ +com\etl\data\source\server\ElDataSourceServerApplication.class diff --git a/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..050180e --- /dev/null +++ b/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1 @@ +D:\workspace\etl-cloud\etl-data-source\el-data-source-server\src\main\java\com\etl\data\source\server\ElDataSourceServerApplication.java diff --git a/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..f7ea04e --- /dev/null +++ b/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -0,0 +1 @@ +com\etl\data\source\server\ElDataSourceServerApplicationTests.class diff --git a/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..688572d --- /dev/null +++ b/etl-data-source/el-data-source-server/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1 @@ +D:\workspace\etl-cloud\etl-data-source\el-data-source-server\src\test\java\com\etl\data\source\server\ElDataSourceServerApplicationTests.java diff --git a/etl-data-source/el-data-source-server/target/test-classes/com/etl/data/source/server/ElDataSourceServerApplicationTests.class b/etl-data-source/el-data-source-server/target/test-classes/com/etl/data/source/server/ElDataSourceServerApplicationTests.class new file mode 100644 index 0000000000000000000000000000000000000000..1729aefba514e9749f066de71c6e2aacc12ad51b GIT binary patch literal 1800 zcmbtVTUQ%Z6#h;UG9gS0O _JCg(g_3~g==A1L%-e+IFy?64$_@3AUQlz5J+7JDvm&J-u0cOdbQ+)E3)Jf$>oEx z^a?U`^?M6UsSP(0n9Y}is^uupsz@cRD5!^J$BLZrrW0D1yo&_w7_(z&u2%EhvQ%#1 zuQ-v4rUcA#;49}7l@DZv22-wbs@mtKyeTbD`s