From 0e89117b7fb7759180b8f6963eac3362e0ca0310 Mon Sep 17 00:00:00 2001 From: Geert Bevin Date: Mon, 10 Apr 2023 08:19:17 -0400 Subject: [PATCH 01/74] Updated to RIFE2 1.5.19 --- .idea/libraries/bld.xml | 4 +- .vscode/settings.json | 2 +- lib/bld/bld-wrapper.jar | Bin 24362 -> 25100 bytes lib/bld/bld-wrapper.properties | 2 +- .../propertyfile/PropertyFileBuild.java | 50 ++++++++++-------- 5 files changed, 31 insertions(+), 27 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index e1e183f..7aa10eb 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,11 +2,11 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 8a2a643..ba59365 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,7 +7,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.rife2/dist/rife2-1.5.17.jar", + "${HOME}/.rife2/dist/rife2-1.5.19.jar", "lib/compile/*.jar", "lib/runtime/*.jar", "lib/test/*.jar" diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 3d29688f5b723449a32a4c9d4ace8e1a49025c08..fed125fe2b5e777971d1734f5abf6d4d7404bdac 100644 GIT binary patch delta 23421 zcmV(+K;6Hpz5$HH0S!<~0|XQR2nYxOCqjym4SoYBLW+@&Fn@e`d{ou>_w$@P$(>9t z5E23ew%l5I{w{ zxYe~)t5)suQ(LRGY8RKHyx-^CJ2Q8ZiO@e@{W$lYbDr~@bDsTq&W%rfx$|Knn(aBj zB*io_8te_!tbYjg)U1p8`}+gYnhyKvBM;@6lxvYmUZ#Sx{A>L+A%A#fP0Nb20^M<@ z+*!eJFn&CfQ8s<4Nj@e^0|g^B3xlD6mntxjf(06Ljt2bkK*vzNGEFYa6t8TuDVSOVFsRn{;ZXDrv-CS|%I`^;EC#3+2;kbh=4rSky&lLUJ{57#Mqjv1YM9j>D@+FH>C> z?O8se4rXAelSNio)J;9m_;|zyg))_mps~HeuEp}U%Az2h1)hVxv3N||l4U*$QJ+a+ ziz3tyG}=VPBau){(_smC1V|s~)stN6uz#VX8osc|Yt*6`fsbQb8x}5@(Y2_)wQF&G zd;5acX2_090-}MHf%S5>cpw_ame%OwoDt4S$o) zx9FQ1Yy@1II{hJkcc4BLl7nAp(M59b68qq7ElXPGEogHSpb$_Sh4PnLbQxU^+p#Vh zj0chgo}5KIhDxVNS29((xD{C69q1PYbTMv0G#ZI6NDi3vt)!U%o`#mxfR8rORU#(e zfsb;p-M%UsS?6EjsKfVQ4`YFN95~yFRi71$guQeP>@0-8%CWW8{VAmsLVVw%>x2*! z7q_-7UeMa!*|l^*YgraP1B1RsB@U%H^VYufgR3aqLZsZX|ibT8d!(pHP^rw5XPm6{}=FdSoTON$@?-a+#KR=6zN zewH`x*Q(i#qUM$1>%8*-UW`Cn~-(A>B~&o3F@S^`YeAGIvobv#dGeU z9Qk?3qK9cW4gwN2`GeuqMu7OhGPi+|>FIw_n7~Kr=O+EaqF>Ulm<}2Va7wekPk7l> z-wbhVYftJ3(;*`w*K_K;^f+wzk<~}|=t+9Yq+eU~G(7`#8)+J#`v;(pUn?8#>PK|` z?k+jga~3@>2l6%5H$asd>)YBSeEp3@zoi%9l0c_*xIF11A2>9W(-bfzSQ2_U-m;M0!ZsP4Dk9e{t7Irq{BNDsugC1pvr`=Lc2(Z?9Tc7;~XZjb&S zcI%3zUZa0m^lwR4a(Y7pu~pLZiAA64p6*a21_pkfGzyu%#7Cde9*e#ZZzHs88|d$k z24b;5j~LRuFr!YJ zS{s2TM=)%naX$8OzR8xwqj+>Ot8&0#OW@AJ2nfPYJex=R4YoN~LNyF?HxVIo2 zk8bdB3C>2Z@j(_J%!goA%xiy!Z`7kq2e{dOcCf!@S+HLZi7@h^07$MlS7#f69@ok~ zF6GJ49iEbo7l!Ojj#SE1EuO|@IHQD*5R9_rb0yS&jms^r;7au9xCdH~kp>;^zsA)T z*N7PTv=}+3DWy+*JcB+l`6zb`lU~uw$3UEFGNc}?J=Wr{2~mB*$mDbvz4H zk&Pj2o4X-y^J4n)xp{m%&oTJ~i|ctV)1fKf(G6z}-a(}N;U0gqXP({0yqqQN3%ih- zO==tl>;S>=b?|(l*#a1LoOWc$=}YtZL_W#n28$O-ygoWJTLQI$u?2no@eKmkXmJz6 zS>#3oeUY^R$;=zFSZ;qr2E5qfQzVcm5EJbWN5a8we@IM$$!*wsdQR&=I3DZ^q~k+w zrK<$PQi&I!rp%{W+$jd!2V6_-I7qseTYQ=>4@k9QSfVBnXIR`Nn<#Sf!udFnc25ol zzr`!K8;CL`_l01qv#U_S9Z#Q|1#Xpg)jmjtzK{DXwWb1cWd?(+97%3n|O%ILD2qC4U zB)IOj_#VC&fH00xKTht7;x%A{(+}vae80&LSiDU(R5%<2yIkduiRl;E?G_L64jd(n zj-gcphi-o+@5(4AHTnCeXfvG8JNY4t9~K0;&?Qh_LO)3Tqd0U%@+DOIg~h*Qi4>ve z(RfU9>k$fv%LMb|7C#}FC4yY)4-G)?oJ1v_hWH2QcG{HF+!-@} zWYK>&`MEqC{GS&8ODeWw=Qp&qw>HdO(hld{)-}JOHIGK~e=PolKZOznqLAg{l(krl zJtm`#Ldr!r$N%L$CVye^m*RqovH(IC`lS^Tf-ABV3tz^j`Qp&rs|=>{g??DCp3-=v zG#UU!0&4@MPGDZ@9HcZn(6<7ag<#9ERIY!NiEOJahELKM8Sz>wPZ*n@6p|&;ko4zU z%96U~xMcqjU#Lb~YK)+?>F&sU8uPolR;>yxRiqGbTHTTbgmjwFg(SXlKhg<_3)FZ^ zO;CuDa^jICtqrcSf*rgz)cMpTb%3c3wA4ZB;LI4g!I{=LY+565zpF}N64jyU@@ju_ zOzsLstI3v{qInw`h!-Lk6CSE*mMRkl=4e)-hyH~~4$-WtR8^*`wp5KeA{nnZ0TiNZ zArVDft+;eaH-p9q!biJEv#wII2&HM*wy8QYE}qi&7J2-F>a^4{wH%~s?_3PRjLlZQ zP^Vk!4Ao`lX}VS%9q876_Na_26eqQJ^+W@`vQ~|2Qk_@%p*aKnJ^pwgb<~(F(`~69 z6|ie_O@a8T2rShJ`?xn4c};&C0~p|wyqDD~#CUWY{GB>Wn7LX4jAibLj)#Np_o=X{ zB9`h`Ym%}u(s5wppm+_selD5#w6C~S%E(SsOvOz#V5zlgU9zT=W&iMD!SLG1YM?$Y zi^T2UVx~g8STTHw24J?mal1bXqNh^`wO*ZLsg3Gfr@ZAKhy`3}`H+87IkGZ!o~6Da zS(yQFuR`E%R#oXdL)7O&OI;*kVs2o~074gG$0e4!RI;8?>8xj7C@3SBTj~lK8IvBF zYa^PdL)K%&`knCW%J2cP}ShTipu|EngfgsRzKbFpzhGkGoz3O||Z&i1{ zS6u@QsM6K4TJ?QPU8jGpm*AmC66LSB_FHDE8!~u@#1H-|mJC(YX7xiP!0N`VH-JlJ z{706$S=|De4~AC-qQQ7Wi>t_*1!tX1`mv>MQ@2ZGFJY!cm{}$O@+a!2rnqHI&tTmf9+5;#hypS$C%7qmX*QQrqON zag1G#c8%q!?UowUH*tNddxBAoY^SAmsR!+(QLAx364XV0;a*`z=onZIWIZc9BP zdzgsy6gx;3!D1O(`MITjp?(P!M|!v-7!I^Y+*z=ekLAM{GW_Z{q#m=>`4JQLxazWXOYtcGk;LDc!o$!4$_-=nkc>3lfU%jecGu7`c^}2ck z4B8KLOb6g_$xhqY#Uxm8u42mF7E@=3D~4R&raDda2c|=^)5B5u2o(BF%JHf{GpVW` zF?w%V)TQ2LTDD);3;)9vgiG$h=)YL%uj*amsMBHnLfL$x_ml3 zr(s%#SJGSO?jQT!YWOT}B5xjr49hY`$#rvq+_W!jXk3uIX7!k?CW;XUvYB^df@MrJkQL{~oYeJz3^!o+)}#_( z%Q%0)G7dBjf*(ZO9NLgR-w5WmM{qNfy;Ft8I(^hcO$OY6eWQGUANS zfq$wm&V=`+_75A8Yd(?e>veUx|Ofxei}Cjm{y{KA=P@=eNv*47LSVhW+t@D7Y~> zv$8vDI0ugh4?XiDJpuW$5C*kbmy_DXlL*Hp%2?`;2BqzEdg7~sF}Y|OskkE;`}C#B z__A!Dl*u=3NN)!E0%5tiD#`+br8B;dbK-|_Jps6au=Yc)I|0)XS|(pAV*-D4@j(B| zsJ|!B&=c@Op&RvQbQ`q&4TJPhWx27bY5bqQV3Nc2YU4c$K~VSVCV#&}m*jFwW8ENU zoAZ?t@-=5U*?;=uq^=cE7hPV0Jv&RT!H0fpG4vK3nEIUSf5ev~eHZ}ayV|Zs{ z^dTD%9tk%NN*UuU7piq~+v$J0BAz(X9kUcp>t{ixO`%bt67Hv-svN zqh{_RXN6pZn(~>c3#7%(0L%HVx65XP)#EB!reQm@q7tYkZ2Nuf(dwPF^E1BxD0k~Hl zF_=BR&NTd3EaX%f@Y?Ita`p9XY#i;5eABG+0Rn zn0p+Sxz}A~JY*jgO`z``@}W)Y+B?ffIDj_>qQF}e9bTFQ3-_~zncCM#MM{wN$L{ae zz6zVZVX!TJW1yF6waDSMS;eGGQw8jlXdpVi#Bb0wWoX4)n(ZX__(}^VQexBkLRX9Lva4!?rxn24GCy+3{qKjR9$^8HD{i-_1 zRjm*gPOzs7*_nNHYpa57DDzzJ-tJWGWYWk57%2&%-DNZW*b#^@t0HS&p0bZjM`fY$ zzGuzZ7tv?!3qyZtcF|4>zL@Ukleg;`o0H4^DBOZqhU)d{Ihc}_%)5Hz_*uF~kkpg+ z%e(EDMk3@h!RIdjikRk8R9pU-e9kd6^Bi_=XfZOfE{Q0+G>21&CWQQbD|-A>GV4}T zka!)j@4v>#1b~A|Bg-g$PB{Xkoz)$3{`kq4UJ1hAk@|nGbFEyW%#B3iuy+1_+w#W7 zVf_& zCmU&^gg05h_i9~G#HBw z1Tf(X1Wv3IQ?IcXr(qtG>tUZqc?{Fzu{=4RTu6WUFnTs>VFP3Qy-Akm_qkh7|Nj?& z{U5ZK{OY-1B{T&d@4hc+oi32i=OgyyTgDs4>jiunIz~&!7|Zy*@j8?){k^gNU{Zgo z?J3Im=BY^vL^;lfrelV9Ez>h08K~`xx~8WjBS^^x3IVWz=}^LUi0ELNXq;fw6B~2U zQoMf=?Rl>D`Do8~wf~0p0$2Nenn)j{+w^ygFHEsc2Vaw3Yn*qJ}?OKMQ~5?+>Ld-<#k$N&db|KQD5g*XidJaKa=n zFmR)mGaic_e2r@8II6|JbEuBy(`U>3HTDXBb`1E>CoJS+a{5s~)$DYCFpZY1Vd{o1g`Q)R11#2ZG3iiFA?+ zX^C;B;m4DW6|@+Tg0z(k{0oTkipm5vl~*L_lr)~vdaRvtX$j@iQjM$BhIck7Z{1)O z>$e^-Ss4Mm%T_mGrQYO9Y=PW47zuv}eJcu=cpjpTPNT51ZIG7lAb7{^6lktW(8}v+ ze$^nYuJvrCH6@+|4OH%=bBGf3b?Lew*>$ngRpJ5kC0l4rt!Ec)>MZeWr*H4R56e%+ zrcb3S$k0bA2T_Q6=|EbEks##iESg2Dsf9v-ivY5ZmQk2`XpKJR@i_E!sx*IA;z%Bh z_>5IXP-|}>b@V{$=mGoaz}{e-g+9YrEd(dE7l=J3u}OI*b>LTCugK4!Q7FZY4?!WJ zQIk!h?;4=daPk~EB6&un#lbY2PDs(hmdA5x0(~7L-+(Nh4~hIHU@ijG1vHl~q(-_V zMTaR69h(kwU36$l(V;0thbDiA4ijkRP&%Bj4>~CM3tC53)}b#~{`}FV!_`^Ner@vX z*AF@SBKO$~Hy8c@a(!d12h(p!(Cs_u4#dL`(a#3yo(}ZgK1ka-(qzlgQ*&&xDVUQZ zp|V#%Y(fx`B>5K7So~fAjkppJ--4EXn=0rkzOsuE3^Wp&*;+c;dKC0Xk$hu{Iv;&rBR})D3;8uF1@Ua9v z(P1~9El#8Z-!p#PS5G<)hn&b9Ozt*4E29-cOPYGJmB?!=z& zqGI|PO{04Nc`uzr_d&$A(o(vgPNxT;>D!?H3EhL&8CFusA89!j;8bv279Fqc z@k<5O1vLr!awoG$`9FqQ_y=*ohg?>9d}^!X_4Zl6#nkd4>wQEY+v}-o&}U&}P}ok^y@Ivgz-q5T$KL?!E-<;oWJFhc=pfz;doePI zExmanx7i_5lDrrD$r%Dg)M(PC`5MP)${#k0f1H2$n>hP?x3J0|@i@xyJM@VeoGrpy z#79F?6FjpKvUD6gW=Ch`R-V0`=QUS6MkYFsth%=euLTuaUhBgCeXfH+tbxA75m7Yt{Bb+#ja`$3;HnmT59N?zB&uMfEo_l|U zEqQyvbDKRU%1@7zSzLw;Vk^vr9eFQ;atiWNn6U8)?#wY zJm(5L8?NBH)Y-I>j|d#RiygdE9lW^?-hKyfXHF4EN5pQruun~5mrw2f2kh|?vFB&Q zE+6FXgC=YDL6b4rXd-_{<=_99T;EN^JLfkv4yi#&c0PNz+MQg82@TM(vxCZ);12iEUkh6AzufCodQjLELiuk$& zZ*H!7c&5jgnNyro?74-?tBP}G)aHsOztMi&yqU&e&a{%;9sFZx;e|Q8W$#OZCBZ-4 z!9QbauG+!(F{1E3yd;<&;hhqT@8Aa+k;LvIek8#^zn&VU>oKQGR+d2G;hDL{OtaW5 z&b@^yN^*+L83+ZuvbcUYi&uY?c%8*fEdJt_y;qgn$9S@cf1TiG2Kjl(z3sl2TzxYn zT(S+`PIEY5`!8C~vp=oe($M6)I#fQ^8o=PY2G+M^fk!O|DDz2bDuB458BwYrp zeK#LP+xTdDh>xKs(SD9==|iq#gJ*FC&*m9?JlFCZnCMyD$n&^`7jS-7fr9AhZ=P1cahE2fJnc8FAq^g5lSbiH>_K?oCB$ zg_=AqVBBJw$fwYO+~!ihgB`MsrUK);y1*o)@e=Q$10}6d@>fmH%6DRA$*qqTkN7(* z_!@lX8{#wnfY7#x|Cr!EZzik6qhH@fQdns}68vs@KRQO>4)TBTsWc9u$-%q~!gLx{ z^XYnDN84+p%)-$QJLTv$B#u(8_}9{cNZLUyVxs`Y% z;zo6?LytTsZ&iQt$JS27^DL-`e1o=Z<&Tk@C-Zc~{*7Dt-_pswJNYxoQ9iHO4Lp-K|!kg9w2;YNScSP1#y$Q!HhJew||%ki|u zbLnLMI<@k7bUL3; zJ^W3I@&$A@UqqL{`(Dl$)0KQBeV;ecZT#(2Vo^v%I%Hz(!f?1%jeK7EgqK?!1{_CW zXLJtIj_-eK2AmALa-9?oprrGR>vgFiid1bg`f{{r9!usah?t5_)L|0>`i?JXvTZ;1 zQYGaktw~2lsbLdm7!@m7-BE`@LZkq-YpXh}a;G{R>{L_no>0?wu@8Prm4jdD~RN~1Sr;bgi<4(n-A~grIWvqW*QpsHB%|Zg2i?kA{WbST_d+ru$ zY}S&p5R!tIia~YKPSvP|scN@9)Z`v&vE|Gu5>@T4_1cJ#oJ!hRjTopEL2f&Bf(H;v zT19KreEqx8C9bD`+Al;u^B}T1dn9=>WctrttNUg3a(qH&8wQkQVWc zkbr;d;fa1qVZMXb@J*0{AJI8{GbG>^NWiV2?vLqOz70}vJN=Be&^>_N4%nT1XG$uL zpGf3pXbyiL%g7v!)Hu;erkcMDQnLbsz6{B^Ct0ZH z`(Pc!zW#7Xe{;LahW!iHv`M zQ(_b##iM#q1qCr)XUJ*wQ{ zITzne1$-||$OG_z+o+in2v@e#b-aVN;CUDC1oL-;`MYQrKZw~6(G&bIy}*xXVK@nN zJCJTLZd1$Ue^y9A<91^UR$NA>8$W+BehPNq1!HlCaVKcLi!6x1U4VPS$+?8_zj3_! zC60U0*o>d0u-)wl#Td#dpik&0rdr>KbSe+#eFb+z_Qhvh>G+KDN++QmUuo=6U)QN@ zkvc!2F4#;yZKf~2OFu5VD;2@%s|fxjj{hrI(8pcQr9364<;FdZoR;gvP`Q5+!*ZP% z+MD!{Ixts@m{(-pxR65?CfzE!)+V%?J~s3AL%CvT9I$tExzS zR~l7tq`ms3NL`)Tfg@bou}f`6l%akgVR1s;BoT$W)i!5a?n>E(8B&Jhr^(CDfYr}Z zF+WcS@e4GSe+%32B0R*)G@E~4p%W2IHSufI&c9DZm)K#72Fp@3SZ31zXKXd@Hy*%Q zPK1}(W+ZU_cFHxj8-uX#Nru|+m!{x%U|#|4%#~2cMV~8@^fCSbu^NqC-w1v9S*2Z- z=)n8EPO;u6?}O@oc_dUqhIR-QDt4%c09oRZ0oVJ(_PggHKC#m%@w9&psz(RauWEA! z)stfPnR$nL&O^Gkm{2e6P_HPe_3lz{f;oSz%@ZyasXyt}xEI_h!OZ{LPIGI0m|S9( zX5+lz{tHgYad?n@%wU?>bx=WhnPIC*DN~!ZP8lUROsCYV3 zCdW(4S&0cjL(`Tt93jVkrUa|R6v;xmq!U>Kg!F0|^NNh+$w?q%iuySp+0AEs1Rsm+ zd5>oD`!s)-{|=M$0d?_*h)6yH zwvXvt{wH0`|Dv1u-}C_ghaTlm=vn?0nbBvQ!=JO4_h8MvJOR&1cuwb!c%fo$L3(kj zGWZPT;gu?fBPy5IDwEGwUcLh1`gfF%uTz$m?OUh-Sx>RC)7V9$=v?}t@gOXzmoBEO zjfaiha4~7HTn`!W!5k9i;Wg3!iQ4PoCBvF|YPMf1TRr z)2V$vliKGFxr5Z}i=Nr5J`3vGE9@XsTc^t?Zx0=!W2=9iG|KUix_+g9J52Swsa`dW z=S=k`1ld&YIZ0gA9>kgAR=p!lLfWW3bAeOY&4zdA9fg?4D>6)gPyUeCNf4jMa#Ew5 zS*{hPsnSuGvPxT9r~^jR@Fa}f>uGF7m95~FJB&O?|K69<3Ho7Jhg1QXYAh9~LYkzC zXo?y~m8yT3W~d2tjGCCboS8%ujTdwVg>^MENx%I@YJp%yjqzLKMaTG;rl2lOL0y`H zddYDJJ~H+oSmCYZ$~ooBFm$`rgU%_hz^a1hC~^D=x}~vVtC3&$=Abcp&?syYy~UBn zGga&~CK2s04p#V?B6qfP)2XBOVCq2fs)MLlmAZdC*inv@da1(rotDyKq_(eQcrd$1 zJea+~SBd4XGMx?fI*HxX@`N$X*tN$G*;jJy0-tR1V}dSFN@sHVAa`ZOleZ)Zs+0$gwW54cJ*aQ!Y5 z7kPh;H&b7Atki-@G)Hh18P$U{s>nEEyD{T_;~1U$8OIbEU&9jj^T$O-Etq*fttm2Q z>6Z(NjN|powIZXeH!xnuo<~vK23a0Sq~ zBnvDg*|@t=p|)y^x2?9tR%mOhEyh~gBH9qZ18cR_9>3nTxAw5s9>3bddcyxR^WMIF zdnDlh-~L;D`)1zEcV<4{duHNur;a~PM2obTmjr1#xeRhs7E{50uD}(6+MYn)j@s4R zb_Kg)Oj#F%`a-eAOj_m44PNq4woYDya>!sRj)b-cYh&SXPqel<)Dv7E3-v^qa&`n` zve+7mg24L9Rz)=wR&DCHn8g9Kt&IeC1h1-H6Ntrvk-kyBY@X@(B+1t6l*cr7g!Va9 zKx1?&G^mJ*nevi<`!eaV@RCR*u!pI#(i+sU=K7f#>U1h)8aMI`bt+>jN_0!jU}+=gqSHWP_&AR3=xCnsZ5I(zM!Rkx<`` zdf9NALDOjlQ$Ao{vMn0!8Hfcjt)1Xc<;?Uh+2}IUpepizGi67E{eegT12Yw-H!Xya z)EG32YJqicV0W-F+}9O|Z4AYB;w>5r^u@sLm6ho|&!#5B+~jiRNLidK7o4HX2Fcoa z2AxOqnLHstZ%)3n(kUS=R(*XAEu`~xsxzow;$E2E1j4X05M33#Dkj@5GH5Yf2+aFX zk&2%!2}_cH6vdpH)Qm=hmQfQ_W_zdylmOSGX5~5L_1?0e3}pgFzc< z6Q~BdyCvi;8B}M3Y`9rA+>$~n-a@VA5`!+49LWlQMWqgSDVHuYC_vk=yxu^pYo~4|CqB@0`rXFEjX z2=pw8>=@_`_Qjg6>I(M9Lg79S?Z$$l;ekk3u)HhKHzQWQEm+<+(9<)^OFLcso$W>)q;apL7g!w6sN{vK7;Xb9G0{x5(!7_2^133fKSh5dkor3?}3WDPa)IwR z=mTnjy}P?Zk!UtZTyM|~bR*1SMIagtM%3zmmW85$Z9PHA4{z4#W~Q>lte3=FsfBy# zCTTc5belmRl#|cx4POzo4W;~YyFquzFCO_tPNFyuCcCNJeK#?mr-n=@*!)Mz_)Hc1FTiO1{*~k-r${ip6HYO$wdP?Js#J8YaNcMdFe6wvV1&Jh_wt9QWiZWb?a+P3(v}(WzaSc zJ%c%!76Jm7CRyLWSJOVEfA!LH^i7?*W`F$dR`fgTvb)s>kB+0r`d07+)s zl+s#DCJITXpBVH!{S+1?&?RM^>B12?VcQ=E!R-TmU2>FK8JfU$OYi@4`h`xvH0W3K z>m*;0G&q!QJM3(r3lUR!<){>YrD%ERDV=`9G|6GTTl)Hfk;WdFIa^P?^dkMvpx;Z6 z?FG-wqqkpLNWApL;P0Y;(t-r~%9V+< zOvx;%>i;t6HTpN!B74Vyo1a zM7kTzGUU#^eqD3tLfG!sw8mDWdb#A&$V!+2Z7ggGOu{y0>XJ!|S%V*!iwveJsm|`W z6ghe<9SHTHt(RSJSM1?`Y@LxGeTsA9i3i4AtH>#j&2&{aCOC*^qbRG*w5})CENO*sLI1&qXH}!Re zB{@grkqxiP<9NKz6AYfnlj12%AFy1%7V&3Z7^{Gq^aYj1fKPFMfwr0?zF{ThJXz-{ z22bS*#F3esVF++&eKgn@kYSpX?ah#F^qp?-46ekOP@g2XYb#NTI6{26%3wcNC&X8Y z#>`R0H#w5>@GME9HerS{I=eGQWDPvW;JJJ*tj-mIo`K-%?J410JWkG(j(Jsd!}H}# z7BJ1r7{{G)3LZXxUlOQG5U|icTLQ1}1qLtT#YkOaVOzx|i)LEyo8q`uaIcV z2H>A>1hBU(Eu@4* zGE$RmS|x!;JdB*DNP52X1b{Cw*vxp$h*amxk~Sum1!6%jcS;k|$z29_bI{E6)`fb_ z#BOEQl3Dw%MMh3u4)HFXcN^Tpy>TjPT5T%r&x*i$hI>`7WrdW>VT3l^FH^RaD>E=u zXPBmv#9a1&hWcwahx%1w#+TEV3n@?P|K)sz!B_HCm={T`H6 zzene*4Sug&c1gxo2+)yzw}m6Yrku7l)<G3)c=9e|CFw5aNSod+9|sIRDE)UfOkS%g zc?gl`6jGt={UF^_NJWxZv3!&$X2{63)HDa5Gx(6q3gy1r(m*sQHwQdC2$7YtC`)Pb z*ubBEH~0ZYW{`uZ1!lB6c$Kt7GJt52pTB7Em-x$aMg!ZTmbpa6pTR*XgYuBUN8}U? zOrhy2sBlz;Kn?ter1O=uJqU+6JZkW;LA8D zELlxzqMIo!Y_?uxpvlh~{2YH1I@cTMPb3i|bQmoVF5_<-{2fNP?tijc1=Lk zZR%XJWZk-^wX0yGN8DGGn)|vzIs69G+KjP8hE5~zQl{x274TaIzimpC0=tlW{Iq1v zX+w}y?JQ`$+9mf0VF*pQ;Ll?4Us0rFy;jb-?LTmWFuFR*9WRjuB!tei?msYpTpAYO zsmMl_CcI2j&m6X?2^omeL@v{m%*M#sAxGqk0$m_Mct#W^=~mim&m3+hHi$*BAxh*< zZWcs1&=Zxj8f%C$;e)+aJ67>fdg_^T^$ofh4+%|7ZABmoMT&XFIMTAkByo-|$_+7D zOkwgT+iIX132lQ4)UF9fLsvDBFvaU(iR~llbtj{&;n>IByt~bB<4N)z>c$cqTy?%`vT~^OBM6DuZ zR@;Q;7-Fs>WY#+f%`?P#=Fsa_G_7s7DJ?L>LRoKE^){(GL)6O;dDaJiix&KySY(LB z;zFrJ;pDR*`-CKU%SQUhF_P0u4bdnAH9ZtTGP6uu?drHXPjp z1Cew-s|@p(le=Z~$&J?eT{JyQq;~!n0)!EU z;$6@;X^iA0fKKy}H(QoF`vP)bAX}!$o!gZK@TxX4HAez}QYr%deGddK<8}(+qcW@Ua@5`Ov0T} zi}JXnc1hHkW{h-(oO0HOh)>a0OS4J)k~$}^FIS#rIxfWIm`v&HS8+^v>*(h$(iYoi zaCo;*+(0;GedpMd$b3uz=}#=u+``WkdrLky%3ZgAV054-X0I*79=>X1o&*%664u2N z;Fn!H+J3zB6+x>K;*gB2x684GUY4}I>)3<0Jy?9_H<4w;Ycj61Ftw4C@WNDoCo8=w zJ+StEiz>G)O&2=d+U*649ecYdDS=V_fmCr)M{~axGZ_P}uI~#WvzFDSCfoYi9gt_~ zPIn}K_gAH84D{_acQ%>amZ>ZoX~z&@g(WfD?ICg;HP8@8sk1vSvX*Tw$@o#8c!vk% zqCFVQqBAyq3RYa<{NmhRMfdpT9$vQvqSpM}A-R=@FhyNpDn)p>4Uy5hq+}o})3q%r z)-sbncW*Zn@G)tPr5jk+MT6o_pJr6pcpyjyZJ(wnY=0S!akdoh+F(avYUuTSWS}_-2gM#fhV~XKEaO z?R$nrXJ%vS2F!nes9efr|Id;18PU4ozdFRbSnH~H8O)z?We@y+3BdnDtM|muzLVq^ z@!d`T<((aZD?DT^XH5sYN^~kgk}WV9Ln5v>C^MxE44f zG%LRGT+r2H{cV7^T}9kxT$N|AyPONK8k$5`1p2xWtW>my!@CFiN56oc)KTt9 zWN4o0?*h_EGzNNl+7Xe~d$ef?x|rFc%|LjyZfCIEx+|>i1I*wV<=x?6v>Xvhxw-;8 z%cIR?s&q88V~xzM{fN0_>(QEjd9)fxv-4_D{9b6vm9Fww*q#_@*D}q?)XSbbnuCHF z(8h0tc{IrA%rkYfM*-8%^=k99^K@;#p)JrBCSAL>@N89r3&sSt$621!>nwfizb^o1 z|Ir+B^uD7BO@UT7!X^0)K%$(E@wtY@t%S@<6$Hu|Q5t zHM>Y^Pz^MwjcHoadO$K3zu<=a$RW9_na*=I4R4DD)WNZ8nSgTg*?=A=1gx?fT0bfDoeH^^3`wC&BkaB z^DK$$?_W9Lp$`~;n~py9?49N)OU=%=_ohF{S$5P>rd_r2|6}?ppsI)+iW$^BUPEU$ z#Kowla+GYyBqbfD5-Uug%o=ee!aa-u<{j4{tQEM5Hh#JDoxq8(*)wA)fX3{jkzpR? zN4t!QId>=Qc_0(BQsVP#VbrAfqZ^g3(yB9i{Fe?|eh-^Q3&(Rr9J1n_i38P1-zmul zawSS2Wlg(|BtIKO#PkUSrn0^&SX|?}$Y0#ziq<;}NEK9*LUXCd-WbgTyap5vmr;4Cq5vcs+B=R3MM3A>>B}Lk97^ zV$ZBJhKd=y8O<~>eaBT1r-s5UQO_0JCco*Q)g|099V3o0;L9cR7J@s!=&5r3odgpD zHOeg#^*o|CJtcth1yMcA!qW5{IW5%g0gmG6?tyA6zH4F5)LYMb)%iHu@|rT9jwsdy zz4p8mz)=5yueX1S!QN_}re=|;#$u7hLvLlMFCIpYHj--Z)mO&Tww*wL#Kn41%P2>#88Y!MjBIJ*Skk{&v-CCVKc+LvE6WPSI(=!{(w*H%bA zOKaa>Glcl1I?e_LTLE=Z&a)erJ_%%)`_erx849qqaGk2*Eg_*!V9Uc^EW@8eXT~Ix z6XAx^uxo0T8NS#J9y|Xg`B~Ds;nB&>t&H`I^(9SFcvbQ(s|(oE`jFHTF0nC0cLlT~ zlD=GQoc`R|f|ew=j_M|iKJM^yW03uG7t91V6Ib^Y>Yc$de5{7@wa0XjZ^-V%;8F2y zaH$GH86!3Aj`Zg`5=XjDAN>sA-p~i(c^1S@VdriaXHgWY&THp5<7%*8gAT%6&c>q4 zGR_SYf)nz8W4{?Ub_!|NHXaMu(EzS71{EUr|D-R2f&7aJYo#@$AAfHC-kb`v4avdU zv*r&^CLpr$9tN^2(eFBx5#BNsQp^Dj&sK)9>=r0$BX<)@#dX3 zs@GwcT7b?2>l^XAvBQ2H6!#E$l_BY`PJ#~pGnQDoui zjzMke;nyH}$dKNwYP6HwLw)8Y651PCOEAfpe^PRAX-gzAFTNQOJs^TR^UK2o%*emy z*{KMpJ5k)__jvA6Q^=Ad&mzxWq-MD3!4^&biQp5)#QcWkZJoiGDP%$lIg%@ig z&%a-IJ9U!7faKzFW58Kn4t(~T&r*G~%s>0QUTM+Zv>(S?aM|Sh3d9VtY;tT`HgDqi zVDgU*ycu4TEkB-e zMi#(q{eWwwfMunCYt>P#@*8t~t05_O#Q?WW+4dUiSy%=uv|2IwPT9J+V~li{xu~PZ z=DsH#N$*sD$uKrGKJkQj^?P{xP+xEok`F&O{yK$om&R6bzXzencZ}5j(W$WI&J(%$ zfh}=j#bAmKn7uo$HlQlxidDK{{mvQA8LE_gfAri|mrhOI4WG1eY!`?!yLF#V6r9;? z(Xb#tD!Sf%G`lF>Ker)l{f+#;26trvhzJ#Hmnq-$ggc$=3hD`jCnt}+5OZ%puk%AM=N zzEdnXr=}^KKW%Lg@u~muI(jp^vrVbWaO!-5Oq1|FN}3uWsGaxfE*hhb!|kI^bF$=X=V*6hHF)siWI0raESgN7N^p8dS6hS_&8iv1nWz1% z)nAz*H3*r9D|4&1qv;OCBPO=rAtBKp;5n55N=BgU;cr*7pWu`k+O8U7UT{e|KFjaA zfwHGEb>~xc3p~Wg=QOhg8)6G8x6+VW;>DytbECr;6?veki80_~)&-gB{!WUdtS=qT zdybBQ(FoP*eth`Nh(4*3nDFn0c@1M|_K=9lLs~ohT(-gBl6RI#Bgc%dL%^O*~X}8%AR` zpqg=hPID>oVma;hmHOt8?R*+N>*eYM5^6%luusax8$GfiTjSW7w|1GgoVO!+an9rj z8PW->;?Ctro3o_JDsPg`L+rUfpc|jLTD;tTy@;bfLhO3;5i6E(>@%OY*D%oPZdyIl zs49#*5-L(RZWl@%eUuL$OA1G)ma7wExkjGTta*uV` zC{?4nP%G$_3@s}>n>HG%)1>PqWkIvd(Pu1>R+3C>l3~yMvKW<-EpsPf=8(45l=PGS zkgNW(@S}WE=GxC62sEXLMp=Q*ACldSh9M311bdd~#>g`P@9wYC8H-ne3!v{fxmJAY z$>`bbmGoIy{|TL|K}C@dd8OSreo#@*{iWXZDT;^hrjtz=gSg;pHH0SrUd;8U5K9k$ zB~(4b-~mOf9U)?|z79sSh?m4Lv=SWo_Za ztHLxity4{b}b^#1Os#EE^wL4ox1)h6*)^X~48)t~waI+uP=d68D_Uja-a zz}3RrmnGkiqzADSd_Moif)DHhc=ec2U#)<6*CpboA#CVzl!$=2V0E|QFd8SDj&6qudb7CM!R1!|mDk=tH zNFN5K3KOI#MfwdVIou81q8XVpMou527pSV2Yb{Jq@pz^P;+sA_BRL=MhppkF7ovDzwB7GMmPpcVyM#04 zQRLefok!iUu$)KaojQdZRr^H9rCuw%4Eqqco%|*aVbv+bHS-zU5hn}n&{R=|tKB9( zHlE~fn&0#~972CAfqH0bsFbt%@cz^hkZ$oyHI~vZ&q@;DHuvW_VdxGL47+3SQT>4S z=zWVU_VE^6?0jiUFONIq9W$bK#TEfA?+vasBhm+bgj%#acF$yT@3=%`|KMzoJ1+#5 z+qbly6N0R0J0C?)>QBI?OLx+4hron#9g)ikqWS&hp-k39zn}hWcoj2?)eX69=!ww1 z`|vn|5VTCnR-(G$K9tq~iSoiDWx|f=$5_S3n=7aVjc?hd&c>unC4BQ>%r8DbKgW#_ z?Y-zD0WC`7M#%IARJP4A?vQGyo)iPG24Qug;5wA*sP2l|tO;)Lu~7XK#;W7c7x$&i zIrLx(2F=?5jMSzFnD0O36>T;tErwBrfEAS6UnX1IG8)Cpbmih1U{Qze*V`@256c9s zAl~1^JW5}AI;Oyycv%Kn#*##EB-w=S>Y%T(_g?;NCbD)BEu7Y__oc6v?#cjq>b+_q z4iot7kJwL|IE=e)L!mrr825?COvPBYT(eD00&#nORi|E-;Jhn7#UzJ?J>uyT+g7+91QBN_g=0shJpQ>vfY+d{Ll29X$Bo%qd zp;ky^cRTIWj#WuTs1j;HLWJ#D2pPHYNmc zDftW|JEG$f9G#B$Q>z{=-~$dQQow<>*R>V=RnB#J zkFcQu|L-%G`RH0S>CxK4=Oi#ZM(4!f@{jO6!;eu`M4I)QgiSr63ioh)(Fz~wWD*QN zVV%S;;gbFRH(oC`;G@g2MB_{co6DVbg=i}HDHlOgRZroTc7i;SDJ)UQ~5T3LS6P*8dM31)Rm;j%ao z4fRUKroL1;7M+vH4Z97wY?9WQ8wf{Jf8(ujmH@PG^>dxhkL3oJ*2gyB4VRQY5b)cE zO?0{{D^oLohL}RUxOHyLT0y5GP#Sm-m!+Wy>^30cM5|eZAxheSTqZq;2z-phx zK2L)Lf{0D?lC&AMor+6o(MY{C$64I8Q3b;jD);j?75ZTJiSq;lDp=sHcecj9WrZZa z{*7_;n-sPZu)3X=O!K_Rq{EJ5c6Rht4YzGoeKJ5$YZU!XKvQ($M1k6#tOFk^()Qty z1%YH+HiHVe#vEBcT_snW15ap#jPb4Z;c)4WO*i(D?mK~dRmq&h_Xo)&B?3*+I*r3Xc4N zR=Ys*537?ULvf|A1XYKxxvO2m_P($pU@_4X7%&nXgdnI92V|isTD#{|RX>W+DN7&1 zjlQ4)txbY5D?p8=tq&&i%eIRx*|ALtg|;wURt{ zllv~Emjn|Dc!ym{1vAx5?s|)&c1|h`T7Yni`RIXyV2ZsTB%I67;8xA6py$kMyry+`p5J@*gZ9kS=y8CxxvPtp07|H{e#?lMXSa)wYL#Cf>A7^ZA4&WZ#HBKo;-8W1F5%;08H!J;@5YBsVM1MD$25F~3 zxm|55u46C0l4o&X$}|3v`RjNH4ZtVMyf`n=UXg2DB{)j22pv5an#m}kLP@zj~Tqf#Xu)9|mKfJa#_#VhpX z144Jqp9VABkJE+S|GuNP*zZC{p8F1$8Ge7RnKS7u^<=2!N>FIQZgn-5*=eFR4{NFj+tYSBLraw;8Oo{GLc{|G?6j zG{~u?m5bkoZq87if0gX~_MkCdg-VNAcJZ(d75s!lSxdyxsZba+|Cc8wi;c%09{nFdbIBXKHL4tMHpOWblYPOMKGocQYwfw9f70!`xNL%Ik{$l{*J zz|zsD%O%cfqHomyLD$QoL5Z$*M zAN~|PA3`mo2srQ$@k`O*?m=>uG$%hkdyzh5)wPV_8zbjOlEw%|&{^px2oIY3C10~W#s(c$ z>$BxYZ1|BuZ+Tsk_u)^J^IDp?))*)HLi4G1j&cRGbj$Co!f=%5tiov2bXUqeCvJJm z^=#e_>Y+PYwA-X5mox1f8B}FBYIJ5%^ucw?w=$^8VD#Z`({nkA@+~8=uSI4h^^i7y zS0(onC_nW?P_6t%ya}OehO6GmALf71;a^vc6fL|Uki6snLx)q^OjLmZZA>N7sQYAx zMbZb}3fp~LF{hwX>Wl~A-+4ZspZdgmYIm5Xp8N`yeFqZ~Uj7UEe>IWI6BfXo%=&=J zzQ0Em-)tPLl66v1sR>6!M6XNgtCJICpv^8dZt4o!7Sdbaq!Q!rKqyg8Il2~={b7m` z?)Q=+JZ{FbbP2-yAa)>PLhy}XS_)x-r?P00+o_OhDUH9tAN9S?>yv_lvkNGT4m;(X zoPF(;h{lLUf$~_=S09Ag!s9Uv)|#Fw^$0!i1Iw%+%d(1PIfXR50mfiX{2$E(8@3IT zshhoZPuBOE`xv^Oj^Osa@cYQuRekS@;_2E`cU6(uyt@RRp&kRx=?YYU96|T?=fmuD zKX^Bq*s}YCU9@i1s#WSzt0+SN7470y z*Vet-Rc&ppRlB$p<@Y`Jy_tEFOoaaN(~tAsz4zR6?>+lD_r<5b-0=tz&Gt+%Nij`` z273dwD?&ZB>wlvD{{BF;w!?n<$U`|MtK-z@kDb%0Sn)Ar=qxG3Boe z#Fs=PSUSFeX=-_s3nU&5hF8{4AKvAoJQ^!oEMY3iHh*PV9x;u#XabdDiSB`DG!Tx@ z3r4$`MmM>)TW`{SOk;J|Ks*?#b@mbr#C$Z7asyrLjiw>p3m`Zyh>%yUkzh{1Oye%>i?bi5sxj-In z(Gl4p7h$!YNVmo})1ss3XeM*TKyPnAh^kJRNBD z!3+%bvd9XHx~T^mACK6eP^R(`G`3gRwM5=lSrnu*!E?|z7LRFLvfM`@>N6>9QH1(| zMw_U3Boc~gIxGc`0O>AR1U1STARb2cltYc`dCoX}v`o=&TG)&42^Z`~30lRROT>a5pvQuJT9Q0&4~W z;qE|&{Myr-?Md}TFv}Y)I!El|_&)#Yz}!f<+aK=;##iAD5*v=g6rD?7H|ac!&VScn zBjD21=@0q40}Y{&9Q;CyE|PD|MkCSr$pMqTnKTo?)3`V_;G<1+m59l=;G^7Y zx37vu*7;XB>hK-d!&o35$97^hXEeqlVJ}?`I}72jc5H1;e@ZEZ5Z|-tS|P-QC9R8> z%x`V)>{>RzwXJb+OPUUfHhSp>rn{5w1RsBHST?_+{Q(jo|echEe56)w-VpHrIl zY1QmTQTCFsXd4Y8)aVI>0`Wj&?|jG1jnBH?^yMb)0Cmz@eWpJOoeqQT;yJfdj{H1q z(Id1A2LXwi{lRc*BS5@=x!b_V^z?ryOyFbmQ7Wsj>pAsadIC25u$n`C^b|d9(l0G~hMtAGjWi9={R7a)qsxc8`VpPKyGzdW zyhSg_fqcykjZmeghPE~dUw>uMujwVYB+zMY$RCS|pLe6sonX`}^r}g(S@eIpIIuB8 z#-Tu%FQ+r>|rQZR++c*J*kKUv|h^1@y(Hrz9 zd3&4bu(U&SW2kS+E*nlT@vcRGroX@@`g?lx=G!AWk~qA)=_|KgKa411&HoCsKT>+2 zp_*Wv0#TFRM`-La`;FnS1CW0*=U(~%>46xxq%6sHKeXs0`WOS)uF%Ta?GgXOZe6j| z8}u)W{w>K$PH$)+wn}5G*2g~1H`%gy6pv13RSpMm@^3pPTJx1^a842mAGq2qPa1faHpEbhZ)bajop*GM)t8 z;mPTEVaVR(NM$_L;%QutGfMaf!6-jvj)eMeaD~N{T!kJT_dx40(x}7zH@L>)S`j0k z79;00W%P-UXV51mAMTD}(kpuTNQhHyhSY<#M_GKd5Y;D)OzwYv2G?0!&$B=k*%-pM zIUC|OFQ%U|Cy$Ti<4iu@;s&0>ba2Xdbi-MLcMvImxW^yunQON(FK21{f-a$efNPl@2TAuS7N4ri15&LRmZ%BD=@xg%CW@WBa2`&i-IIgCZ}AH5 z2I7#;7RBX)2U+twcm8N{Aj8_YV%t1kY4IxUZCnwQ!~lO@26b~*3h-_y(}^!i+FheQB%}0IWaG<0|ZhPwMu9MTax zF|c7sJt`T%Ecfzt@Fi8EdpB5oBO`9liS>u1x-fq&+flOQ;4=4Si+>>U<3U%Sblht3 zZK9b_#5n+7ozJ)P9VTzK_(!s}Q5i)dNCv!|Z2c~a@8)|DBL&2$>7l}m5K>A?g6m$3 zf5P_x5XLd;$H`q$yasG^`T@O#A29hri?_;#iiU$=m#h3SG5rF&&Ei4cj-!OpF|=yn z(9M73of+k%W`F-=ZHDuC2S04_BZ43ox&+Eg=m)8P42RB0zJy9Yv-syMks=g58jneC zJwoAdxnO?6;wJ^OM3Bq;p#kXK(}=OZD(my|GZKL4>=5*Q&Z0toen@8;jqR z-H&!sNXM+2{M%&h!L`*nVzfl7-lDNy{sW}ER!IIQi{F-=L&ADA!2!VUTKs4Ji`4qC zbQl|{-lux6vqZhD0T%zwDGtr3PTLa+slEJn&|v6DwPP7=h<|`?r%pcAoiX!A7M*|3 z&*$Ob|FrmDQn4+Z*VxwH+Bj!vJDhi0*SyBoJQ~gavG^1I6iO6`LY7NX)?x|vn2a`x zC>P-z|Ce{0{Ds9|iVG^v0tj8`msUs!uEd?`%x#i6-Z8B7%m{IFgkNLhHGZv`?7!IopGTq%DO*;ZQ&pQJG|;Cd;6C3VfQ z$^Id}P>r_K7(r>%-I4h;=J#~1S`}HUSRvrFx+Mz;=`^7WNqo~jq!SVssBxAWuMi{U z#3M^v8(n1uJ9urZ_o<0$KU3{*sRPu3nK5#sGp%XZv?kzwPnE$Ws)N(z)#QJe+!c&g zlPon^^ENUNFG4ORJXF&xRW1z7(X2ub{R@#CqFGg?s!dg6sakbtGG1{4C`8xDh2}ah zFgfACI;X{S>;PC%#=j>OA)rN4;0s!piu^QYWcasj`1V8l3{bl)V@y zJ7qRid&UJ)`u-u0UsTI1)uB$tk=r|$;DCkM$`ER~rA|?&+WD5Q`9=r2wZA+(<0`~S z(Oo^!K(DM->zY*WRi{G(2Ksya@j&XRFOHVSimQQSl_twc;FW^mwUO08eN2`RZr>I&6~gbz;Y&0E zv+ZBo{ZWuVofN3GYJ;WDQfE5_EB`<&;7YWI6u*&YsdFs#HOYUo41jwTqI0vlT4xUM zW$JuOT_Ay9ZeYy-f)QcNMV7i)@|aQSJZ5evC?nsn)TJ^qCOtC8MpP#y$2z`4pf*|R zo9ar)cre@@8t4fuTHCk8ABEjVSm(O&O6Nesa-wBk^)2kTx*MAM9q2-}u7B03t1Wen zlFcG2Me6$%7kPinO?6!c?~uyD1I3cThq_kXfRt9K9(X%?LIGU--J-KKshvAP6~5;JC*0LVMkW>fvhQg^DmGJ-V+0z6vh55k;9^;K7+ zko6u*{aA_%g;CoKxpkG*Pb_txBz}dOv+mr-MKE#9@aN1(Fzn2oJe-$VLS^-&ddgH! zTk4nU8ApFe);l%HcKm_|YlA&kq8 z^`iRK5cHX7#tC|-A|np0*&p_=lz~`z2KsqH|H^PA77upIkpf{X;yxw}MXIonwJMW= zEV-a;#kFX?Fz_Wyy)1km4Zhnko4yOlSFftqO!a@drQT4#0fY7d9n*d|T(Z+Pb}@1P z&gDvl+hXc`Z^e-7*i@&f-eNi^J3Sngk3gZ{q#UpMJ(H^L5u^7D8^x1#qH5Jq0G!2hs&TVHOcWyyWV7tXSj#9e#=$+roIG^D3=d%U)~2#q%a~vprN%_KKm^aB4e9d@p|*dX z-HR|nM5%Ux^HQI0>~9=k8V6d&K}K1|mkSvy!7cXr`_uK35wMNCQ(5N_%a|krm>ZAS zpB%9<#WJSq8n5lbMD$bMOL$vu8PoNbA&VN8HDoZih(;L`yhas7O@GX`D$*D58a2RP zqjO-mTH{cJ9L8bUD|p#1tB@lbhg*Nf5mI6pZGV!nv~7N?)EB(QOv#I|ZLe{(bFVg| z`jpcTsXh3#%JSo89qjnt>8I*ChEa#KGXo}B=5WSm!L`>^Xoypjb=w;Gj4b230{{)* zCxDV4o@m{ca>(M2mZrrG^SYWA&uwVeSHjNzg=8%a%}8y=WqxCl9vD5RXSOn-e;W?FqmOgtZHD75Gg@XqkMeWC_qE1N|$b{+>W%Prwg_Zqk3>#BI>_Hw@B4 zmF4=Sw&{QR97zt>tBv<4#6R7uoBjO`U6RW!i*WdG?ejk;DqU39Go z_Uuf#(;oWa#Lz2kVCr-3@)25&bjuIpyV@>E{^dTD&83{KINEzcSx1;rPb?LhA zoiNgcu~bj&+t{IdNZxt{^AK+|b-g`0vy$eniDvF1XNBBqn)1!43uLjI0haTT zZkNpntH)J=OwG!?P{XW(p)O87$jy-N4gE{C0rNK%wz}(}o%)RcC;X!*TPXc}KkgsM^ zci36Jr~$k&5Cz`i=mHF4y!o1=%aTBZ|sqylkTmdPWQp#VR2Xw`34g{Z?JU%hJ^$b_lT z*Z0P~h+SN%3yfqmI?x{vq-n}@Z}EQ0BSb zz1^v@$;6RsFH#LcyUS+$Q6msxR%O6^K~hiLC-1gT8i|n41fRS7D`J{YQEmBS z@@>Y@%yZbep~c9^x+J3P(i~198Xxlat?2Pj&Ma9?MwWHx-v6{B695h>jVzqSe}Uf#X|Hvsi4LHRbRkqqPT3TRtRCpkabYMfGzFfVA%Cwo^0nBQ zT#xA^_INGh4de9!z7!q#(qUP~YsTwPy7b4x`s+vi-L+rJsKnInQhLb22z#k{6hkp>-{|!g#h+Y$Ky$C*^e( zS6(mA&!AB-#f=X^A)!&TO`~rcpwV#h95y0(Mx@1o zG@Fi3(ZZI;b7(w$4I^KNES?96JRdL@0qO#pLl;sLU6P{1WQdMUhdC}fG^gm$oT5Xs zLx=G+b0{5--wPd-{5gNDBP;9Bmn(nEXw%`lSuHf&150@9;%VQtxk92 zSC4#7ne1qT;@j+K!zP6tSL~$iusl1PLDGk|(4$3;Q_v}Z=eq3%p{$@Y^o}hn#H~++c|Jh6vH1qIc z)#a3WN^=tQ-%^iePXoxgmOi8Pw2{um(`HW{%ofqz*z-M9LO-Ty^b<<-Afl5VIub6I(f)?AJND5dg^NQSr{1<_Eqg*U`?>mQvC!KiYlPTB-+N_ zT`XMSJg|Qt$4KxPuz^dUXhvjS_Eyr*Gc#PGy3tOU(oyx|vGryw00dmsjd7%@YQDca?e`r^!%qK5R4XUzf9) z#@G3zZ`p zD_H3@to0UFdmTFd7O=m9)n3DTZ(+sPA!NUUaQ$9$=u{}+Y2d~hBMP}ViHa&{_v7g#W1X>HtJ+|SlY=Qv4jLP@rjMq(jI)fh!SP9SwNYYhB##!vr^wn( zWhVRfAS&`|!FxkgoP8$GFuB0wQj-x~?WO~G5A4OrAhz`8iQHy~NJ;V@>?dak6j75& zo91a8qbYybDE@KgZ{qCp-NGt=k>e=GtLT3dGdNp>wV029q$YS~6J+Tac+8H@sx3Tw z8_#X2e4I>l9#(x{GhPcSwY=oDRKbk=w`!NB;6b4KXRw4bpuS1NF;P?gZH&G{#q=&< z{tV;sE+F4d=~yv1cn(50!BGniZq%HaZF5U=VFr1=q-jDd<7+t59snpgAkJlzHJ^VB zyPYIrPKIut07GS)-I#OSGb*?90;cO}Cfk95v7Jv;^eA;8LQU}E=FK#!Whb|GR&V3> zT{?cPO7K!Ae62`uM}n8*aT)+~Thu)jRiMZj_cY6tDw%>+@^QLJSbrWh!u4-LXw*W> zxCaJvseXDig^r~$`28Cs<9*Ed0CRsn!mNKFK==@W`Nx>`Z(#ToIQ|PPpHVY?4h*|t za=(C+`7-74CL^#780UhX`S5OEmjD5C4C6fg){OJpql?LO`a1NC^R?AGBc&T>Afmkh z5!8jL7*~2OLXU9baLV0-?b*~m!Eu0_@;;~0i}BnoY{}aLp4;p>L4JCi%;JAyWDxhk zT-cHKA}FUIFM|mim*CzU9l92Cu&vWm%&T<-%Y6(VlQhq{0?&pk_%3rct>hyD2k#OG z?^FkGu7kJV!P}Wr%+V3Cn=b5Ali1}eyZ-@ud_?T|*|5u3xqG3>+P%!; zP%K2+ydJ9@P|Rl)^Tq^!t;24eTbX`8FToeUeq^S{n3;c5l2hWjl`5)B za%R-!iYLFxe%x|BjlrC0rMcVrhtR?cb9nQfmjz3L@7&HmW@@S4&i6B-@IJgGm>%UF z5{qx=hZvE>u3~;P!9Tr@nxyM-r%P6rK;n^^xyDSh#4O3Zl`2bfO3WDu1-!DjemIL) zmU^AVO)UP><~>(c*vEf(s+fP7;AaQ<1)GI0T*l;lEN6H(KlXgj5D~FYRZ11M+{73*7q|m*UL}lXBalV$Q2 z$+m3ot^<7DV)70RLR7v7qVI8!5sY+3cqo5ARo<71(uy>B7K3q1Xab)^`*WL1{SI`< zHkt~ID|LZMNaH2mP5Vn)qvTJNoR#m!%92|jAs+EnEcga|=3C-3e}~Yvn17$(KVDB( zsYk!QgQT#^ekAz4^nP@Vz#Zh{lW8nMlLL7CL1SS6zh!*eVQ4<_7l<1q2zm<}&&AR0jn8&SmRC{Cf0ca?rM}-qk-XH(dCtm8 z{@N-Fs`s;@3Vbyx`BT1BHOej=uGdFwPaMvOemkgjFKvW29iQSK&+95E2${Wsi*|gHKb%2xd^D<>)fUawkjBC zRal)+B?(oUPzP1trw=!p3L)fEkT+K2c@|wlm*IbDi_7UW9>*cm+zX~%ap15SipxmpSbP|~@^ zHM)P)5Jjr?J@n;h(L9RGlMpc#pP<7g1oRzW&?MV_?4c^kOttNYxHC1?*H)@t#oAcd`$DOI3htJabT03YXsOtV9l_IiwB~w^ZuM8>@~= zsAEpXq+)d(X3JQEq>{PLn}q~47ilF@$=rWk8uy&dw4g;x$^u9VUMhE}g<6uTciH`m zQvFS~ggND*>RokS8wJu*NjPf|{j?&yZKqC9AL2->XpNeupO@mW^1KtjYhZNlOqq@q zGy$@3HCcQOA74w8`8x3bdibInsDZyvi})t+{yO-eJ1NX}(Hg!P{Qm)+&9{Gm z|F^;)-3A%>A$^B$r+RU5jPQcy|*a!LUlsp_sCC0VJb$YLL#`VSxP^|r^*|<@s zjgx7f@qOba&FAruk(<$X86D&V-C#^gUAO9zlBnxem8XllA`hn!^1fDw?|Dw%X8gdU zH&dCTIeaW5XEajdL<>zd4??r43xj{Y44L_HvP94K!!C$r{S}K2-cI>=(!qC-=YDAy ztLB7S+*Da$K1{E48bx^s1e_9`04W|dgQ`~$<8_9-Ce(kK@G7Mq zAcrmKhY6e5B>5Ih&w5F@?1sEaA*&GBcc``c`9x;6#rIMH-v{IIAbj6eYT*O|m2Gq_ zZwK?Y(LKC_w(&07!8>UuKZMy2)06xNy~vMhVOR*d?N2utx2lun|2arO<2K`mSaCU> zX54Pv0e0U5GqKtD5oo@XEQo)=oq&7N$+m>?zjFNfg^pv;*o?bU*zR_OVhrUJ&?odG zQ>|@6B9#ZjzJj|U`{FIGaJ)rDm6OVjt1`B$jXH@fR_7+vdDoLq8|Vw~(T_{+NyTpZ z5`uq@jD~rxiLSRIZe;LZ^iGCOxn|xmv`$z_5SG_%U7XWPCq? zxLusu@0S>rV!(2_WZ9-JYe9ezO{mK|s;URo71hP+Drr>1h4$)~V)gCJ4jkdT9Xr*v zh%eOj5)dcU_a&B4x7dd4_IpxxVTKgo_!;u@vtadeRKhRN0sJCOmJ{F~wiplK{Oy!$JZNl%Wlu8H zhQBBUpTNFWXg98eLN5ATnxv2M7Q|{ac6}rC;qEHC9?^mKdz~`9Pu>UB{qjht2W4oR zP@!_W+6l-~j|{lpAF|&)5Az9~MyaQ5Q0*F2KdZ|bR8NS-XXbzH>RAuzs$xR@db@f> zQJr_EdK1j~ZC##lsaX9^ug1OLPAO*oVH?e<^I>wSS(;bsW26!4ZIkNqOY^s@zaSM+ zA6!q%OY;)yBS$Ek?S}dnQ=L_6If=~_d6UdW{kv`y{6py|Br${PlO5`F?YTDZdDS!1 zDm5P`U#YoW?Ph-}vF?#(h11+jWm4jNoW`X(GAf;pjLG4WQdVk0%+R#u3K4qbPN9*9_K&w z7=J>~@u$d$K0`+IIp^|jtht9v@SK3>H2#R^DduLR70Z;trz#HzR1Wv4T#hS~&sAQ& z6k+<6%E#9zOH1~xRDf)!*w|(a(kMCy24}mm1JZdhecRY+JOuZ03#~IAhGhGsj&D3- z>_Yh5PcMHNj~b6j0LeF|@~In>T7frPD+>8?^@UYo^7<6IcU#qyx0}c;UHi?a9;HBgWO<=aZ>@K9$<%)2V$XY^0XMJcFXIqtwm#%_cvyrn`pr~Ea{+;+9Y zIi)1$g6D8?`w6s~VR%*c{I!fe9s-%s@K zXZrWQ#usFGJf2)np7ZAOt=3O9KQH00;;O0CZu7vkWbZ0t0kmhLf5vE`NMf)fw;i zotep~1PECOAVy6T10jJx680sa;*bnvAeo7o2?DjQxYpKItrl9>O4BMT zq74CDuvV>0TkT@2ZLM~(t+rOXSWzVJf6l#g=gyLV@3rrz-h1ZUvwY|O?dP2M!tp~- z5YgF=at{e|Xynw%MQKbqn}2;A#eer@(juWb-QB+J zOvT0Kq_#CzPfby$(FmqdgHxzc0n_l0y7DuiJ--nR1hx=0Zryb(%&Mz`E17#a|l=w)!Hg1Ce%= z!VzCE0(LJfPVRX!H7RJ5%b6i%ai&~wiY}`pYiH?n8dWm61AyKjenhcdLK@8a>I^!A z&eW(%r)r6NZgLX{L%T2B?B5oVZO_(eHk|{^gQ!Tv&ys{Waesa>U&L2x**!>?qgK~^{Gw3wFQH=0T$ z8&a&pLp8Kar{%N)a?l#;gdq4=ga*M~jk-#w)wBkq`r6tg>lU7(YXHeh+3zDR4kgzr>)_u6(}_j3P*J^o;;zj|sCR82-F ztg4Ot8g0~RlN>+ELNrAOH>U|}6kwVVo2Q|p!@tSbF{gV|Pp3Z^soU1-?}`LMK{su| zg2JJm?pA+ct1mbuQnx-9~7iK#~_<5s50sd$u1ow{j;l+5iq?V!&=Oj<)-FfpejnB@3h zhME7oPM6T7OrAD>hd<&sEY+~$#HP7$AU$${SLk%5T43jvwm^3{9Yb8D)75kh%wmx* z9QJps)ql+kgnb)2{E#1BtI>5#1u?4UL|dtad+1teINfxEPG6M7XLg3R`Yl5#zuc(P zm*p3?{2~d;C5NQOO*iXwi=;l=px)}`rdwgg1HrDI2r%;dIulssrmr!L4)sI^Yv7^X z^mUECq0{YjN7Uj2j)vHffEh2W&{e!{uGE~n=zngF?$PO+bT4d5w8vuGBxrk4H>?@N z5`7vPrmoWHTlUcx+vM=uOhpQz!nPjC=E6ujBod63<+M}X-w~DDjC{F zuW0WMT_pKZEoXip$`zB%c1k_8mmZRXUMgXJSjyFYrfD&`umKU1EBgpazV_0iI(=7$ z9DlCXj!+mHdmy^pc!E6CM+bE}M28^&ush3py1Kgk5ES5BP&~*Ia>+?O8a)x!e{&r+ z(meDyJtQBG=3*^9xs*mvOWpcD(-|k_&QfTbo1O(thJ}E@B}vu~@YS#n$zMJ60==lw zOVV!tFp5MFbiwqC#T%2l>b&W$#5NEaxDXlPNB9}D!g-*Yu*I+?>ty0#R&KZ;w zmi@5}xUnbLDrc#Xp$Tla^!~r1Uu*Omo!+3|#`%J{$)R)`VP}1s4|v`Lq4jO@%j!Sr^k@1D%oeI^eLZ2Q z{m8gT!x{u^dpF89talCvaon6vGq7aP0--V?G@qYyim5DS>$uz0z|JLb4`VZD3dq;t*Os)4*8;7JA zA?Q*1SffvLI!2!|jklzx6;3|vkAN}0V4JVIt=9MrxpS>tQNR8S*zU%p#%7~xx#R(4 zCCq>}5;6oPW}8xVNu|Z?fFGBO^d~B*#;&Lo*?P?F33Q;Xhn;X&?B;Zhk$)fE&Kc3f z1M@CZ!zqtY3y;7~&eS=Jv!$?ib@_vB(kHL0ZD>d)$Q-^}b{dA&(G)iiXFC0}GSpZR zSosd;%VD-^JQ9v1O5sXKcvn}bJK}Gv3$}*jaJI-JU3%4bc$Chgc?=SkNXTNW6uPPF z=0ZexoX)3kVN666{IjC)1Aq3F%NkEI58w$rQR5<=C-LNHzGRL7SVMpeIvMmU^@LDF zwa07{`-YK{+5XL>JIz>)Ep2x=3MAAe-pYMsyGvylTx zu1U6H`QAYYH~4&xB(x^R+W0W?#1u+@n?XHpo(G1QVw&hJxgKn7^M@mWpigor$zSf} z1&FA)!3?uxOu>tEZd5VF#*UtFdoJmS0(fyW?=#6%Vh?Y*5MCs zinODiSIU7`NfsxQFMne**=CU(;88cPg`oJjYEp@QS~u)vs8jWt zmrI!(lrj*KN!r4NDVU(~g)nk4T6P4wD%J+NR4T?@^iVEkL4V`9i+gn5$`^qyu&6s= zh=$$i)&-?sR2-_#;O)Faewko}Ww%RozEtMj88YuS zKWKb;RA22h)`5`ilC&$OX6|IFu)Az~qv}BvlrN+Cxs**k>0r{eI$y`vBet}5LZoki z6RDNLaf8lZFbIG{C|UV7%FHj;AeGyjuF{AVK*Z(eoQ(0l5T%npcM+Qrhh@FdHf>NnJFiZwH^(8)7n*uvf`{()rK)m-ww$ zW2Yp?79J?6Ooz_AtMgy^Z%o4$&RI2QeSJe?-TEbSR;;L7)(pEk=MzOrSm#gp z7#vdsjwp<5s?$stH~bei|A*F2xmm@>B|HO6EB*`9rC8u-!AP)#V48U1kVg_EoCuMG zD;9$#*d}|24510PCemTmgeOkbl2)6r@qZWHQBAqGD|B6C%1zib$hEH{EUC)YMUEH- z!>cx%q7nMU6Q|j$}x>(c1_MJ( z)kTT4AkZ*lBm6Bfo_DwtbT-6i~X1AvUTtWyLoH#mfVmkZSaF`;!x!#9_`##$$H1JdX;tc7OD=Nnh;t zZ;KW;{?|?RAk)_jK9O2`;_npTWhd6n zMW=2*EJJYpR$oUCnz7#kJN|H{S{~-xcZqDRY$+%P48@)PjIf%;?SGSMVoS{B4|cX< zdT3ZoB?`vC>%->AqvG1djm|V>uyeqK^BP2~YHYPMYiMs==lJzy%JV4OrG^ZHDeJpb za8TGd^xnBN$JRLt%GRj~22NPtDJR%!hV;i4X>7x$3c@6xYvn$QKitz1vDTJiA67Lo zc5`zQ2iC+D;Fnc9)PJ6;bQgZJ((*>pojS-zJk*|6+g4@4V0)c1JWts2lfs*u=*?uM zM}>gqcHi*gb#s&DNi(b3dg zQK#M6$jvax^`77kV;c(Ty=ndm2HW02)L;t3Mr(=;TMdNY_J3=ATT~iNtDB$lqdbrd z^~goLF_}5e$Yc`CsKNflz88k>(VZ9+H~7LPeXfAqcY&E#_e(|~#M*$sXGL7_9F`&Z zx&%X*%3HfO8cEi$q{dRkQX0}If29!}pV%#_jVA7Anx8~VQoED1+TLXVHqfb#1mQL2 z1cRZ7&os*;?SEZ-8~q44p!71PE7;@@N?2ou_;L!RHt9CDrOUM5gs-T05cJ|z-qmF^ zKO?buO8Qd{Art?FsE%EC(?HXD--d8(|KbEuq@5+x29J_brM}XAMH6nRi(`ju&s00q z_Y{jx&Bnwe`@b-#T*?Li&vEhz(YpG7I>l#LYx8Fe)qhX8vittOgxCM2)w`odlX3Ek z(Cym)@ov#)ps}FC*SVq1SCpXNMW-g~^`OadEV&$Sjh5P!6%BUZaV>()@JaNa5qB1E zBP)K#A*Bs-8bMiJst)i`=G1WkUD0%=(@(fFFB!GHYB%nI5NTp6ZTq@({JYj*jIBpQ_#B z4MYgc>=th#7Ff~lFEsBRs*}bkJf*NLx9$X;&)8NwuY8tOx^kq2oPlJ zp_;kH+mLnpHG}9KvxMs*g^`d&7{>lH(~MNTEZWf=BN)+F^oEIByn_VvMBS`e!1TX* z#NWhwn)tge-WMOlUEwtGY*c~^#`rcyS)S2p|Mk-UUI0%1qcP>seTNd79P!UVF5IpH zT7UnR+rJ;`;$`tlj`%2cw4JD&Zt*eGsj2u7FDhV0Tm=|-jA>jn%~5RvhA>$<5ZWAP z8lCFmN>6tOx=eFBh-pl!1}5jxLcki@Tc|vw&{t?2SxUlGGpE#`a&|k?m?p)o2SY}p zmt_#l$0XO`W;)H@G_)b&QwLkBZJfx%V}BK@{KV|)LF`r=>gi~chpuXhMCAf|3j>jG zp}b}d*M~kj`pmQ4aFDHx+rdU-13q7D9Q4Uznlq)XRh`xgGN=9r2loRl%q9Hmf{ zp_?+L8I5TMxk(U_gS_(S5GAkNN+-%Gkaw%`dpf?mD2-Um#;;SMK#aGms6ciavXl&9A^dEJMbP+;(VMkTO6g!jd$7dRHIH&qZS%Hj8Ro-0hY?D)PRyOXIiKz zUS!U+0~E`Cg(am9OmUF11s$RMGW(C{oDSQZrM5W>tvL(D0@0|x7m5aygnwv~^DF%1 zw`S{GvqjHhU7U4H989;y7k4XAT+8B8U~%{2MHcr3inVyL!a{M^#jU_DUYz2ku((T+ z7K*#OmfpVKo7{Z&&Yv^SoSbAPCv%eDGfn3xsrmk?^ggPN#uZHl3)|kN7j1p0qc(*< z7AaKi`QuN$zZyT>j82th|D}0&gPCGx3XthccYb&aA-3OTyuFq56*cjA{nnAtfD-9yr{`bxM@nv3;12OX?xo6bpYP2AD__V@5ZDq_1Il8r;?2F z=%ARDnyF{^Qao@UN3qUG{wJl%UD0ZLwx-&gIj9G3^+uhSw003e%#H;AMQBnx+=j{y zf~2mag>#S2^BTP7==uydMXJ3Dd*n(#=;Iu;#B^w}tm>cln!Lx=Bz7JQr|Pey=jFiD zp^_g;V@jjO&r&MKaCV=>9w&G16E7rzy@5n{@`s)sNq&%ESb6uUY7`}#`Omm(qw?Kt z22_Z;Jo@T3gZ~yVIihi=SxgNsC`K_8S5DPQ{>=dwqzKgbTnxhJ6hPMUdh`W`b}$sH zQf@$|HQu%W21kpIC3Ge%nzcnP!L<)rzj(gq%hNI0x)d)c^Ah8n zIiEQys zX!M>fh1oTwDw}qHWpt9)m!;^b@=>_%Nvgx1n^CyXnO7_*hF$tKwuLoM!*6#4+GzhA zDlT7nHKi0T)-nlN5d_voP@5>Lcgwm2OD1tD@eC0l$Vz5lMPRj%byp@MH~i~is9&z+ zGsk@FN{?KRYJne6sz%DWL*c=M#z3KG8>79mzf#)o0N#>A@Tr2lbGB~mBSc5SNsbMKfBMWxa&S~I9N(<}T%EHY}+4H_L~j+QhR z?Iu(q0X%VsSK8@988SM1Uixk4=6B-(4q(47XM1q=awfvKUqAIbT=o0A8U(&K!tkQ) zVGpl!lV8p9$KFTcKsNdsf9i-Gk>L5G?gOn=Z;I14ie@LG&7Ge~c@Je6&^Z>x0Fq~t z!3IQYBhr#LdJOvvy}2s8g+Lj@8Lv7V2PcO;@+0=vDW5KE*`R3_ujl*PRArC|x>_P< zKphe)07v^12LYjG2jniPK@;^L`VT5lMaQHfQOspjM`213A%4o^A2Za@6wz~Xz2NTf z{^>X6pBl>#qZbp@-gJ3F52f_Y(@%1Zx9W?J>sQ0S>YdvA&fM=IEIdYT{uapK>nvXf zE^CiydaOom`OSpxU8#7vuEflJsPyMA8>M~uWdq7px=T_FJDlfV63)rf z939LN0Iwl<79f4f1|x^5IhCC!U=z^sMZhC{@gdEgx|=!(JiNdx1y3qdIIO4 z?V{$J`!ZC}n|qnrt~$!gaZqgD(6=DrD4Kh>Al)`ownyh%lTn|;GT7Q_hqWuAEge_h zKSewFbpUD0`jMc>Fl31DbjzEw$TDQ>>o=z$yqODD?gvwcKPs2EQut>KtEejmzN0-q zVjZd$xSM7D*k&A{Qz$#zvN`xu93Ry_WyB=y>J~NWo3XcP+D4#dRcWv3DP|_>{xXZd zwnc6*G9xbIc4TV&$k2(;oItGwi`1?KkptwzxCol%aR2ogjH@ zoeK10ez(zJB#IonLe*rXQXWeCEEeOwLkNZrP6zRnMDXt4_n#k8^`C_6lj4B@ha2t2 zM*vB$3?u!YdPO_jcv2}FE-QyZGrS~E9@+6G;}$iKH*W}D=Rb}-E~}MZKclr-0e}V^ z!Jp*6JE=qi?OSm&%|W8}IeLTR*8UwBs=cY2c5qC46^+q^66EOX>A#oUo&lwy_|^lz zT1M$%W7i!Tw_k{jM+^YTGR)OQ^}6INCEET^{#b$eO9!cuSU(~DTMh~_S5E_{EN6EuG*wCAC=2ovwAJzmxV;YENBzWN3w1r=VGprWd$Dc!1Ukn6Xl=Y`tzX0ipJ@4)oAXrLIV(B=;x*lcL%D~`{gR7Pgd&Sb?^gr2O|77hT zj&;%xqy9->?1FApb$A<%+}c(=$=($ij;`NS>@`+g^AV!Ae=~xj<%~L6HAc^MT+&gm zd+Ri3NCWOfgK`~g(4t+h<}=esn%AG99WAWgct;~Qd%%zFgViG^G?GHz?=>n7`UDB4jOK~e@(q|$Ei zh?LJRbkZ4?PG*|WXk>=ei??)#sw;kOVZC(Czi^Z4d=j* zMz~IPsN8raQZTQ6cONVnTKs@cG^{(#Ca#^Ue2f&(SYz7#Jd_HG8qzOo^E&#zzZ_NO zD)wtJ3VU9G?2S&f|NKVluV-VN!>EfCXie%IiF{}$ypg^ZC?mc=mN#P%tg58`XyH0IK>ndZ*PsvNmtRUwTT zBCsn@uqTz#Ys6tW_jWo5=E8b#KjmXYzXVE;A}5xrptaqEer*QosZ?1d*tH$lLgKc9 z-r|b6^aXHSgL-UQP6j>kc>KKe(<<<*y^_&}l{K&f_0)jfmntN%8UANPGdits?uCX7 z;f)I;OAngETGGNo$mq+}cmSO)g&|L=64;FROF|!3j602CW!*uf0>RmyL=XHC?eXNiMl3lP6lYyvivv#LH z2c6u@S}sALG1OW_gmn}Ho0#om40EA=#Y>t*7AvBCEwC$EC5{IqkpaU1D;O+OD<0)m z#L)8r@CnIe<+X5*h7ncBA{+2jfoD4;tBxxA?j9*Y*wR)M9d=!duD*l%w61F zHn@MS7Tv-NOa5;`yCCR%AMlgiOSB8?9EyB1=3&idXo(YNiE_mUSd7?1?Jp%a(|~oG z@zT}DuPWh>_*MH2Nku!1N;0yCclbQ(6y;e3rG1a6cegt zP2^|l6m75}pjJ_ogDT#DAj@b-MqI5nEk`SgUIb0b0`-!%+trbw1`t+xwnB|2e!a6y%O*)oS;W@oz;`#y`DfA1m00DCGf6!2VwtxvULyWRqltRAh1$dV07W{9Bcbt zH&)F}<$p$Fw3rh$xKeNY`XY>nx@9w1;S2K&R4~HQie4{Xe01l9Y^N1T#MM^a*8-8Z zt!KnO&-&sTNGN`XEIl?0bDERn zpk{X1?zb@&jTYwycEj#lCzXW!%x10#TG2KzSEVQC^@UL2BgV!{^`lLHA;``10@o!a zJjma6P35g+0_n+gMVbcc8I(^(4p;c)UABqq`&`4 z-J^rbqV$F3$%gAC;iK5+-XnuZe7k9vg5#)oICHKq@+2Y3^6jC( zrC}(9y%=}*ps$e>r;q;EkO*_nVsF4Lw#;9b$RpRQJNlB;#h9Zqh1jAo(_Fri6XStH;-LdkAyOQ*EsHB~}D9TNY zqIv|)Zd38+S&}zcg=p=FARQkOWt&9EtjABHv57I9Pm21nF8nl=1usg10{YDOO=e>p zi?qtO@uE)cC*ADIbG_)c%5_<7daUjDs46cJ;Cq%Igqf1e?_+Be;^!}90hYqJDxFuS2?G#r9>wxf}fqE zGP(++zQl7J;+Mtl^^3C$N1`bVTKOJ3PH*_Y!B*JCskzA+X-@5Gm>_XNX;*gJI4xNU zl2LopmqA4pQUPi^21`Ss+D~kaa}PMx*TSklCDe>p@1_O-Tc!_&Q+2P7%#Ma)V{?zg z9culOKaRzcO>PEtu`!j9(dpjwu@qc8k*FR_EX$&X28@p zkn~gv%r*2JT|f~lvdP*rv4UwMtNy~1wQqAbuh;KQbU&Y1I|qKrKFAT8y~nM(vV+CB zTTBi-JlwVqIZF~bnH zM@=SDR!!m)_-d>vGota&h$=j9vEpaSBsXrK*fo<%b^6O6pb9nx-we)bJq{kKtKPO} zHG$RJtA&kPSC*`la34gcDnHHX>deVksS@>J|eOqC;NTtF+ zn%kDVVI*P2Gt;;A`aJZ}>VK|-3sw4jG(T=#xT@dZ`QT&(A%X6?i&(U(*3T=& z=G!K{055J#|MtHoW1*+fNrPW#)Nd{%Ug@t$V1H47N3JTy!Ra@l4Lq{CKMmJ$8U28E zJ)BwqG!~TpyK6-VhewVAt^QOI{}~heFxz@9M;I4>giD@I&xf${WH-8a3_ng(h2tHP z`Jb5MFR{|$1IP`88KrZYkal5zy~%coc79G-LE3rN$Ljn)ydPjqhEfEf_O% z>Mr%OTX{;!kae+RSkX|j;*4Gl;v@^SY`a~gV1B8lv^?g8D}P1l9sb-~HKS9XL)rY& z!>Ff;uK~;%Q;<&f!s|6z1J=ss+b|&@-0t^dxiwp^MX4j3lig5%50ZEM5wjwn~3hPx=U2c z5`Uq7XUJTOf5hpKQV(==OWHu*z|d;KN1&KMk;5MROA)R5d81d=b-b{uXbT>Bj^spV z4gHcpxqEkw`xQayPxpx-8qB&A+rFFO>N7OZQQ`2VVk>qG+~_CUQq3+YHS<@nZPkE; zx_k=0Ovsp!l%Bn6!QirHc0)#P!a^r4q~)!!LK25X+VQszb7ldjO<%rfhU^WVw47j% zqSj9be1ehs8$uae6&XWN zGjwsonRRx{U)mFfVj~?|^BXq$v5>En4IO>0mKsLC_*kot;T*cYzns3Y_i>9DFoNw> z^O)4KIKf!IQ}C7i_qv2ZuMNLB> z8vY-NFy_1O-^j~T#Itqb!XL=3{y3dMNk0gMS<^hLif&|(Uy;z+lj8lmX#XJdihQ*5 zJ*z9PvQl*^p(_o;3H+;3{Rx*VT10;DcR|bXHOf79w>SfMU4nbUnf)^Q0LuWGUH^j4 zA-j88^3A`f<>K}ayfbzHpw06Cp_Zw6rpnL}EmS#TCD$Q{q7oUpW#+Ed8NY-GJIyS5 z=sW#up5{sWT>jFb_B5} zF@plCs{FCM8Qwf;(8zM<+u_RB7}89w@DJn$*mqm^8LRBG!>%wx>U4e=6b|`4iax09 zR!em#jr+c8vlu0?%GsND`6agG#&BXn|FT}bBo6G&`zFH6Zgx^-Ctyd!Y{W(C55kaZ zoITEV`L#%bHE-K>tBbSGr{`_5QHG&{s)MsIJ|c;XQeB3h*I_PF4gxAK<1d2v>6>9p zEmu%YFso?BH04xGi_B9&l0!_wS|aq$GV$X}4>B(=Jrn6qw<yU;ZKK_NBFO_BR*My4hwv6zd=MHT^IN(-j2(2t@?|{_pR*4X)<= z|H7}umdtn{tiNb17B(($CN_1_lI%ZF?2e@Z!CyGm;D7nqR1qtg|E%~~(V*^eC+AV8 z)>_dq{G<8rgQo`k_wY$QwBlg=NAusg2>!POP-~Q0Wh#`~VU7Q9cxxKeV3X7!bJl;R Zu>aZnZ(`QZQ5(%tcdh9$ug(4m@IT8tD4+lU diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index f07d6a8..26178d3 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,2 +1,2 @@ #Sat Apr 01 10:09:33 PDT 2023 -rife2.version=1.5.17 +rife2.version=1.5.19 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index f2ea28b..3b987ef 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -18,40 +18,44 @@ public class PropertyFileBuild extends Project { pkg = "rife.bld.extension"; name = "bld-property-file"; version = version(0, 9, 1); - javadocOptions - .docLint(NO_MISSING) - .link("https://rife2.github.io/rife2/"); - publishRepository = version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"); -// publishRepository = MAVEN_LOCAL; - publishInfo = new PublishInfo() - .groupId("com.uwyn.rife2") - .artifactId("bld-property-file") - .description("bld Extension to Create or Modify Properties Files") - .url("https://github.com/rife2/bld-property-file") - .developer(new PublishDeveloper().id("ethauvin").name("Erik C. Thauvin").email("erik@thauvin.net") - .url("https://erik.thauvin.net/")) - .developer(new PublishDeveloper().id("gbevin").name("Geert Bevin").email("gbevin@uwyn.com") - .url("https://github.com/gbevin")) - .license(new PublishLicense().name("The Apache License, Version 2.0") - .url("http://www.apache.org/licenses/LICENSE-2.0.txt")) - .scm(new PublishScm().connection("scm:git:https://github.com/rife2/bld-property-file.git") - .developerConnection("scm:git:git@github.com:rife2/bld-property-file.git") - .url("https://github.com/rife2/bld-property-file")) - .signKey(property("sign.key")) - .signPassphrase(property("sign.passphrase")); javaRelease = 17; downloadSources = true; autoDownloadPurge = true; - repositories = List.of(MAVEN_CENTRAL, RIFE2); + repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(compile) - .include(dependency("com.uwyn.rife2", "rife2", version(1, 5, 17))); + .include(dependency("com.uwyn.rife2", "rife2", version(1, 5, 19))); scope(test) .include(dependency("org.jsoup", "jsoup", version(1, 15, 4))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 9, 2))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 9, 2))) .include(dependency("org.assertj:assertj-joda-time:2.2.0")); + + javadocOperation() + .javadocOptions() + .docLint(NO_MISSING) + .link("https://rife2.github.io/rife2/"); + + publishOperation() + .repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2")) +// .repository(MAVEN_LOCAL) + .info() + .groupId("com.uwyn.rife2") + .artifactId("bld-property-file") + .description("bld Extension to Create or Modify Properties Files") + .url("https://github.com/rife2/bld-property-file") + .developer(new PublishDeveloper().id("ethauvin").name("Erik C. Thauvin").email("erik@thauvin.net") + .url("https://erik.thauvin.net/")) + .developer(new PublishDeveloper().id("gbevin").name("Geert Bevin").email("gbevin@uwyn.com") + .url("https://github.com/gbevin")) + .license(new PublishLicense().name("The Apache License, Version 2.0") + .url("http://www.apache.org/licenses/LICENSE-2.0.txt")) + .scm(new PublishScm().connection("scm:git:https://github.com/rife2/bld-property-file.git") + .developerConnection("scm:git:git@github.com:rife2/bld-property-file.git") + .url("https://github.com/rife2/bld-property-file")) + .signKey(property("sign.key")) + .signPassphrase(property("sign.passphrase")); } public static void main(String[] args) { From ff346ed9c156c7042a3fc9850eba4f2eda461def Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 10 Apr 2023 07:58:31 -0700 Subject: [PATCH 02/74] Updated examples to bld 1.5.19 --- .github/workflows/bld.yml | 2 +- README.md | 4 ++-- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 24362 -> 25100 bytes examples/lib/bld/bld-wrapper.properties | 4 ++-- .../com/example/PropertyFileExampleBuild.java | 5 ++++- .../propertyfile/PropertyFileBuild.java | 4 ++-- 8 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index b94976b..ddcc35c 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -3,7 +3,7 @@ name: bld-ci on: [ push, pull_request, workflow_dispatch ] jobs: - build-gradle-project: + build-bld-project: runs-on: ubuntu-latest strategy: diff --git a/README.md b/README.md index fec38ee..ad25797 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# [Bld](https://github.com/rife2/rife2/wiki/What-Is-Bld) Extension to Create or Modify Properties Files +# [Bld](https://rife2.com/bld) Extension to Create or Modify Properties Files [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) @@ -6,7 +6,7 @@ [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-property-file/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-property-file) [![GitHub CI](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml) -An extension for creating or modifying [property files](https://docs.oracle.com/javase/tutorial/essential/environment/properties.html) with [bld](https://github.com/rife2/rife2/wiki/What-Is-Bld). It is inspired by the [ant PropertyFile task](https://ant.apache.org/manual/Tasks/propertyfile.html). +An extension for creating or modifying [property files](https://docs.oracle.com/javase/tutorial/essential/environment/properties.html) with [bld](https://rife2.com/bld). It is inspired by the [ant PropertyFile task](https://ant.apache.org/manual/Tasks/propertyfile.html). ```java @BuildCommand diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 3adb161..970a359 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 8a2a643..ba59365 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -7,7 +7,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.rife2/dist/rife2-1.5.17.jar", + "${HOME}/.rife2/dist/rife2-1.5.19.jar", "lib/compile/*.jar", "lib/runtime/*.jar", "lib/test/*.jar" diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index e70208d9c0b3b082ad559a3c42083d9990185b8d..7cc21a1f38b5c955ee41462d7c6fc744ae5a2c2b 100644 GIT binary patch delta 23421 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 Zu>aZnZ(`QZQ5(%tcdh9$ug(4m@IO${DINd- diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 9d5c665..5cd8e32 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ #Sun Apr 02 10:32:44 PDT 2023 bld.extension=com.uwyn.rife2:bld-property-file:0.9.1 -bld.repositories=MAVEN_LOCAL,RIFE2 +bld.repositories=MAVEN_LOCAL,RIFE2_RELEASES bld.downloadExtensionSources=true rife2.downloadLocation= -rife2.version=1.5.17 \ No newline at end of file +rife2.version=1.5.19 \ No newline at end of file diff --git a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java index 47b0df3..615caa2 100644 --- a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java +++ b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java @@ -10,6 +10,7 @@ import rife.bld.extension.propertyfile.PropertyFileOperation; import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; +import static rife.bld.dependencies.Repository.RIFE2_RELEASES; import static rife.bld.dependencies.Scope.test; import static rife.bld.extension.propertyfile.Calc.ADD; @@ -22,9 +23,11 @@ public class PropertyFileExampleBuild extends Project { mainClass = "com.example.PropertyFileExampleMain"; version = version(0, 1, 0); + javaRelease = 17; downloadSources = true; autoDownloadPurge = true; - repositories = List.of(MAVEN_CENTRAL); + repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); + scope(test) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 9, 2))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 9, 2))); diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index 3b987ef..5812f0e 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -17,7 +17,7 @@ public class PropertyFileBuild extends Project { public PropertyFileBuild() { pkg = "rife.bld.extension"; name = "bld-property-file"; - version = version(0, 9, 1); + version = version(0, 9, 2, "SNAPSHOT"); javaRelease = 17; downloadSources = true; @@ -61,4 +61,4 @@ public class PropertyFileBuild extends Project { public static void main(String[] args) { new PropertyFileBuild().start(args); } -} \ No newline at end of file +} From 575f5288c57d41ac0334625ef76e579b33bc43d1 Mon Sep 17 00:00:00 2001 From: Geert Bevin Date: Fri, 14 Apr 2023 21:40:25 -0400 Subject: [PATCH 03/74] Updated to RIFE2 1.5.20 --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- lib/bld/bld-wrapper.jar | Bin 25100 -> 25100 bytes lib/bld/bld-wrapper.properties | 8 ++++++-- .../propertyfile/PropertyFileBuild.java | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 7aa10eb..3409629 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,11 +2,11 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index ba59365..122fc60 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,7 +7,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.rife2/dist/rife2-1.5.19.jar", + "${HOME}/.rife2/dist/rife2-1.5.20.jar", "lib/compile/*.jar", "lib/runtime/*.jar", "lib/test/*.jar" diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index fed125fe2b5e777971d1734f5abf6d4d7404bdac..647466404d262819ce53919f19efcc62aaf1dcfe 100644 GIT binary patch delta 151 zcmeAj4=Lj>kVpJxQi zoM;08NY5_M diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 26178d3..9eaef71 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,2 +1,6 @@ -#Sat Apr 01 10:09:33 PDT 2023 -rife2.version=1.5.19 +bld.downloadExtensionJavadoc=false +bld.downloadExtensionSources=true +bld.extensions= +bld.repositories=MAVEN_CENTRAL,RIFE2_RELEASES +rife2.downloadLocation= +rife2.version=1.5.20 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index 3b987ef..68066d0 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -25,7 +25,7 @@ public class PropertyFileBuild extends Project { repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(compile) - .include(dependency("com.uwyn.rife2", "rife2", version(1, 5, 19))); + .include(dependency("com.uwyn.rife2", "rife2", version(1, 5, 20))); scope(test) .include(dependency("org.jsoup", "jsoup", version(1, 15, 4))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 9, 2))) From 9dfde8547339c920d38fbcfa64813735680166a3 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 15 Apr 2023 20:31:13 -0700 Subject: [PATCH 04/74] Added pmd extension Added fromProject instead of using the constructor Improved tests --- .idea/codeStyles/codeStyleConfig.xml | 5 + README.md | 3 +- config/pmd.xml | 105 +++++++ examples/.idea/libraries/bld.xml | 4 +- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 25100 -> 25100 bytes examples/lib/bld/bld-wrapper.properties | 6 +- .../com/example/PropertyFileExampleBuild.java | 15 +- lib/bld/bld-wrapper.properties | 4 +- .../propertyfile/PropertyFileBuild.java | 30 +- .../rife/bld/extension/propertyfile/Calc.java | 5 + .../bld/extension/propertyfile/Entry.java | 44 +-- .../bld/extension/propertyfile/EntryBase.java | 156 +++++----- .../bld/extension/propertyfile/EntryDate.java | 74 ++--- .../bld/extension/propertyfile/EntryInt.java | 28 +- .../propertyfile/PropertyFileOperation.java | 109 +++---- .../propertyfile/PropertyFileUtils.java | 118 ++++---- .../propertyfile/PropertyFileUtilsTest.java | 266 ++++++++++-------- 18 files changed, 573 insertions(+), 401 deletions(-) create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 config/pmd.xml diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..d91f848 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/README.md b/README.md index ad25797..b124109 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@ An extension for creating or modifying [property files](https://docs.oracle.com/ ```java @BuildCommand public void updateMajor() throws Exception { - new PropertyFileOperation(this) + new PropertyFileOperation() + .fromProject(this) .file("version.properties") .entry(new EntryInt("version.major").defaultValue(0).calc(ADD)) .entry(new EntryInt("version.minor").set(0)) diff --git a/config/pmd.xml b/config/pmd.xml new file mode 100644 index 0000000..3dc68dc --- /dev/null +++ b/config/pmd.xml @@ -0,0 +1,105 @@ + + + Erik's Ruleset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 970a359..081d064 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index ba59365..122fc60 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -7,7 +7,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.rife2/dist/rife2-1.5.19.jar", + "${HOME}/.rife2/dist/rife2-1.5.20.jar", "lib/compile/*.jar", "lib/runtime/*.jar", "lib/test/*.jar" diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 7cc21a1f38b5c955ee41462d7c6fc744ae5a2c2b..2780742b191e8d3c2aa75f9cf17b6cc60ea39c9c 100644 GIT binary patch delta 151 zcmeAJzuf%P{z!2cg&XM(amfhqF@gg7vlb^>sgK6CaPcU7X5CWzzB)EcUiNrXF Pc%nZCP<j4=Lj>kVpJxQi zoM;08Nh2=L diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 5cd8e32..5ebf190 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ #Sun Apr 02 10:32:44 PDT 2023 -bld.extension=com.uwyn.rife2:bld-property-file:0.9.1 -bld.repositories=MAVEN_LOCAL,RIFE2_RELEASES +bld.extension=com.uwyn.rife2:bld-property-file:0.9.2-SNAPSHOT +bld.repositories=MAVEN_LOCAL,MAVEN_LOCAL,RIFE2_RELEASES,RIFE2_SNAPSHOTS bld.downloadExtensionSources=true rife2.downloadLocation= -rife2.version=1.5.19 \ No newline at end of file +rife2.version=1.5.20 \ No newline at end of file diff --git a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java index 615caa2..5aa8900 100644 --- a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java +++ b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java @@ -39,7 +39,8 @@ public class PropertyFileExampleBuild extends Project { @BuildCommand(summary = "Updates major version") public void updateMajor() throws Exception { - new PropertyFileOperation(this) + new PropertyFileOperation() + .fromProject(this) .file("version.properties") // set the major version to 1 if it doesn't exist, increase by 1 .entry(new EntryInt("version.major").defaultValue(0).calc(ADD)) @@ -54,7 +55,8 @@ public class PropertyFileExampleBuild extends Project { @BuildCommand(summary = "Updates minor version") public void updateMinor() throws Exception { - new PropertyFileOperation(this) + new PropertyFileOperation() + .fromProject(this) .file("version.properties") // set the major version to 1 if it doesn't exist .entry(new EntryInt("version.major").defaultValue(1)) @@ -69,7 +71,8 @@ public class PropertyFileExampleBuild extends Project { @BuildCommand(summary = "Updates patch version") public void updatePatch() throws Exception { - new PropertyFileOperation(this) + new PropertyFileOperation() + .fromProject(this) .file("version.properties") // set the major version to 1 if it doesn't exist .entry(new EntryInt("version.major").defaultValue(1)) @@ -84,7 +87,8 @@ public class PropertyFileExampleBuild extends Project { @BuildCommand(summary = "Updates the release") public void updateRelease() throws Exception { - new PropertyFileOperation(this) + new PropertyFileOperation() + .fromProject(this) .file("version.properties") // set the release to current date/time .entry(new EntryDate("release").now().pattern("yyyyMMddHHmmss")) @@ -95,7 +99,8 @@ public class PropertyFileExampleBuild extends Project { @BuildCommand(summary = "Delete version properties") public void deleteVersion() throws Exception { - new PropertyFileOperation(this) + new PropertyFileOperation() + .fromProject(this) .file("version.properties") .entry(new Entry("version.major").delete()) .entry(new Entry("version.minor").delete()) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 9eaef71..f5e3e99 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions= -bld.repositories=MAVEN_CENTRAL,RIFE2_RELEASES +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.1-SNAPSHOT +bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES rife2.downloadLocation= rife2.version=1.5.20 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index 59b238f..1556910 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -1,8 +1,9 @@ package rife.bld.extension.propertyfile; +import rife.bld.BuildCommand; import rife.bld.Project; +import rife.bld.extension.PmdOperation; import rife.bld.publish.PublishDeveloper; -import rife.bld.publish.PublishInfo; import rife.bld.publish.PublishLicense; import rife.bld.publish.PublishScm; @@ -33,27 +34,27 @@ public class PropertyFileBuild extends Project { .include(dependency("org.assertj:assertj-joda-time:2.2.0")); javadocOperation() - .javadocOptions() + .javadocOptions() .docLint(NO_MISSING) .link("https://rife2.github.io/rife2/"); publishOperation() - .repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2")) -// .repository(MAVEN_LOCAL) - .info() + .repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2")) +// .repository(MAVEN_LOCAL) + .info() .groupId("com.uwyn.rife2") .artifactId("bld-property-file") .description("bld Extension to Create or Modify Properties Files") .url("https://github.com/rife2/bld-property-file") .developer(new PublishDeveloper().id("ethauvin").name("Erik C. Thauvin").email("erik@thauvin.net") - .url("https://erik.thauvin.net/")) + .url("https://erik.thauvin.net/")) .developer(new PublishDeveloper().id("gbevin").name("Geert Bevin").email("gbevin@uwyn.com") - .url("https://github.com/gbevin")) + .url("https://github.com/gbevin")) .license(new PublishLicense().name("The Apache License, Version 2.0") - .url("http://www.apache.org/licenses/LICENSE-2.0.txt")) + .url("http://www.apache.org/licenses/LICENSE-2.0.txt")) .scm(new PublishScm().connection("scm:git:https://github.com/rife2/bld-property-file.git") - .developerConnection("scm:git:git@github.com:rife2/bld-property-file.git") - .url("https://github.com/rife2/bld-property-file")) + .developerConnection("scm:git:git@github.com:rife2/bld-property-file.git") + .url("https://github.com/rife2/bld-property-file")) .signKey(property("sign.key")) .signPassphrase(property("sign.passphrase")); } @@ -61,4 +62,13 @@ public class PropertyFileBuild extends Project { public static void main(String[] args) { new PropertyFileBuild().start(args); } + + @BuildCommand(summary = "Runs PMD analysis") + public void pmd() throws Exception { + new PmdOperation() + .fromProject(this) + .failOnViolation(true) + .ruleSets("config/pmd.xml") + .execute(); + } } diff --git a/src/main/java/rife/bld/extension/propertyfile/Calc.java b/src/main/java/rife/bld/extension/propertyfile/Calc.java index 9e90642..d6b2f70 100644 --- a/src/main/java/rife/bld/extension/propertyfile/Calc.java +++ b/src/main/java/rife/bld/extension/propertyfile/Calc.java @@ -29,6 +29,11 @@ public final class Calc { public static final IntFunction ADD = Calc::add; public static final IntFunction SUB = Calc::sub; + + private Calc() { + // no-op + } + /** * Adds {@code 1} to the value. * diff --git a/src/main/java/rife/bld/extension/propertyfile/Entry.java b/src/main/java/rife/bld/extension/propertyfile/Entry.java index 89a7e3e..bd8087b 100644 --- a/src/main/java/rife/bld/extension/propertyfile/Entry.java +++ b/src/main/java/rife/bld/extension/propertyfile/Entry.java @@ -30,16 +30,6 @@ public class Entry extends EntryBase { super(key); } - /** - * Sets the new {@link java.util.Properties property} value. - * - * @param s The new value - */ - public Entry set(Object s) { - setNewValue(s); - return this; - } - /** *

Sets the initial value to set the {@link java.util.Properties property} to, if not already defined.

* @@ -51,6 +41,24 @@ public class Entry extends EntryBase { return this; } + /** + * Sets the {@link Entry entry} up for deletion. + */ + public Entry delete() { + setDelete(true); + return this; + } + + /** + * Creates a new {@link Entry entry}. + * + * @param modify the modification function + */ + public Entry modify(BiFunction modify) { + setModify(modify); + return this; + } + /** * Creates a new {@link Entry entry}. * @@ -64,20 +72,12 @@ public class Entry extends EntryBase { } /** - * Creates a new {@link Entry entry}. + * Sets the new {@link java.util.Properties property} value. * - * @param modify the modification function + * @param s The new value */ - public Entry modify(BiFunction modify) { - setModify(modify); - return this; - } - - /** - * Sets the {@link Entry entry} up for deletion. - */ - public Entry delete() { - setDelete(true); + public Entry set(Object s) { + setNewValue(s); return this; } } diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java index ba9edc7..1cadf1c 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java @@ -27,15 +27,15 @@ import java.util.function.IntFunction; * @since 1.0 */ public class EntryBase { - private String key; + private IntFunction calc; private Object defaultValue; - private Object newValue; - private String modifyValue = ""; private boolean isDelete; + private String key; + private BiFunction modify; + private String modifyValue = ""; + private Object newValue; private String pattern = ""; private EntryDate.Units unit = EntryDate.Units.DAY; - private IntFunction calc; - private BiFunction modify; /** * Creates a new {@link EntryBase entry}. @@ -46,60 +46,6 @@ public class EntryBase { this.key = key; } - /** - * Returns the value to be used in the {@link #modify} function. - */ - protected String getModifyValue() { - return modifyValue; - } - - /** - * Sets the modify value. - * - * @param value the modify value. - */ - protected void setModifyValue(String value) { - this.modifyValue = value; - } - - /** - * Returns the modify function. - */ - protected BiFunction getModify() { - return modify; - } - - /** - * Sets the modify function. - */ - protected void setModify(BiFunction modify) { - this.modify = modify; - } - - /** - * Sets the modify function. - * - * @param value the value to perform a modification with - */ - protected void setModify(String value, BiFunction modify) { - this.modifyValue = value; - this.modify = modify; - } - - /** - * Returns {@code true} if the {@link java.util.Properties property} is to be deleted. - */ - protected boolean isDelete() { - return isDelete; - } - - /** - * Sets whether the {@link java.util.Properties property} should be deleted. - */ - protected void setDelete(boolean delete) { - isDelete = delete; - } - /** * Returns the calculation function. */ @@ -114,6 +60,22 @@ public class EntryBase { this.calc = calc; } + /** + * Returns the default value. + */ + protected Object getDefaultValue() { + return defaultValue; + } + + /** + * Sets the initial value to set the {@link java.util.Properties property} to, if not already defined. + * + * @param defaultValue the default value + */ + protected void setDefaultValue(Object defaultValue) { + this.defaultValue = defaultValue; + } + /** * Returns the key of the {@link java.util.Properties property}. */ @@ -131,19 +93,49 @@ public class EntryBase { } /** - * Returns the default value. + * Returns the modify function. */ - protected Object getDefaultValue() { - return defaultValue; + protected BiFunction getModify() { + return modify; } /** - * Sets the initial value to set the {@link java.util.Properties property} to, if not already defined. - * - * @param defaultValue the default value + * Sets the modify function. */ - protected void setDefaultValue(Object defaultValue) { - this.defaultValue = defaultValue; + protected void setModify(BiFunction modify) { + this.modify = modify; + } + + /** + * Returns the value to be used in the {@link #modify} function. + */ + protected String getModifyValue() { + return modifyValue; + } + + /** + * Sets the modify value. + * + * @param value the modify value. + */ + protected void setModifyValue(String value) { + this.modifyValue = value; + } + + /** + * Returns the new value to set the {@link java.util.Properties property)} to. + */ + public Object getNewValue() { + return newValue; + } + + /** + * Sets a new value for {@link java.util.Properties property}. + * + * @param newValue the new value + */ + public void setNewValue(Object newValue) { + this.newValue = newValue; } /** @@ -179,6 +171,20 @@ public class EntryBase { this.unit = unit; } + /** + * Returns {@code true} if the {@link java.util.Properties property} is to be deleted. + */ + protected boolean isDelete() { + return isDelete; + } + + /** + * Sets whether the {@link java.util.Properties property} should be deleted. + */ + protected void setDelete(boolean delete) { + isDelete = delete; + } + /** * Sets the key of the {@link java.util.Properties property}. * @@ -191,18 +197,12 @@ public class EntryBase { } /** - * Returns the new value to set the {@link java.util.Properties property)} to. - */ - public Object getNewValue() { - return newValue; - } - - /** - * Sets a new value for {@link java.util.Properties property}. + * Sets the modify function. * - * @param newValue the new value + * @param value the value to perform a modification with */ - public void setNewValue(Object newValue) { - this.newValue = newValue; + protected void setModify(String value, BiFunction modify) { + this.modifyValue = value; + this.modify = modify; } } diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java index 3522f47..51e6630 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java @@ -37,6 +37,43 @@ public class EntryDate extends EntryBase { super(key); } + /** + * Creates a new {@link EntryDate entry}. + * + * @param calc the calculation function + */ + public EntryDate calc(IntFunction calc) { + setCalc(calc); + return this; + } + + /** + * Sets the {@link EntryDate entry} up for deletion. + */ + public EntryDate delete() { + setDelete(true); + return this; + } + + /** + * Sets the new {@link java.util.Properties property} value to now. + */ + public EntryDate now() { + setNewValue("now"); + return this; + } + + /** + * Sets the pattern for {@link EntryInt} and {@link EntryDate} to{@link java.text.DecimalFormat DecimalFormat} and + * {@link java.time.format.DateTimeFormatter DateTimeFormatter} respectively. + * + * @param pattern the pattern + */ + public EntryDate pattern(String pattern) { + setPattern(pattern); + return this; + } + /** * Sets the new {@link java.util.Properties property} value to an {@link Instant} * @@ -107,35 +144,6 @@ public class EntryDate extends EntryBase { return this; } - /** - * Sets the new {@link java.util.Properties property} value to now. - */ - public EntryDate now() { - setNewValue("now"); - return this; - } - - /** - * Creates a new {@link EntryDate entry}. - * - * @param calc the calculation function - */ - public EntryDate calc(IntFunction calc) { - setCalc(calc); - return this; - } - - /** - * Sets the pattern for {@link EntryInt} and {@link EntryDate} to{@link java.text.DecimalFormat DecimalFormat} and - * {@link java.time.format.DateTimeFormatter DateTimeFormatter} respectively. - * - * @param pattern the pattern - */ - public EntryDate pattern(String pattern) { - setPattern(pattern); - return this; - } - /** * Sets the {@link Units unit} value to apply to calculations for {@link EntryDate}. * @@ -146,14 +154,6 @@ public class EntryDate extends EntryBase { return this; } - /** - * Sets the {@link EntryDate entry} up for deletion. - */ - public EntryDate delete() { - setDelete(true); - return this; - } - /** * The units available for {@link EntryDate} calculations. * diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java index f2001ef..9dd619b 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java @@ -35,12 +35,12 @@ public class EntryInt extends EntryBase { } /** - * Sets the new {@link java.util.Properties property} value to an integer. + * Creates a new {@link EntryInt entry}. * - * @param i The integer to set the value to + * @param calc the calculation function. */ - public EntryInt set(int i) { - setNewValue(i); + public EntryInt calc(IntFunction calc) { + setCalc(calc); return this; } @@ -55,16 +55,6 @@ public class EntryInt extends EntryBase { return this; } - /** - * Creates a new {@link EntryInt entry}. - * - * @param calc the calculation function. - */ - public EntryInt calc(IntFunction calc) { - setCalc(calc); - return this; - } - /** * Sets the {@link EntryInt entry} up for deletion. */ @@ -72,4 +62,14 @@ public class EntryInt extends EntryBase { setDelete(true); return this; } + + /** + * Sets the new {@link java.util.Properties property} value to an integer. + * + * @param i The integer to set the value to + */ + public EntryInt set(int i) { + setNewValue(i); + return this; + } } diff --git a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java index 77cc22b..9364be2 100644 --- a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java +++ b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java @@ -16,7 +16,7 @@ package rife.bld.extension.propertyfile; -import rife.bld.Project; +import rife.bld.BaseProject; import rife.bld.operations.AbstractOperation; import java.io.File; @@ -32,13 +32,20 @@ import java.util.Properties; */ public class PropertyFileOperation extends AbstractOperation { private final List entries = new ArrayList<>(); - private final Project project; - private File file; private String comment = ""; private boolean failOnWarning; + private File file; + private BaseProject project; - public PropertyFileOperation(Project project) { - this.project = project; + /** + * Sets the comment to be inserted at the top of the {@link java.util.Properties} file. + * + * @param comment the header comment + */ + @SuppressWarnings("unused") + public PropertyFileOperation comment(String comment) { + this.comment = comment; + return this; } /** @@ -53,50 +60,6 @@ public class PropertyFileOperation extends AbstractOperation PropertyFileUtils.warn("command", "message", new IOException(t), true)) - .hasMessage(t).isInstanceOf(IOException.class); - assertThatCode(() -> PropertyFileUtils.warn("command", t, new Exception(t), false)) - .as("failOnWarning = false").doesNotThrowAnyException(); + @SuppressWarnings("PMD.SignatureDeclareThrowsException") + void parseDateSub() throws Exception { + var entryDate = newEntryDate(); + entryDate.setCalc(SUB); + PropertyFileUtils.processDate(t, p, entryDate.now(), true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(now-3)").isEqualTo(String.valueOf(dayOfYear - 1)); + + entryDate.setCalc(v -> v - 2); + PropertyFileUtils.processDate(t, p, entryDate.now(), true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(now-2)").isEqualTo(String.valueOf(dayOfYear - 2)); + + entryDate.setCalc(SUB); + PropertyFileUtils.processDate(t, p, entryDate.set(new Date()), true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(date-1)").isEqualTo(String.valueOf(dayOfYear - 1)); + + entryDate.setCalc(v -> v - 2); + PropertyFileUtils.processDate(t, p, entryDate.set(Calendar.getInstance()), true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(cal-2)").isEqualTo(String.valueOf(dayOfYear - 2)); + + entryDate.setCalc(v -> v - 3); + PropertyFileUtils.processDate(t, p, entryDate.set(LocalDate.now()), + true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(LocalDate-3)").isEqualTo(String.valueOf(dayOfYear - 3)); } @Test + @SuppressWarnings("PMD.SignatureDeclareThrowsException") + void parseIntSubTest() throws Exception { + var entryInt = newEntryInt(); + entryInt.calc(SUB); + entryInt.setPattern("0000"); + PropertyFileUtils.processInt(t, p, entryInt.defaultValue("0017"), true); + assertThat(p.getProperty(entryInt.getKey())).as("sub(0017)").isEqualTo("0016"); + + PropertyFileUtils.processInt(t, p, entryInt.set(16).calc(v -> v - 3), true); + assertThat(p.getProperty(entryInt.getKey())).as("sub(16)-3").isEqualTo("0013"); + } + + @Test + @SuppressWarnings("PMD.AvoidDuplicateLiterals") void parseStringAppend() { + var entry = newEntry(); + PropertyFileUtils.processString(p, entry.set(1)); PropertyFileUtils.processString(p, entry.modify("-foo", String::concat)); assertThat(p.getProperty(entry.getKey())).as(String.format("processString(%s, %s)", entry.getKey(), entry.getNewValue())).isEqualTo("1-foo"); } - @Test - void parseStringPrepend() { - PropertyFileUtils.processString(p, entry.modify("foo-", (v, s) -> s + v)); - assertThat(p.getProperty(entry.getKey())).as(String.format("processString(%s, %s)", entry.getKey(), entry.getNewValue())) - .isEqualTo("foo-1"); - } - @Test void parseStringCap() { + var entry = newEntry(); PropertyFileUtils.processString(p, entry.set(t).modify("", (v, s) -> v.toUpperCase(Localization.getLocale()))); assertThat(p.getProperty(entry.getKey())).as("capitalize").isEqualTo(t.toUpperCase(Localization.getLocale())); } + @Test + void parseStringCat() { + var entry = newEntry(); + entry.set(t).setModify("-foo", String::concat); + PropertyFileUtils.processString(p, entry); + assertThat(p.getProperty(entry.getKey())).as("replace").isEqualTo(t + "-foo"); + } + + @Test + void parseStringPrepend() { + var entry = newEntry(); + PropertyFileUtils.processString(p, entry.set(1)); + PropertyFileUtils.processString(p, entry.modify("foo-", (v, s) -> s + v)); + assertThat(p.getProperty(entry.getKey())).as(String.format("processString(%s, %s)", entry.getKey(), entry.getNewValue())) + .isEqualTo("foo-1"); + } + @Test void parseStringReplace() { + var entry = newEntry(); entry.set(t).setModify("T", (v, s) -> v.replace("t", s)); PropertyFileUtils.processString(p, entry); assertThat(p.getProperty(entry.getKey())).as("replace(t -> T)").isEqualTo("TesT"); } - @Test - void parseStringCat() { - entry.set(t).setModify("-foo", String::concat); - PropertyFileUtils.processString(p, entry); - assertThat(p.getProperty(entry.getKey())).as("replace").isEqualTo(t + "-foo"); - } - @Test void parseStringSub() { + var entry = newEntry(); PropertyFileUtils.processString(p, entry.set(t).modify((v, s) -> v.substring(1))); assertThat(p.getProperty(entry.getKey())).as("substring(1)").isEqualTo(t.substring(1)); } @Test + @SuppressWarnings("PMD.SignatureDeclareThrowsException") + void parseTimeTest() throws Exception { + var entry = new EntryDate("time").pattern("m"); + var time = LocalTime.now(); + + entry.setCalc(ADD); + PropertyFileUtils.processDate(t, p, entry.set(time).unit(EntryDate.Units.MINUTE), true); + assertThat(p.getProperty(entry.getKey())).as("processDate(now+1)") + .isEqualTo(String.valueOf(time.plusMinutes(1).getMinute())); + + entry.setCalc(SUB); + PropertyFileUtils.processDate(t, p, entry.set(time).unit(EntryDate.Units.HOUR).pattern("H"), true); + assertThat(p.getProperty(entry.getKey())).as("processDate(now+1)") + .isEqualTo(String.valueOf(time.minusHours(1).getHour())); + } + + @Test + @SuppressWarnings("PMD.SignatureDeclareThrowsException") + void processDateAddTest() throws Exception { + var entryDate = newEntryDate(); + entryDate.setCalc(ADD); + PropertyFileUtils.processDate(t, p, entryDate.now(), true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(now+1)").isEqualTo(String.valueOf(dayOfYear + 1)); + + PropertyFileUtils.processDate(t, p, entryDate.now().calc(v -> v + 3), true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(now+3)").isEqualTo(String.valueOf(dayOfYear + 3)); + + entryDate.setCalc(ADD); + PropertyFileUtils.processDate(t, p, entryDate.set(ZonedDateTime.now()), true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(ZonedDateTime+1)") + .isEqualTo(String.valueOf(dayOfYear + 1)); + + PropertyFileUtils.processDate(t, p, entryDate.set(Instant.now()).calc(v -> v + 2), true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(Instant+2)").isEqualTo(String.valueOf(dayOfYear + 2)); + + entryDate.setCalc(v -> v + 3); + PropertyFileUtils.processDate(t, p, entryDate.set(LocalDateTime.now()), true); + assertThat(p.getProperty(entryDate.getKey())).as("processDate(LocalDteTime+2)").isEqualTo(String.valueOf(dayOfYear + 3)); + } + + @Test + @SuppressWarnings("PMD.SignatureDeclareThrowsException") void processIntAddTest() throws Exception { + var entryInt = newEntryInt(); entryInt.calc(ADD); entryInt.setDefaultValue("-1"); PropertyFileUtils.processInt(t, p, entryInt, true); @@ -137,92 +218,22 @@ class PropertyFileUtilsTest { } @Test - void parseIntSubTest() throws Exception { - entryInt.calc(SUB); - entryInt.setPattern("0000"); - PropertyFileUtils.processInt(t, p, entryInt.defaultValue("0017"), true); - assertThat(p.getProperty(entryInt.getKey())).as("sub(0017)").isEqualTo("0016"); + void processStringTest() { + var entry = newEntry(); + PropertyFileUtils.processString(p, entry); - PropertyFileUtils.processInt(t, p, entryInt.set(16).calc(v -> v - 3), true); - assertThat(p.getProperty(entryInt.getKey())).as("sub(16)-3").isEqualTo("0013"); - } - - @Test - void processDateAddTest() throws Exception { - entryDate.setCalc(ADD); - PropertyFileUtils.processDate(t, p, entryDate.now(), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(now+1)").isEqualTo(String.valueOf(dayOfYear + 1)); - - PropertyFileUtils.processDate(t, p, entryDate.now().calc(v -> v + 3), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(now+3)").isEqualTo(String.valueOf(dayOfYear + 3)); - - entryDate.setCalc(ADD); - PropertyFileUtils.processDate(t, p, entryDate.set(ZonedDateTime.now()), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(ZonedDateTime+1)") - .isEqualTo(String.valueOf(dayOfYear + 1)); - - PropertyFileUtils.processDate(t, p, entryDate.set(Instant.now()).calc(v -> v + 2), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(Instant+2)").isEqualTo(String.valueOf(dayOfYear + 2)); - - entryDate.setCalc(v -> v + 3); - PropertyFileUtils.processDate(t, p, entryDate.set(LocalDateTime.now()), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(LocalDteTime+2)").isEqualTo(String.valueOf(dayOfYear + 3)); - } - - @Test - void parseDateSub() throws Exception { - entryDate.setCalc(SUB); - PropertyFileUtils.processDate(t, p, entryDate.now(), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(now-3)").isEqualTo(String.valueOf(dayOfYear - 1)); - - entryDate.setCalc(v -> v - 2); - PropertyFileUtils.processDate(t, p, entryDate.now(), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(now-2)").isEqualTo(String.valueOf(dayOfYear - 2)); - - entryDate.setCalc(SUB); - PropertyFileUtils.processDate(t, p, entryDate.set(new Date()), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(date-1)").isEqualTo(String.valueOf(dayOfYear - 1)); - - entryDate.setCalc(v -> v - 2); - PropertyFileUtils.processDate(t, p, entryDate.set(Calendar.getInstance()), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(cal-2)").isEqualTo(String.valueOf(dayOfYear - 2)); - - entryDate.setCalc(v -> v - 3); - PropertyFileUtils.processDate(t, p, entryDate.set(LocalDate.now()), - true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(LocalDate-3)").isEqualTo(String.valueOf(dayOfYear - 3)); - } - - @Test - void parseTimeTest() throws Exception { - var entry = new EntryDate("time").pattern("m"); - var time = LocalTime.now(); - - entry.setCalc(ADD); - PropertyFileUtils.processDate(t, p, entry.set(time).unit(EntryDate.Units.MINUTE), true); - assertThat(p.getProperty(entry.getKey())).as("processDate(now+1)") - .isEqualTo(String.valueOf(time.plusMinutes(1).getMinute())); - - entry.setCalc(SUB); - PropertyFileUtils.processDate(t, p, entry.set(time).unit(EntryDate.Units.HOUR).pattern("H"), true); - assertThat(p.getProperty(entry.getKey())).as("processDate(now+1)") - .isEqualTo(String.valueOf(time.minusHours(1).getHour())); - } - - @Test - void testCurrentValue() { - var value = "value"; - var defaultValue = "default"; - var newValue = "new"; - - assertThat(PropertyFileUtils.currentValue(value, defaultValue, newValue)).as("all").isEqualTo(newValue); - assertThat(PropertyFileUtils.currentValue(value, null, null)).as("value").isEqualTo(value); - assertThat(PropertyFileUtils.currentValue(value, defaultValue, null)).as("value not default").isEqualTo(value); - assertThat(PropertyFileUtils.currentValue(null, defaultValue, null)).as("default").isEqualTo(defaultValue); - assertThat(PropertyFileUtils.currentValue(null, null, newValue)).as("new").isEqualTo(newValue); + assertThat(entry.getNewValue()).as(String.format("processString(%s, %s)", entry.getKey(), entry.getNewValue())) + .isEqualTo(p.getProperty(entry.getKey())); + + entry.setKey("version.minor"); + + PropertyFileUtils.processString(p, entry.set(0)); + assertThat(entry.getNewValue().toString()).as(String.format("processString(%s, %s)", entry.getKey(), entry.getNewValue())) + .isEqualTo(p.getProperty(entry.getKey())); } @Test + @SuppressWarnings("PMD.SignatureDeclareThrowsException") void savePropertiesTest() throws Exception { var p = new Properties(); var test = "test"; @@ -240,4 +251,25 @@ class PropertyFileUtilsTest { tmp.deleteOnExit(); } + + @Test + void testCurrentValue() { + var value = "value"; + var defaultValue = "default"; + var newValue = "new"; + + assertThat(PropertyFileUtils.currentValue(value, defaultValue, newValue)).as("all").isEqualTo(newValue); + assertThat(PropertyFileUtils.currentValue(value, null, null)).as("value").isEqualTo(value); + assertThat(PropertyFileUtils.currentValue(value, defaultValue, null)).as("value not default").isEqualTo(value); + assertThat(PropertyFileUtils.currentValue(null, defaultValue, null)).as("default").isEqualTo(defaultValue); + assertThat(PropertyFileUtils.currentValue(null, null, newValue)).as("new").isEqualTo(newValue); + } + + @Test + void testWarn() { + assertThatCode(() -> PropertyFileUtils.warn("command", "message", new IOException(t), true)) + .hasMessage(t).isInstanceOf(IOException.class); + assertThatCode(() -> PropertyFileUtils.warn("command", t, new Exception(t), false)) + .as("failOnWarning = false").doesNotThrowAnyException(); + } } \ No newline at end of file From dc1cebc327a44af60ce214ad5d8982813aad54d0 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 12 May 2023 15:31:11 -0700 Subject: [PATCH 05/74] Upgraded to RIFE2 1.7.0 --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 25100 -> 27258 bytes examples/lib/bld/bld-wrapper.properties | 6 +++--- .../com/example/PropertyFileExampleBuild.java | 4 ++-- lib/bld/bld-wrapper.jar | Bin 25100 -> 27258 bytes lib/bld/bld-wrapper.properties | 4 ++-- .../propertyfile/PropertyFileBuild.java | 13 ++++++++----- 10 files changed, 21 insertions(+), 18 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 3409629..f07cc1c 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,11 +2,11 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 122fc60..5dd7145 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,7 +7,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.rife2/dist/rife2-1.5.20.jar", + "${HOME}bld-1.7.0-SNAPSHOT.jar", "lib/compile/*.jar", "lib/runtime/*.jar", "lib/test/*.jar" diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 081d064..f67b643 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 122fc60..5ae2eaa 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -7,7 +7,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.rife2/dist/rife2-1.5.20.jar", + "${HOME}bld-1.7.0.jar", "lib/compile/*.jar", "lib/runtime/*.jar", "lib/test/*.jar" diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 2780742b191e8d3c2aa75f9cf17b6cc60ea39c9c..fdfb8dcf538b546496d16bed5eca8f54af273730 100644 GIT binary patch delta 25266 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 MBwXLEK0aUtJ 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 M Date: Thu, 10 Aug 2023 22:28:44 -0700 Subject: [PATCH 06/74] Fixed license badge --- .idea/misc.xml | 5 +++++ README.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 782e495..eff0377 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -14,6 +14,11 @@ + diff --git a/README.md b/README.md index b124109..88a8daf 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # [Bld](https://rife2.com/bld) Extension to Create or Modify Properties Files -[![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause) +[![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-property-file/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-property-file) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-property-file/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-property-file) From 16f6e1de677368e0885826c81d56dc3e05e95ffb Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 13 Aug 2023 20:13:51 -0700 Subject: [PATCH 07/74] Added JaCoCo extension --- .idea/misc.xml | 1 - lib/bld/bld-wrapper.properties | 1 + .../extension/propertyfile/PropertyFileBuild.java | 13 +++++++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index eff0377..02a2553 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 9a3a540..624beef 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,6 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.1-SNAPSHOT +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.0-SNAPSHOT bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.7.0 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index b7cbeef..bfa6db1 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -2,11 +2,13 @@ package rife.bld.extension.propertyfile; import rife.bld.BuildCommand; import rife.bld.Project; +import rife.bld.extension.JacocoReportOperation; import rife.bld.extension.PmdOperation; import rife.bld.publish.PublishDeveloper; import rife.bld.publish.PublishLicense; import rife.bld.publish.PublishScm; +import java.io.IOException; import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; @@ -32,8 +34,8 @@ public class PropertyFileBuild extends Project { .include(dependency("com.uwyn.rife2", "bld", rife2)); scope(test) .include(dependency("org.jsoup", "jsoup", version(1, 16, 1))) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 9, 3))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 9, 3))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 0))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 0))) .include(dependency("org.assertj:assertj-joda-time:2.2.0")); javadocOperation() @@ -66,6 +68,13 @@ public class PropertyFileBuild extends Project { new PropertyFileBuild().start(args); } + @BuildCommand(summary = "Generates JaCoCo Reports") + public void jacoco() throws IOException { + new JacocoReportOperation() + .fromProject(this) + .execute(); + } + @BuildCommand(summary = "Runs PMD analysis") public void pmd() throws Exception { new PmdOperation() From 84f5906d5d351d0fc7aeeedf5eb236588274bdac Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 14 Aug 2023 20:26:10 -0700 Subject: [PATCH 08/74] Added link to bld javadoc --- .../java/rife/bld/extension/propertyfile/PropertyFileBuild.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index bfa6db1..b70ef5d 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -41,6 +41,7 @@ public class PropertyFileBuild extends Project { javadocOperation() .javadocOptions() .docLint(NO_MISSING) + .link("https://rife2.github.io/bld/") .link("https://rife2.github.io/rife2/"); publishOperation() From 22475b87b1b70d12829f3fdfa0f94088b4e747eb Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 16 Aug 2023 08:41:03 -0700 Subject: [PATCH 09/74] Added install instruction reference --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 88a8daf..335aa79 100755 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-property-file/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-property-file) [![GitHub CI](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml) -An extension for creating or modifying [property files](https://docs.oracle.com/javase/tutorial/essential/environment/properties.html) with [bld](https://rife2.com/bld). It is inspired by the [ant PropertyFile task](https://ant.apache.org/manual/Tasks/propertyfile.html). +To install, please refer to the [extensions documentation](https://github.com/rife2/bld/wiki/Extensions). + +To create or modifying [property files](https://docs.oracle.com/javase/tutorial/essential/environment/properties.html) with [bld](https://rife2.com/bld), add the follwing to your build file: ```java @BuildCommand @@ -111,3 +113,5 @@ The [EntryInt](https://rife2.github.io/bld-property-file/rife/bld/extension/prop | `delete()` | Delete the property. | | `pattern()` | If present, will parse the value as a [DecimalFormat](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/text/DecimalFormat.html) pattern. | | `set()` | The [integer value](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Integer.html) to set the property to, regardless of its previous value. | + +It is inspired by the [ant PropertyFile task](https://ant.apache.org/manual/Tasks/propertyfile.html). \ No newline at end of file From a264895c49fe37d82d0b00a1a17eadde0292da14 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 16 Aug 2023 14:15:50 -0700 Subject: [PATCH 10/74] Added bld badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 335aa79..aee2439 100755 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) +[![bld](https://img.shields.io/badge/1.7.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-property-file/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-property-file) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-property-file/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-property-file) [![GitHub CI](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml) From 04ff860a4f6c0fbcb0fb645e47a4c7263d35de7f Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 17 Aug 2023 07:31:36 -0700 Subject: [PATCH 11/74] Cleaned up repositories --- examples/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.properties | 2 +- .../java/rife/bld/extension/propertyfile/PropertyFileBuild.java | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index ff78ec0..c789840 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ #Sun Apr 02 10:32:44 PDT 2023 bld.extension=com.uwyn.rife2:bld-property-file:0.9.2-SNAPSHOT -bld.repositories=MAVEN_LOCAL,RIFE2_RELEASES,RIFE2_SNAPSHOTS +bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadExtensionSources=true bld.downloadLocation= bld.version=1.7.0 \ No newline at end of file diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 624beef..ad316f0 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -2,6 +2,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.1-SNAPSHOT bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.0-SNAPSHOT -bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES +bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOT,MAVEN_CENTRAL,RIFE2_RELEASES bld.downloadLocation= bld.version=1.7.0 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index b70ef5d..37a58fe 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -46,7 +46,6 @@ public class PropertyFileBuild extends Project { publishOperation() .repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2")) -// .repository(MAVEN_LOCAL) .info() .groupId("com.uwyn.rife2") .artifactId("bld-property-file") From 3a0144ea073bc835e204e687fd84f2aa9719e3a7 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 17 Aug 2023 12:38:45 -0700 Subject: [PATCH 12/74] Updated bld-wrapper.properties --- lib/bld/bld-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index ad316f0..0c65266 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -2,6 +2,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.1-SNAPSHOT bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.0-SNAPSHOT -bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOT,MAVEN_CENTRAL,RIFE2_RELEASES +bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,MAVEN_CENTRAL,RIFE2_RELEASES bld.downloadLocation= bld.version=1.7.0 From 0cf1c230d4c17555f9cb24f5feb663d0dde991a8 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 18 Aug 2023 01:41:54 -0700 Subject: [PATCH 13/74] Upgrade to bld 1.7.1 --- .idea/misc.xml | 5 + README.md | 2 +- config/pmd.xml | 1 - examples/lib/bld/bld-wrapper.properties | 6 +- lib/bld/bld-wrapper.properties | 8 +- .../propertyfile/PropertyFileBuild.java | 8 +- .../bld/extension/propertyfile/EntryBase.java | 153 +++++++++--------- .../propertyfile/PropertyFileUtils.java | 22 ++- .../propertyfile/PropertyFileUtilsTest.java | 18 +-- 9 files changed, 113 insertions(+), 110 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 02a2553..0c58f2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,3 +1,4 @@ + @@ -11,6 +12,10 @@ + + + + diff --git a/README.md b/README.md index 8abcf73..70843fa 100755 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ public void updateMajor() throws Exception { .execute(); } ``` + Invoking the `updateMajor` command, will create the `version.propertees`file: ```sh diff --git a/examples/.idea/misc.xml b/examples/.idea/misc.xml index 7010ea3..0e7a921 100644 --- a/examples/.idea/misc.xml +++ b/examples/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/examples/.vscode/launch.json b/examples/.vscode/launch.json index c868458..6a94475 100644 --- a/examples/.vscode/launch.json +++ b/examples/.vscode/launch.json @@ -1,6 +1,13 @@ { "version": "0.2.0", "configurations": [ + { + "type": "java", + "name": "PropertyFileExampleBuild", + "request": "launch", + "mainClass": "com.example.PropertyFileExampleBuild", + "projectName": "examples_dbdc9d4b" + }, { "type": "java", "name": "Run Main", @@ -18,7 +25,8 @@ "--disable-banner", "--disable-ansi-colors", "--exclude-engine=junit-platform-suite", - "--exclude-engine=junit-vintage"] + "--exclude-engine=junit-vintage" + ] } ] } diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..ede07c3 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,5 @@ +# Compile and Run Example + +```console +./bld compile run +``` diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index c57b897..f16131d 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,5 +1,5 @@ #Sun Apr 02 10:32:44 PDT 2023 -bld.extension=com.uwyn.rife2:bld-property-file:0.9.3 +bld.extension=com.uwyn.rife2:bld-property-file:0.9.4-SNAPSHOT bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadExtensionSources=true bld.downloadLocation= diff --git a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java index b15c244..a1a14a7 100644 --- a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java +++ b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java @@ -40,8 +40,8 @@ public class PropertyFileExampleBuild extends Project { repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(test) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 0))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 0))); + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1))); } public static void main(String[] args) { diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 46c4a1d..5617ae3 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.3 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.4 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.1 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index 6ba1c5b..5b75edb 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -37,7 +37,7 @@ public class PropertyFileBuild extends Project { public PropertyFileBuild() { pkg = "rife.bld.extension"; name = "bld-property-file"; - version = version(0, 9, 3); + version = version(0, 9, 4, "SNAPSHOT"); javaRelease = 17; downloadSources = true; @@ -48,12 +48,13 @@ public class PropertyFileBuild extends Project { .include(dependency("com.uwyn.rife2", "bld", version(1, 7, 5))); scope(test) .include(dependency("org.jsoup", "jsoup", version(1, 16, 2))) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 0))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 0))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1))) .include(dependency("org.assertj:assertj-joda-time:2.2.0")); javadocOperation() .javadocOptions() + .author() .docLint(NO_MISSING) .link("https://rife2.github.io/bld/") .link("https://rife2.github.io/rife2/"); @@ -65,15 +66,28 @@ public class PropertyFileBuild extends Project { .artifactId("bld-property-file") .description("bld Extension to Create or Modify Properties Files") .url("https://github.com/rife2/bld-property-file") - .developer(new PublishDeveloper().id("ethauvin").name("Erik C. Thauvin").email("erik@thauvin.net") - .url("https://erik.thauvin.net/")) - .developer(new PublishDeveloper().id("gbevin").name("Geert Bevin").email("gbevin@uwyn.com") - .url("https://github.com/gbevin")) - .license(new PublishLicense().name("The Apache License, Version 2.0") - .url("http://www.apache.org/licenses/LICENSE-2.0.txt")) - .scm(new PublishScm().connection("scm:git:https://github.com/rife2/bld-property-file.git") - .developerConnection("scm:git:git@github.com:rife2/bld-property-file.git") - .url("https://github.com/rife2/bld-property-file")) + .developer( + new PublishDeveloper().id("ethauvin") + .name("Erik C. Thauvin") + .email("erik@thauvin.net") + .url("https://erik.thauvin.net/") + ) + .developer( + new PublishDeveloper() + .id("gbevin") + .name("Geert Bevin") + .email("gbevin@uwyn.com") + .url("https://github.com/gbevin") + ) + .license( + new PublishLicense() + .name("The Apache License, Version 2.0") + .url("http://www.apache.org/licenses/LICENSE-2.0.txt") + ) + .scm( + new PublishScm().connection("scm:git:https://github.com/rife2/bld-property-file.git") + .developerConnection("scm:git:git@github.com:rife2/bld-property-file.git") + .url("https://github.com/rife2/bld-property-file")) .signKey(property("sign.key")) .signPassphrase(property("sign.passphrase")); } diff --git a/src/main/java/rife/bld/extension/propertyfile/Calc.java b/src/main/java/rife/bld/extension/propertyfile/Calc.java index 5707408..66bff61 100644 --- a/src/main/java/rife/bld/extension/propertyfile/Calc.java +++ b/src/main/java/rife/bld/extension/propertyfile/Calc.java @@ -26,7 +26,13 @@ import java.util.function.IntFunction; * @since 1.0 */ public final class Calc { + /** + * The add function. + */ public static final IntFunction ADD = Calc::add; + /** + * The sub function. + */ public static final IntFunction SUB = Calc::sub; @@ -38,6 +44,7 @@ public final class Calc { * Adds {@code 1} to the value. * * @param v the value + * @return the new value */ public static Integer add(int v) { return v + 1; @@ -47,6 +54,7 @@ public final class Calc { * Subtracts {@code 1} to the value. * * @param v the value + * @return the new value */ public static Integer sub(int v) { return v - 1; diff --git a/src/main/java/rife/bld/extension/propertyfile/Entry.java b/src/main/java/rife/bld/extension/propertyfile/Entry.java index dc1c1db..e737c82 100644 --- a/src/main/java/rife/bld/extension/propertyfile/Entry.java +++ b/src/main/java/rife/bld/extension/propertyfile/Entry.java @@ -26,6 +26,11 @@ import java.util.function.BiFunction; * @since 1.0 */ public class Entry extends EntryBase { + /** + * Instantiates a new Entry. + * + * @param key the key + */ public Entry(String key) { super(key); } @@ -34,6 +39,7 @@ public class Entry extends EntryBase { *

Sets the initial value to set the {@link java.util.Properties property} to, if not already defined.

* * @param defaultValue the default value + * @return the entry */ @SuppressWarnings("unused") public Entry defaultValue(Object defaultValue) { @@ -43,6 +49,8 @@ public class Entry extends EntryBase { /** * Sets the {@link Entry entry} up for deletion. + * + * @return the entry */ public Entry delete() { setDelete(true); @@ -53,6 +61,7 @@ public class Entry extends EntryBase { * Creates a new {@link Entry entry}. * * @param modify the modification function + * @return the entry */ public Entry modify(BiFunction modify) { setModify(modify); @@ -64,6 +73,7 @@ public class Entry extends EntryBase { * * @param value the value to perform a modification with * @param modify the modification function + * @return the entry */ public Entry modify(String value, BiFunction modify) { setModifyValue(value); @@ -75,6 +85,7 @@ public class Entry extends EntryBase { * Sets the new {@link java.util.Properties property} value. * * @param s The new value + * @return the entry */ public Entry set(Object s) { setNewValue(s); diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java index ad2c5d9..89b1ea0 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java @@ -49,6 +49,8 @@ public class EntryBase { /** * Returns the calculation function. + * + * @return the calc function */ protected IntFunction getCalc() { return calc; @@ -56,6 +58,8 @@ public class EntryBase { /** * Returns the default value. + * + * @return the default value */ protected Object getDefaultValue() { return defaultValue; @@ -63,6 +67,8 @@ public class EntryBase { /** * Returns the key of the {@link java.util.Properties property}. + * + * @return the key */ protected String getKey() { return key; @@ -70,6 +76,8 @@ public class EntryBase { /** * Returns the modify function. + * + * @return the modify function */ protected BiFunction getModify() { return modify; @@ -77,6 +85,8 @@ public class EntryBase { /** * Returns the value to be used in the {@link #modify} function. + * + * @return the modify value */ protected String getModifyValue() { return modifyValue; @@ -84,6 +94,8 @@ public class EntryBase { /** * Returns the new value to set the {@link java.util.Properties property)} to. + * + * @return the new value */ public Object getNewValue() { return newValue; @@ -91,6 +103,8 @@ public class EntryBase { /** * Returns the pattern. + * + * @return the pattern */ protected String getPattern() { return pattern; @@ -98,6 +112,8 @@ public class EntryBase { /** * Returns the {@link EntryDate.Units unit}. + * + * @return the unit */ protected EntryDate.Units getUnit() { return unit; @@ -105,6 +121,8 @@ public class EntryBase { /** * Returns {@code true} if the {@link java.util.Properties property} is to be deleted. + * + * @return {@code true} or {@code false} */ protected boolean isDelete() { return isDelete; @@ -114,6 +132,7 @@ public class EntryBase { * Sets the key of the {@link java.util.Properties property}. * * @param key the {@link java.util.Properties property} key + * @return this instance */ @SuppressWarnings("unused") public EntryBase key(String key) { @@ -123,6 +142,8 @@ public class EntryBase { /** * Sets the calculation function. + * + * @param calc the calc function */ protected void setCalc(IntFunction calc) { this.calc = calc; @@ -139,6 +160,8 @@ public class EntryBase { /** * Sets whether the {@link java.util.Properties property} should be deleted. + * + * @param delete {@code true} or {@code false} */ protected void setDelete(boolean delete) { isDelete = delete; @@ -155,6 +178,8 @@ public class EntryBase { /** * Sets the modify function. + * + * @param modify the modify function */ protected void setModify(BiFunction modify) { this.modify = modify; @@ -163,7 +188,8 @@ public class EntryBase { /** * Sets the modify function. * - * @param value the value to perform a modification with + * @param value the value to perform a modification with + * @param modify the modify function */ protected void setModify(String value, BiFunction modify) { this.modifyValue = value; diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java index 7a0beeb..d1d3dc4 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java @@ -41,6 +41,7 @@ public class EntryDate extends EntryBase { * Creates a new {@link EntryDate entry}. * * @param calc the calculation function + * @return this instance */ public EntryDate calc(IntFunction calc) { setCalc(calc); @@ -49,6 +50,8 @@ public class EntryDate extends EntryBase { /** * Sets the {@link EntryDate entry} up for deletion. + * + * @return this instance */ public EntryDate delete() { setDelete(true); @@ -57,6 +60,8 @@ public class EntryDate extends EntryBase { /** * Sets the new {@link java.util.Properties property} value to now. + * + * @return this instance */ public EntryDate now() { setNewValue("now"); @@ -68,6 +73,7 @@ public class EntryDate extends EntryBase { * {@link java.time.format.DateTimeFormatter DateTimeFormatter} respectively. * * @param pattern the pattern + * @return this instance */ public EntryDate pattern(String pattern) { setPattern(pattern); @@ -78,6 +84,7 @@ public class EntryDate extends EntryBase { * Sets the new {@link java.util.Properties property} value to an {@link Instant} * * @param instant the {@link Instant} to set the value to + * @return this instance */ public EntryDate set(Instant instant) { setNewValue(instant); @@ -88,6 +95,7 @@ public class EntryDate extends EntryBase { * Sets the new {@link java.util.Properties property} value to a {@link LocalDate} * * @param date the {@link LocalDate} to set the value to + * @return this instance */ public EntryDate set(LocalDate date) { setNewValue(date); @@ -98,6 +106,7 @@ public class EntryDate extends EntryBase { * Sets the new {@link java.util.Properties property} value to a {@link LocalDateTime} * * @param date the {@link LocalDateTime} to set the value to + * @return this instance */ public EntryDate set(LocalDateTime date) { setNewValue(date); @@ -108,6 +117,7 @@ public class EntryDate extends EntryBase { * Sets the new {@link java.util.Properties property} value to a {@link ZonedDateTime} * * @param date the {@link ZonedDateTime} to set the value to + * @return this instance */ public EntryDate set(ZonedDateTime date) { setNewValue(date); @@ -118,6 +128,7 @@ public class EntryDate extends EntryBase { * Sets the new {@link java.util.Properties property} value to a {@link LocalTime} * * @param time the {@link LocalTime} to set the value to + * @return this instance */ public EntryDate set(LocalTime time) { setNewValue(time); @@ -128,6 +139,7 @@ public class EntryDate extends EntryBase { * Sets the new {@link java.util.Properties property} value to a {@link Calendar} * * @param cal the {@link Calendar} to set the value to + * @return this instance */ public EntryDate set(Calendar cal) { setNewValue(cal); @@ -138,6 +150,7 @@ public class EntryDate extends EntryBase { * Sets the new {@link java.util.Properties property} value to a {@link Date} * * @param date the {@link Date} to set the value to + * @return this instance */ public EntryDate set(Date date) { setNewValue(date); @@ -148,6 +161,7 @@ public class EntryDate extends EntryBase { * Sets the {@link Units unit} value to apply to calculations for {@link EntryDate}. * * @param unit the {@link Units unit} + * @return this instance */ public EntryDate unit(Units unit) { setUnit(unit); @@ -168,6 +182,33 @@ public class EntryDate extends EntryBase { * */ public enum Units { - SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR + /** + * Second units. + */ + SECOND, + /** + * Minute units. + */ + MINUTE, + /** + * Hour units. + */ + HOUR, + /** + * Day units. + */ + DAY, + /** + * Week units. + */ + WEEK, + /** + * Month units. + */ + MONTH, + /** + * Year units. + */ + YEAR } } diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java index 88d7dfa..db0b81d 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java @@ -38,6 +38,7 @@ public class EntryInt extends EntryBase { * Creates a new {@link EntryInt entry}. * * @param calc the calculation function. + * @return this instance */ public EntryInt calc(IntFunction calc) { setCalc(calc); @@ -48,6 +49,7 @@ public class EntryInt extends EntryBase { * Sets the initial value to set the {@link java.util.Properties property} to, if not already defined. * * @param defaultValue the default value + * @return this instance */ @SuppressWarnings("unused") public EntryInt defaultValue(Object defaultValue) { @@ -57,6 +59,8 @@ public class EntryInt extends EntryBase { /** * Sets the {@link EntryInt entry} up for deletion. + * + * @return this instance */ public EntryInt delete() { setDelete(true); @@ -67,6 +71,7 @@ public class EntryInt extends EntryBase { * Sets the new {@link java.util.Properties property} value to an integer. * * @param i The integer to set the value to + * @return this instance */ public EntryInt set(int i) { setNewValue(i); diff --git a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java index 725e22f..5f330a0 100644 --- a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java +++ b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java @@ -41,6 +41,7 @@ public class PropertyFileOperation extends AbstractOperation Date: Tue, 30 Jan 2024 23:43:17 -0800 Subject: [PATCH 21/74] Updated copyright --- .idea/copyright/Apache_License.xml | 4 +- .idea/intellij-javadocs-4.0.1.xml | 141 ++++++++++++++++++ .../rife/bld/extension/propertyfile/Calc.java | 2 +- .../bld/extension/propertyfile/Entry.java | 2 +- .../bld/extension/propertyfile/EntryBase.java | 2 +- .../bld/extension/propertyfile/EntryDate.java | 2 +- .../bld/extension/propertyfile/EntryInt.java | 2 +- .../propertyfile/PropertyFileOperation.java | 2 +- .../propertyfile/PropertyFileUtils.java | 2 +- .../propertyfile/PropertyFileUtilsTest.java | 4 +- 10 files changed, 152 insertions(+), 11 deletions(-) create mode 100644 .idea/intellij-javadocs-4.0.1.xml diff --git a/.idea/copyright/Apache_License.xml b/.idea/copyright/Apache_License.xml index 15687f4..ade80da 100644 --- a/.idea/copyright/Apache_License.xml +++ b/.idea/copyright/Apache_License.xml @@ -1,6 +1,6 @@ - - \ No newline at end of file +
diff --git a/.idea/intellij-javadocs-4.0.1.xml b/.idea/intellij-javadocs-4.0.1.xml new file mode 100644 index 0000000..e537645 --- /dev/null +++ b/.idea/intellij-javadocs-4.0.1.xml @@ -0,0 +1,141 @@ + + + + + UPDATE + false + true + + METHOD + FIELD + TYPE + + + PUBLIC + DEFAULT + PROTECTED + + + + + + ^.*(public|protected|private)*.+interface\s+\w+.* + /**\n + * The interface ${name}.\n +<#if element.typeParameters?has_content> * \n +</#if><#list element.typeParameters as typeParameter> * @param <${typeParameter.name}> the type parameter\n +</#list> */ + + + ^.*(public|protected|private)*.+enum\s+\w+.* + /**\n + * The enum ${name}.\n + */ + + + ^.*(public|protected|private)*.+class\s+\w+.* + /**\n + * The type ${name}.\n +<#if element.typeParameters?has_content> * \n +</#if><#list element.typeParameters as typeParameter> * @param <${typeParameter.name}> the type parameter\n +</#list> */ + + + .+ + /**\n + * The type ${name}.\n + */ + + + + + .+ + /**\n + * Instantiates a new ${name}.\n +<#if element.parameterList.parameters?has_content> *\n +</#if><#list element.parameterList.parameters as parameter> * @param ${parameter.name} the ${paramNames[parameter.name]}\n +</#list><#if element.throwsList.referenceElements?has_content> *\n +</#if><#list element.throwsList.referenceElements as exception> * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n +</#list> */ + + + + + ^.*(public|protected|private)*\s*.*(\w(\s*<.+>)*)+\s+get\w+\s*\(.*\).+ + /**\n + * Gets ${partName}.\n +<#if element.typeParameters?has_content> * \n +</#if><#list element.typeParameters as typeParameter> * @param <${typeParameter.name}> the type parameter\n +</#list><#if element.parameterList.parameters?has_content> *\n +</#if><#list element.parameterList.parameters as parameter> * @param ${parameter.name} the ${paramNames[parameter.name]}\n +</#list><#if isNotVoid> *\n + * @return the ${partName}\n +</#if><#if element.throwsList.referenceElements?has_content> *\n +</#if><#list element.throwsList.referenceElements as exception> * @throws ${exception.referenceName} if an error occurs\n +</#list> */ + + + ^.*(public|protected|private)*\s*.*(void|\w(\s*<.+>)*)+\s+set\w+\s*\(.*\).+ + /**\n + * Sets ${partName}.\n +<#if element.typeParameters?has_content> * \n +</#if><#list element.typeParameters as typeParameter> * @param <${typeParameter.name}> the type parameter\n +</#list><#if element.parameterList.parameters?has_content> *\n +</#if><#list element.parameterList.parameters as parameter> * @param ${parameter.name} the ${paramNames[parameter.name]}\n +</#list><#if isNotVoid> *\n + * @return the ${partName}\n +</#if><#if element.throwsList.referenceElements?has_content> *\n +</#if><#list element.throwsList.referenceElements as exception> * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n +</#list> */ + + + ^.*((public\s+static)|(static\s+public))\s+void\s+main\s*\(\s*String\s*(\[\s*\]|\.\.\.)\s+\w+\s*\).+ + /**\n + * The entry point of application.\n + + <#if element.parameterList.parameters?has_content> *\n +</#if> * @param ${element.parameterList.parameters[0].name} the input arguments\n +<#if element.throwsList.referenceElements?has_content> *\n +</#if><#list element.throwsList.referenceElements as exception> * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n +</#list> */ + + + .+ + /**\n + * ${name}<#if isNotVoid> ${return}</#if>.\n +<#if element.typeParameters?has_content> * \n +</#if><#list element.typeParameters as typeParameter> * @param <${typeParameter.name}> the type parameter\n +</#list><#if element.parameterList.parameters?has_content> *\n +</#if><#list element.parameterList.parameters as parameter> * @param ${parameter.name} the ${paramNames[parameter.name]}\n +</#list><#if isNotVoid> *\n + * @return the ${return}\n +</#if><#if element.throwsList.referenceElements?has_content> *\n +</#if><#list element.throwsList.referenceElements as exception> * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n +</#list> */ + + + + + ^.*(public|protected|private)*.+static.*(\w\s\w)+.+ + /**\n + * The constant ${element.getName()}.\n + */ + + + ^.*(public|protected|private)*.*(\w\s\w)+.+ + /**\n + <#if element.parent.isInterface()> * The constant ${element.getName()}.\n +<#else> * The ${name}.\n +</#if> */ + + + .+ + /**\n + <#if element.parent.isEnum()> *${name} ${typeName}.\n +<#else> * The ${name}.\n +</#if>*/ + + + + + \ No newline at end of file diff --git a/src/main/java/rife/bld/extension/propertyfile/Calc.java b/src/main/java/rife/bld/extension/propertyfile/Calc.java index 66bff61..3f17e67 100644 --- a/src/main/java/rife/bld/extension/propertyfile/Calc.java +++ b/src/main/java/rife/bld/extension/propertyfile/Calc.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/main/java/rife/bld/extension/propertyfile/Entry.java b/src/main/java/rife/bld/extension/propertyfile/Entry.java index e737c82..816ce21 100644 --- a/src/main/java/rife/bld/extension/propertyfile/Entry.java +++ b/src/main/java/rife/bld/extension/propertyfile/Entry.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java index 89b1ea0..b381b0f 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java index d1d3dc4..4d7fba3 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java index db0b81d..753d3e7 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java index 5f330a0..e01cb11 100644 --- a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java +++ b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/main/java/rife/bld/extension/propertyfile/PropertyFileUtils.java b/src/main/java/rife/bld/extension/propertyfile/PropertyFileUtils.java index b76dec7..feb1603 100644 --- a/src/main/java/rife/bld/extension/propertyfile/PropertyFileUtils.java +++ b/src/main/java/rife/bld/extension/propertyfile/PropertyFileUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/test/java/rife/bld/extension/propertyfile/PropertyFileUtilsTest.java b/src/test/java/rife/bld/extension/propertyfile/PropertyFileUtilsTest.java index 19eb746..d64e767 100644 --- a/src/test/java/rife/bld/extension/propertyfile/PropertyFileUtilsTest.java +++ b/src/test/java/rife/bld/extension/propertyfile/PropertyFileUtilsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -272,4 +272,4 @@ class PropertyFileUtilsTest { assertThatCode(() -> PropertyFileUtils.warn("command", t, new Exception(t), false)) .as("failOnWarning = false").doesNotThrowAnyException(); } -} \ No newline at end of file +} From d5d1b64038453246c9b6126a66831b4fa61d37a6 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 30 Jan 2024 23:43:37 -0800 Subject: [PATCH 22/74] Bumped bld to 1.8.0 --- .idea/libraries/bld.xml | 4 ++-- README.md | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/lib/bld/bld-wrapper.jar | Bin 27321 -> 27293 bytes examples/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.jar | Bin 27321 -> 27293 bytes lib/bld/bld-wrapper.properties | 2 +- .../propertyfile/PropertyFileBuild.java | 6 +++--- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index ca84ff0..bff4f62 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/README.md b/README.md index 70843fa..55f4d8d 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.7.3-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/1.8.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-property-file/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-property-file) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-property-file/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-property-file) [![GitHub CI](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml) diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 886a133..e4de1cc 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 9b4ee525623a91d7c5609240a8ec7bf03c5e92e0..cc3d9e7d9368f955647964970438101c20454116 100644 GIT binary patch delta 25301 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
HXX6M1JE}Tj-DLwmxQHo2C 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 diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index f16131d..2f8d31f 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -3,4 +3,4 @@ bld.extension=com.uwyn.rife2:bld-property-file:0.9.4-SNAPSHOT bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadExtensionSources=true bld.downloadLocation= -bld.version=1.7.5 +bld.version=1.8.0 diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 9b4ee525623a91d7c5609240a8ec7bf03c5e92e0..cc3d9e7d9368f955647964970438101c20454116 100644 GIT binary patch delta 25301 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 diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 5617ae3..434598f 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -4,4 +4,4 @@ bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.4 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.1 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= -bld.version=1.7.5 +bld.version=1.8.0 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index 5b75edb..71f5ed8 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,9 +45,9 @@ public class PropertyFileBuild extends Project { repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(compile) - .include(dependency("com.uwyn.rife2", "bld", version(1, 7, 5))); + .include(dependency("com.uwyn.rife2", "bld", version(1, 8, 0))); scope(test) - .include(dependency("org.jsoup", "jsoup", version(1, 16, 2))) + .include(dependency("org.jsoup", "jsoup", version(1, 17, 2))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1))) .include(dependency("org.assertj:assertj-joda-time:2.2.0")); From accae48297a4bdfbe9a7a1d30f17917144da992d Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 30 Jan 2024 23:52:04 -0800 Subject: [PATCH 23/74] Version 0.9.4 --- examples/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.properties | 4 ++-- .../rife/bld/extension/propertyfile/PropertyFileBuild.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 2f8d31f..f7cc56c 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,5 +1,5 @@ #Sun Apr 02 10:32:44 PDT 2023 -bld.extension=com.uwyn.rife2:bld-property-file:0.9.4-SNAPSHOT +bld.extension=com.uwyn.rife2:bld-property-file:0.9.4 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadExtensionSources=true bld.downloadLocation= diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 434598f..a0e88df 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.4 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.1 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.5 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.2 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.8.0 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index 71f5ed8..6967b11 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -37,7 +37,7 @@ public class PropertyFileBuild extends Project { public PropertyFileBuild() { pkg = "rife.bld.extension"; name = "bld-property-file"; - version = version(0, 9, 4, "SNAPSHOT"); + version = version(0, 9, 4); javaRelease = 17; downloadSources = true; From ea19c6b822e5f8c566190ea269a2885e59b1abf3 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 25 Feb 2024 18:53:27 -0800 Subject: [PATCH 24/74] Improved Visual Studio Code support --- .vscode/launch.json | 6 ------ .vscode/settings.json | 10 +++++----- examples/.vscode/launch.json | 13 ------------- examples/.vscode/settings.json | 10 +++++----- 4 files changed, 10 insertions(+), 29 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index d4838b5..2d63b46 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,12 +1,6 @@ { "version": "0.2.0", "configurations": [ - { - "type": "java", - "name": "Run Main", - "request": "launch", - "mainClass": "rife.bld.extension.propertyfile.PropertyFileOperation" - }, { "type": "java", "name": "Run Tests", diff --git a/.vscode/settings.json b/.vscode/settings.json index 5dd7145..74ba820 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,13 +3,13 @@ "src/main/java", "src/main/resources", "src/test/java", - "src/bld/java" + "src/test/resources", + "src/bld/java", + "src/bld/resources" ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}bld-1.7.0-SNAPSHOT.jar", - "lib/compile/*.jar", - "lib/runtime/*.jar", - "lib/test/*.jar" + "${HOME}/.bld/dist/bld-1.8.0.jar", + "lib/**/*.jar" ] } diff --git a/examples/.vscode/launch.json b/examples/.vscode/launch.json index 6a94475..d8eb2e0 100644 --- a/examples/.vscode/launch.json +++ b/examples/.vscode/launch.json @@ -1,19 +1,6 @@ { "version": "0.2.0", "configurations": [ - { - "type": "java", - "name": "PropertyFileExampleBuild", - "request": "launch", - "mainClass": "com.example.PropertyFileExampleBuild", - "projectName": "examples_dbdc9d4b" - }, - { - "type": "java", - "name": "Run Main", - "request": "launch", - "mainClass": "com.example.PropertyFileExampleMain" - }, { "type": "java", "name": "Run Tests", diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 5ae2eaa..74ba820 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -3,13 +3,13 @@ "src/main/java", "src/main/resources", "src/test/java", - "src/bld/java" + "src/test/resources", + "src/bld/java", + "src/bld/resources" ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}bld-1.7.0.jar", - "lib/compile/*.jar", - "lib/runtime/*.jar", - "lib/test/*.jar" + "${HOME}/.bld/dist/bld-1.8.0.jar", + "lib/**/*.jar" ] } From d315ebc5518806cf3dcd88abdddcc1630c437db4 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 25 Feb 2024 18:53:41 -0800 Subject: [PATCH 25/74] Bumped JUnit versions --- .../bld/java/com/example/PropertyFileExampleBuild.java | 8 +++++--- .../bld/extension/propertyfile/PropertyFileBuild.java | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java index a1a14a7..8b8ffca 100644 --- a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java +++ b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java @@ -35,13 +35,15 @@ public class PropertyFileExampleBuild extends Project { version = version(0, 1, 0); javaRelease = 17; + downloadSources = true; autoDownloadPurge = true; + repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(test) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1))); + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))); } public static void main(String[] args) { @@ -120,4 +122,4 @@ public class PropertyFileExampleBuild extends Project { .entry(buildDateEntry.delete()) .execute(); } -} \ No newline at end of file +} diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index 6967b11..5d86e6e 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -37,7 +37,7 @@ public class PropertyFileBuild extends Project { public PropertyFileBuild() { pkg = "rife.bld.extension"; name = "bld-property-file"; - version = version(0, 9, 4); + version = version(0, 9, 5, "SNAPSHOT"); javaRelease = 17; downloadSources = true; @@ -48,8 +48,8 @@ public class PropertyFileBuild extends Project { .include(dependency("com.uwyn.rife2", "bld", version(1, 8, 0))); scope(test) .include(dependency("org.jsoup", "jsoup", version(1, 17, 2))) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))) .include(dependency("org.assertj:assertj-joda-time:2.2.0")); javadocOperation() From 95147aa7daec2d6760dcf45c0b6e19981b160f5f Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 26 Feb 2024 02:56:27 -0800 Subject: [PATCH 26/74] Bumped to bld 1.9.0 --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- README.md | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 27293 -> 27319 bytes examples/lib/bld/bld-wrapper.properties | 4 ++-- lib/bld/bld-wrapper.jar | Bin 27293 -> 27319 bytes lib/bld/bld-wrapper.properties | 8 ++++---- .../propertyfile/PropertyFileBuild.java | 4 ++-- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index bff4f62..0b615c1 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 74ba820..9e8368e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.8.0.jar", + "${HOME}/.bld/dist/bld-1.9.0.jar", "lib/**/*.jar" ] } diff --git a/README.md b/README.md index 55f4d8d..5792009 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.8.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/1.9.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-property-file/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-property-file) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-property-file/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-property-file) [![GitHub CI](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml) diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index e4de1cc..4906dbe 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 74ba820..9e8368e 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.8.0.jar", + "${HOME}/.bld/dist/bld-1.9.0.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index cc3d9e7d9368f955647964970438101c20454116..e63713531201055d2d5d71dfd5204bbdd65996a0 100644 GIT binary patch delta 25244 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

^*a+>tbBpHE+pL~3DbtKbopH&MqggYR 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 diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index f7cc56c..01f14fc 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ #Sun Apr 02 10:32:44 PDT 2023 -bld.extension=com.uwyn.rife2:bld-property-file:0.9.4 +bld.extension=com.uwyn.rife2:bld-property-file:0.9.5 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadExtensionSources=true bld.downloadLocation= -bld.version=1.8.0 +bld.version=1.9.0 diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index cc3d9e7d9368f955647964970438101c20454116..e63713531201055d2d5d71dfd5204bbdd65996a0 100644 GIT binary patch delta 25244 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

Sets the initial value to set the {@link java.util.Properties property} to, if not already defined.

+ * Returns the modify function. * - * @param defaultValue the default value - * @return the entry + * @return the modify function */ - @SuppressWarnings("unused") - public Entry defaultValue(Object defaultValue) { - setDefaultValue(defaultValue); - return this; + protected BiFunction modify() { + return modify_; } /** - * Sets the {@link Entry entry} up for deletion. + * Sets the modify function. * - * @return the entry - */ - public Entry delete() { - setDelete(); - return this; - } - - /** - * Creates a new {@link Entry entry}. - * - * @param modify the modification function - * @return the entry + * @param modify the modify function */ public Entry modify(BiFunction modify) { - setModify(modify); + modify_ = modify; return this; } /** - * Creates a new {@link Entry entry}. + * Sets the modify function. * * @param value the value to perform a modification with - * @param modify the modification function - * @return the entry + * @param modify the modify function */ public Entry modify(String value, BiFunction modify) { - setModifyValue(value); - setModify(modify); + modifyValue_ = value; + modify_ = modify; return this; } + /** + * Returns the value to be used in the {@link #modify_} function. + * + * @return the modify value + */ + protected String modifyValue() { + return modifyValue_; + } + /** * Sets the new {@link java.util.Properties property} value. * @@ -88,7 +85,7 @@ public class Entry extends EntryBase { * @return the entry */ public Entry set(Object s) { - setNewValue(s); + newValue(s); return this; } } diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java index b724ed3..ca193b1 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java @@ -16,7 +16,6 @@ package rife.bld.extension.propertyfile; -import java.util.function.BiFunction; import java.util.function.IntFunction; /** @@ -26,17 +25,14 @@ import java.util.function.IntFunction; * @author Geert Bevin * @since 1.0 */ -@SuppressWarnings("PMD.DataClass") -public class EntryBase { +@SuppressWarnings({"unchecked", "PMD.AbstractClassWithoutAbstractMethod"}) +public abstract class EntryBase { private IntFunction calc_; private Object defaultValue_; private boolean isDelete_; private String key_; - private String modifyValue_ = ""; - private BiFunction modify_; private Object newValue_; - private String pattern_ = ""; - private EntryDate.Units unit_ = EntryDate.Units.DAY; + private Object pattern_; /** * Creates a new {@link EntryBase entry}. @@ -52,71 +48,45 @@ public class EntryBase { * * @return the calc function */ - protected IntFunction getCalc() { + protected IntFunction calc() { return calc_; } + /** + * Sets the calculation function. + * + * @param calc the calc function + */ + public T calc(IntFunction calc) { + calc_ = calc; + return (T) this; + } + /** * Returns the default value. * * @return the default value */ - protected Object getDefaultValue() { + protected Object defaultValue() { return defaultValue_; } /** - * Returns the key of the {@link java.util.Properties property}. + * Sets the initial value to set the {@link java.util.Properties property} to, if not already defined. * - * @return the key + * @param defaultValue the default value */ - protected String getKey() { - return key_; + public T defaultValue(Object defaultValue) { + defaultValue_ = defaultValue; + return (T) this; } /** - * Returns the modify function. - * - * @return the modify function + * Indicates that the {@link java.util.Properties property} is to be deleted. */ - protected BiFunction getModify() { - return modify_; - } - - /** - * Returns the value to be used in the {@link #modify_} function. - * - * @return the modify value - */ - protected String getModifyValue() { - return modifyValue_; - } - - /** - * Returns the new value to set the {@link java.util.Properties property)} to. - * - * @return the new value - */ - public Object getNewValue() { - return newValue_; - } - - /** - * Returns the pattern. - * - * @return the pattern - */ - protected String getPattern() { - return pattern_; - } - - /** - * Returns the {@link EntryDate.Units unit}. - * - * @return the unit - */ - protected EntryDate.Units getUnit() { - return unit_; + public T delete() { + isDelete_ = true; + return (T) this; } /** @@ -128,79 +98,33 @@ public class EntryBase { return isDelete_; } + /** + * Returns the key of the {@link java.util.Properties property}. + * + * @return the key + */ + protected String key() { + return key_; + } + /** * Sets the key of the {@link java.util.Properties property}. * * @param key the {@link java.util.Properties property} key * @return this instance */ - @SuppressWarnings("unused") - public EntryBase key(String key) { + public T key(String key) { key_ = key; - return this; + return (T) this; } /** - * Sets the calculation function. + * Returns the new value to set the {@link java.util.Properties property)} to. * - * @param calc the calc function + * @return the new value */ - protected void setCalc(IntFunction calc) { - calc_ = calc; - } - - /** - * Sets the initial value to set the {@link java.util.Properties property} to, if not already defined. - * - * @param defaultValue the default value - */ - protected void setDefaultValue(Object defaultValue) { - defaultValue_ = defaultValue; - } - - /** - * Sets the {@link java.util.Properties property} to be deleted. - */ - protected void setDelete() { - isDelete_ = true; - } - - /** - * Sets the key of the {@link java.util.Properties property}. - * - * @param key the {@link java.util.Properties property} key - */ - protected void setKey(String key) { - key_ = key; - } - - /** - * Sets the modify function. - * - * @param modify the modify function - */ - protected void setModify(BiFunction modify) { - modify_ = modify; - } - - /** - * Sets the modify function. - * - * @param value the value to perform a modification with - * @param modify the modify function - */ - protected void setModify(String value, BiFunction modify) { - modifyValue_ = value; - modify_ = modify; - } - - /** - * Sets the modify value. - * - * @param value the modify value. - */ - protected void setModifyValue(String value) { - modifyValue_ = value; + protected Object newValue() { + return newValue_; } /** @@ -208,26 +132,26 @@ public class EntryBase { * * @param newValue the new value */ - public void setNewValue(Object newValue) { + protected void newValue(Object newValue) { newValue_ = newValue; } /** - * Sets the {@link java.text.DecimalFormat DecimalFormat} or {@link java.time.format.DateTimeFormatter DateTimeFormatter} - * pattern to be used with {@link EntryDate} or {@link EntryInt} respectively. + * Returns the pattern. * - * @param pattern the pattern + * @return the pattern */ - protected void setPattern(String pattern) { - pattern_ = pattern; + protected Object pattern() { + return pattern_; } /** - * Sets the {@link EntryDate.Units unit} value to apply to calculations. + * Sets the {@link java.util.Formatter} pattern. * - * @param unit the {@link EntryDate.Units unit} + * @param pattern the pattern */ - protected void setUnit(EntryDate.Units unit) { - unit_ = unit; + public T pattern(Object pattern) { + pattern_ = pattern; + return (T) this; } } diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java index a25b0e1..0a93745 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java @@ -19,7 +19,6 @@ package rife.bld.extension.propertyfile; import java.time.*; import java.util.Calendar; import java.util.Date; -import java.util.function.IntFunction; /** * Declares the modifications to be made to a {@link java.util.Properties Date-based property}. @@ -27,9 +26,11 @@ import java.util.function.IntFunction; * @author Erik C. Thauvin * @since 1.0 */ -public class EntryDate extends EntryBase { +public class EntryDate extends EntryBase { + private EntryDate.Units unit_ = EntryDate.Units.DAY; + /** - * Creates a new date {@link Entry entry}. + * Creates a new {@link EntryDate entry}. * * @param key the required property key */ @@ -37,46 +38,13 @@ public class EntryDate extends EntryBase { super(key); } - /** - * Creates a new {@link EntryDate entry}. - * - * @param calc the calculation function - * @return this instance - */ - public EntryDate calc(IntFunction calc) { - setCalc(calc); - return this; - } - - /** - * Sets the {@link EntryDate entry} up for deletion. - * - * @return this instance - */ - public EntryDate delete() { - setDelete(); - return this; - } - /** * Sets the new {@link java.util.Properties property} value to now. * * @return this instance */ public EntryDate now() { - setNewValue("now"); - return this; - } - - /** - * Sets the pattern for {@link EntryInt} and {@link EntryDate} to{@link java.text.DecimalFormat DecimalFormat} and - * {@link java.time.format.DateTimeFormatter DateTimeFormatter} respectively. - * - * @param pattern the pattern - * @return this instance - */ - public EntryDate pattern(String pattern) { - setPattern(pattern); + newValue("now"); return this; } @@ -87,7 +55,7 @@ public class EntryDate extends EntryBase { * @return this instance */ public EntryDate set(Instant instant) { - setNewValue(instant); + newValue(instant); return this; } @@ -98,7 +66,7 @@ public class EntryDate extends EntryBase { * @return this instance */ public EntryDate set(LocalDate date) { - setNewValue(date); + newValue(date); return this; } @@ -109,7 +77,7 @@ public class EntryDate extends EntryBase { * @return this instance */ public EntryDate set(LocalDateTime date) { - setNewValue(date); + newValue(date); return this; } @@ -120,7 +88,7 @@ public class EntryDate extends EntryBase { * @return this instance */ public EntryDate set(ZonedDateTime date) { - setNewValue(date); + newValue(date); return this; } @@ -131,7 +99,7 @@ public class EntryDate extends EntryBase { * @return this instance */ public EntryDate set(LocalTime time) { - setNewValue(time); + newValue(time); return this; } @@ -142,7 +110,7 @@ public class EntryDate extends EntryBase { * @return this instance */ public EntryDate set(Calendar cal) { - setNewValue(cal); + newValue(cal); return this; } @@ -153,10 +121,19 @@ public class EntryDate extends EntryBase { * @return this instance */ public EntryDate set(Date date) { - setNewValue(date); + newValue(date); return this; } + /** + * Returns the {@link EntryDate.Units unit}. + * + * @return the unit + */ + public EntryDate.Units unit() { + return unit_; + } + /** * Sets the {@link Units unit} value to apply to calculations for {@link EntryDate}. * @@ -164,7 +141,17 @@ public class EntryDate extends EntryBase { * @return this instance */ public EntryDate unit(Units unit) { - setUnit(unit); + unit_ = unit; + return this; + } + + /** + * Sets the {@link java.time.format.DateTimeFormatter DateTimeFormatter} pattern. + * + * @param pattern the pattern + */ + public EntryDate pattern(String pattern) { + super.pattern(pattern); return this; } diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java index 54226f4..896bbf1 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java @@ -16,17 +16,15 @@ package rife.bld.extension.propertyfile; -import java.util.function.IntFunction; - /** * Declares the modifications to be made to an {@link java.util.Properties Integer-based property}. * * @author Erik C. Thauvin * @since 1.0 */ -public class EntryInt extends EntryBase { +public class EntryInt extends EntryBase { /** - * Creates a new date {@link Entry entry}. + * Creates a new {@link EntryInt entry}. * * @param key the required property key */ @@ -34,39 +32,6 @@ public class EntryInt extends EntryBase { super(key); } - /** - * Creates a new {@link EntryInt entry}. - * - * @param calc the calculation function. - * @return this instance - */ - public EntryInt calc(IntFunction calc) { - setCalc(calc); - return this; - } - - /** - * Sets the initial value to set the {@link java.util.Properties property} to, if not already defined. - * - * @param defaultValue the default value - * @return this instance - */ - @SuppressWarnings("unused") - public EntryInt defaultValue(Object defaultValue) { - setDefaultValue(defaultValue); - return this; - } - - /** - * Sets the {@link EntryInt entry} up for deletion. - * - * @return this instance - */ - public EntryInt delete() { - setDelete(); - return this; - } - /** * Sets the new {@link java.util.Properties property} value to an integer. * @@ -74,7 +39,17 @@ public class EntryInt extends EntryBase { * @return this instance */ public EntryInt set(int i) { - setNewValue(i); + newValue(i); + return this; + } + + /** + * Sets the {@link java.text.DecimalFormat DecimalFormat} pattern. + * + * @param pattern the pattern + */ + public EntryInt pattern(String pattern) { + super.pattern(pattern); return this; } } diff --git a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java index 0ecf5d7..c86204e 100644 --- a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java +++ b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java @@ -18,11 +18,14 @@ package rife.bld.extension.propertyfile; import rife.bld.BaseProject; import rife.bld.operations.AbstractOperation; +import rife.bld.operations.exceptions.ExitStatusException; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Properties; +import java.util.logging.Level; +import java.util.logging.Logger; /** * Creates or applies edits to a {@link Properties Properties} file. @@ -31,7 +34,8 @@ import java.util.Properties; * @since 1.0 */ public class PropertyFileOperation extends AbstractOperation { - private final List entries_ = new ArrayList<>(); + private final static Logger LOGGER = Logger.getLogger(PropertyFileOperation.class.getName()); + private final List> entries_ = new ArrayList<>(); private String comment_ = ""; private boolean failOnWarning_; private File file_; @@ -55,8 +59,7 @@ public class PropertyFileOperation extends AbstractOperation entry) { entries_.add(entry); return this; } @@ -66,38 +69,49 @@ public class PropertyFileOperation extends AbstractOperation Date: Tue, 16 Jul 2024 16:09:21 -0700 Subject: [PATCH 39/74] Added pattern option for String-based entries --- README.md | 13 +- .../propertyfile/PropertyFileUtils.java | 161 +++++++-------- .../propertyfile/PropertyFileUtilsTest.java | 194 +++++++++--------- 3 files changed, 181 insertions(+), 187 deletions(-) diff --git a/README.md b/README.md index 2f550f9..af8b28a 100755 --- a/README.md +++ b/README.md @@ -69,12 +69,13 @@ The [PropertyFileOperation](https://rife2.github.io/bld-property-file/rife/bld/e The [Entry](https://rife2.github.io/bld-property-file/rife/bld/extension/propertyfile/Entry.html) class is used to specify modifications to a [String property](https://docs.oracle.com/javase/tutorial/essential/environment/properties.html). -| Function | Description/Example | -|:-----------------|:--------------------------------------------------------------------------------------------------------| -| `defaultValue()` | The value to be used if the property doesn't exist. | -| `delete()` | Delete the property. | -| `modify()` | `modify("-foo", String::concat)`
`modify("-foo", (v, s) -> v + s)`
`modify((v, s) -> v.trim())` | Modify an entry value. | -| `set()` | The value to set the property to, regardless of its previous value. | +| Function | Description/Example | +|:-----------------|:--------------------------------------------------------------------------------------------------------------------------------------------------| +| `defaultValue()` | The value to be used if the property doesn't exist. | +| `delete()` | Delete the property. | +| `modify()` | `modify("-foo", String::concat)`
`modify("-foo", (v, s) -> v + s)`
`modify((v, s) -> v.trim())` | +| `pattern()` | If present, will parse the value as a [Formatter](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Formatter.html) pattern. | +| `set()` | The value to set the property to, regardless of its previous value. | ## EntryDate diff --git a/src/main/java/rife/bld/extension/propertyfile/PropertyFileUtils.java b/src/main/java/rife/bld/extension/propertyfile/PropertyFileUtils.java index 6e6d513..a172ded 100644 --- a/src/main/java/rife/bld/extension/propertyfile/PropertyFileUtils.java +++ b/src/main/java/rife/bld/extension/propertyfile/PropertyFileUtils.java @@ -91,144 +91,132 @@ public final class PropertyFileUtils { return success; } + private static String objectToString(Object o) { + if (o == null) { + return ""; + } else { + return String.valueOf(o); + } + } + /** * Processes a date {@link Properties property}. * - * @param command the issuing command - * @param p the {@link Properties property} - * @param entry the {@link Entry} containing the {@link Properties property} edits - * @param failOnWarning the fail on warning - * @return the boolean - * @throws Exception the exception + * @param p the {@link Properties property} + * @param entry the {@link Entry} containing the {@link Properties property} edits + * @throws DateTimeException if a parsing error occurs */ - @SuppressWarnings({"PMD.SignatureDeclareThrowsException", "PMD.ExceptionAsFlowControl"}) - public static boolean processDate(String command, Properties p, EntryDate entry, boolean failOnWarning) - throws Exception { - var success = true; - var value = currentValue(null, entry.getDefaultValue(), entry.getNewValue()); - var pattern = entry.getPattern(); + @SuppressWarnings("PMD.ExceptionAsFlowControl") + public static void processDate(Properties p, EntryDate entry) throws IllegalArgumentException { + var currentValue = currentValue(null, entry.defaultValue(), entry.newValue()); + var pattern = objectToString(entry.pattern()); - var parsedValue = String.valueOf(value); + var dateValue = String.valueOf(currentValue); if (pattern != null && !pattern.isBlank()) { var offset = 0; - if (entry.getCalc() != null) { - offset = entry.getCalc().apply(offset); + if (entry.calc() != null) { + offset = entry.calc().apply(offset); } var dtf = DateTimeFormatter.ofPattern(pattern); - var unit = entry.getUnit(); + var unit = entry.unit(); try { - if (value instanceof String) { - if ("now".equalsIgnoreCase((String) value)) { - value = ZonedDateTime.now(); + if (currentValue instanceof String) { + if ("now".equalsIgnoreCase((String) currentValue)) { + currentValue = ZonedDateTime.now(); } else { throw new DateTimeException("Excepted: Calendar, Date or java.time."); } - } else if (value instanceof LocalDateTime) { - value = ((LocalDateTime) value).atZone(ZoneId.systemDefault()); - } else if (value instanceof Date) { - value = ((Date) value).toInstant().atZone(ZoneId.systemDefault()); - } else if (value instanceof Calendar) { - value = ((Calendar) value).toInstant().atZone(ZoneId.systemDefault()); - } else if (value instanceof Instant) { - value = ((Instant) value).atZone(ZoneId.systemDefault()); + } else if (currentValue instanceof LocalDateTime) { + currentValue = ((LocalDateTime) currentValue).atZone(ZoneId.systemDefault()); + } else if (currentValue instanceof Date) { + currentValue = ((Date) currentValue).toInstant().atZone(ZoneId.systemDefault()); + } else if (currentValue instanceof Calendar) { + currentValue = ((Calendar) currentValue).toInstant().atZone(ZoneId.systemDefault()); + } else if (currentValue instanceof Instant) { + currentValue = ((Instant) currentValue).atZone(ZoneId.systemDefault()); } - if (value instanceof LocalDate) { + if (currentValue instanceof LocalDate) { if (offset != 0) { if (unit == EntryDate.Units.DAY) { - value = ((LocalDate) value).plusDays(offset); + currentValue = ((LocalDate) currentValue).plusDays(offset); } else if (unit == EntryDate.Units.MONTH) { - value = ((LocalDate) value).plusMonths(offset); + currentValue = ((LocalDate) currentValue).plusMonths(offset); } else if (unit == EntryDate.Units.WEEK) { - value = ((LocalDate) value).plusWeeks(offset); + currentValue = ((LocalDate) currentValue).plusWeeks(offset); } else if (unit == EntryDate.Units.YEAR) { - value = ((LocalDate) value).plusYears(offset); + currentValue = ((LocalDate) currentValue).plusYears(offset); } } - parsedValue = dtf.format((LocalDate) value); - } else if (value instanceof LocalTime) { + dateValue = dtf.format((LocalDate) currentValue); + } else if (currentValue instanceof LocalTime) { if (offset != 0) { if (unit == EntryDate.Units.SECOND) { - value = ((LocalTime) value).plusSeconds(offset); + currentValue = ((LocalTime) currentValue).plusSeconds(offset); } else if (unit == EntryDate.Units.MINUTE) { - value = ((LocalTime) value).plusMinutes(offset); + currentValue = ((LocalTime) currentValue).plusMinutes(offset); } else if (unit == EntryDate.Units.HOUR) { - value = ((LocalTime) value).plusHours(offset); + currentValue = ((LocalTime) currentValue).plusHours(offset); } } - parsedValue = dtf.format((LocalTime) value); - } else if (value instanceof ZonedDateTime) { + dateValue = dtf.format((LocalTime) currentValue); + } else if (currentValue instanceof ZonedDateTime) { if (offset != 0) { if (unit == EntryDate.Units.DAY) { - value = ((ZonedDateTime) value).plusDays(offset); + currentValue = ((ZonedDateTime) currentValue).plusDays(offset); } else if (unit == EntryDate.Units.MONTH) { - value = ((ZonedDateTime) value).plusMonths(offset); + currentValue = ((ZonedDateTime) currentValue).plusMonths(offset); } else if (unit == EntryDate.Units.WEEK) { - value = ((ZonedDateTime) value).plusWeeks(offset); + currentValue = ((ZonedDateTime) currentValue).plusWeeks(offset); } else if (unit == EntryDate.Units.YEAR) { - value = ((ZonedDateTime) value).plusYears(offset); + currentValue = ((ZonedDateTime) currentValue).plusYears(offset); } else if (unit == EntryDate.Units.SECOND) { - value = ((ZonedDateTime) value).plusSeconds(offset); + currentValue = ((ZonedDateTime) currentValue).plusSeconds(offset); } else if (unit == EntryDate.Units.MINUTE) { - value = ((ZonedDateTime) value).plusMinutes(offset); + currentValue = ((ZonedDateTime) currentValue).plusMinutes(offset); } else if (unit == EntryDate.Units.HOUR) { - value = ((ZonedDateTime) value).plusHours(offset); + currentValue = ((ZonedDateTime) currentValue).plusHours(offset); } } - parsedValue = dtf.format((ZonedDateTime) value); + dateValue = dtf.format((ZonedDateTime) currentValue); } } catch (DateTimeException dte) { - warn(command, "Non-date value for \"" + entry.getKey() + "\" --> " + dte.getMessage(), - dte, failOnWarning); - success = false; + throw new IllegalArgumentException( + "Non-date value for \"" + entry.key() + "\" --> " + dte.getMessage(), dte); } } - - if (success) { - p.setProperty(entry.getKey(), parsedValue); - } - - return success; + p.setProperty(entry.key(), dateValue); } /** * Processes an integer {@link Properties property}. * - * @param command the issuing command - * @param p the {@link Properties property} - * @param entry the {@link Entry} containing the {@link Properties property} edits - * @param failOnWarning the fail on warning - * @return the boolean - * @throws Exception the exception + * @param p the {@link Properties property} + * @param entry the {@link Entry} containing the {@link Properties property} edits + * @throws NumberFormatException if a parsing error occurs */ - @SuppressWarnings("PMD.SignatureDeclareThrowsException") - public static boolean processInt(String command, Properties p, EntryInt entry, boolean failOnWarning) - throws Exception { - var success = true; + public static void processInt(Properties p, EntryInt entry) throws IllegalArgumentException { int intValue = 0; try { - var fmt = new DecimalFormat(entry.getPattern()); - var value = currentValue(p.getProperty(entry.getKey()), entry.getDefaultValue(), - entry.getNewValue()); + var fmt = new DecimalFormat(objectToString(entry.pattern())); + var currentValue = currentValue(p.getProperty(entry.key()), entry.defaultValue(), entry.newValue()); - if (value != null) { - intValue = fmt.parse(String.valueOf(value)).intValue(); + if (currentValue != null) { + intValue = fmt.parse(String.valueOf(currentValue)).intValue(); } - if (entry.getCalc() != null) { - intValue = entry.getCalc().apply(intValue); + if (entry.calc() != null) { + intValue = entry.calc().apply(intValue); } - p.setProperty(entry.getKey(), fmt.format(intValue)); + + p.setProperty(entry.key(), fmt.format(intValue)); } catch (NumberFormatException | ParseException e) { - warn(command, "Non-integer value for \"" + entry.getKey() + "\" --> " + e.getMessage(), e, - failOnWarning); - success = false; + throw new IllegalArgumentException( + "Non-integer value for \"" + entry.key() + "\" --> " + e.getMessage(), e); } - - return success; } /** @@ -236,19 +224,16 @@ public final class PropertyFileUtils { * * @param p the {@link Properties property} * @param entry the {@link Entry} containing the {@link Properties property} edits - * @return the boolean */ - @SuppressWarnings("SameReturnValue") - public static boolean processString(Properties p, Entry entry) { - var value = currentValue(p.getProperty(entry.getKey()), entry.getDefaultValue(), entry.getNewValue()); + public static void processString(Properties p, Entry entry) { + var currentValue = currentValue(p.getProperty(entry.key()), entry.defaultValue(), entry.newValue()); - p.setProperty(entry.getKey(), String.valueOf(value)); + p.setProperty(entry.key(), String.format(String.valueOf(currentValue), entry.pattern())); - if (entry.getModify() != null && entry.getModifyValue() != null) { - p.setProperty(entry.getKey(), entry.getModify().apply(p.getProperty(entry.getKey()), entry.getModifyValue())); + if (entry.modify() != null && entry.modifyValue() != null) { + var modify = entry.modify().apply(p.getProperty(entry.key()), entry.modifyValue()); + p.setProperty(entry.key(), String.format(modify, entry.pattern())); } - - return true; } /** diff --git a/src/test/java/rife/bld/extension/propertyfile/PropertyFileUtilsTest.java b/src/test/java/rife/bld/extension/propertyfile/PropertyFileUtilsTest.java index 3bce5aa..18bab05 100644 --- a/src/test/java/rife/bld/extension/propertyfile/PropertyFileUtilsTest.java +++ b/src/test/java/rife/bld/extension/propertyfile/PropertyFileUtilsTest.java @@ -17,19 +17,19 @@ package rife.bld.extension.propertyfile; import org.junit.jupiter.api.Test; +import rife.bld.operations.exceptions.ExitStatusException; import rife.tools.Localization; import java.io.File; -import java.io.IOException; import java.time.*; import java.util.Calendar; import java.util.Date; import java.util.Properties; -import static org.assertj.core.api.Assertions.assertThat; // NOPMD -import static org.assertj.core.api.Assertions.assertThatCode; // NOPMD -import static rife.bld.extension.propertyfile.Calc.ADD; // NOPMD -import static rife.bld.extension.propertyfile.Calc.SUB; // NOPMD +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; +import static rife.bld.extension.propertyfile.Calc.ADD; +import static rife.bld.extension.propertyfile.Calc.SUB; /** * PropertyFileUtilsTest class @@ -37,6 +37,7 @@ import static rife.bld.extension.propertyfile.Calc.SUB; // NOPMD * @author Erik C. Thauvin * @since 1.0 */ +@SuppressWarnings("PMD.AvoidDuplicateLiterals") class PropertyFileUtilsTest { final static int dayOfYear = LocalDate.now().getDayOfYear(); final static Properties p = new Properties(); @@ -49,7 +50,7 @@ class PropertyFileUtilsTest { public EntryDate newEntryDate() { p.clear(); - return new EntryDate("adate").pattern("D"); + return new EntryDate("aDate").pattern("D"); } public EntryInt newEntryInt() { @@ -58,40 +59,36 @@ class PropertyFileUtilsTest { } @Test - void parseDateSub() throws Exception { - var entryDate = newEntryDate(); - entryDate.setCalc(SUB); - PropertyFileUtils.processDate(t, p, entryDate.now(), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(now-3)").isEqualTo(String.valueOf(dayOfYear - 1)); + void parseDateSub() { + var entryDate = newEntryDate().calc(SUB); + PropertyFileUtils.processDate(p, entryDate.now()); + assertThat(p.getProperty(entryDate.key())).as("processDate(now-3)").isEqualTo(String.valueOf(dayOfYear - 1)); - entryDate.setCalc(v -> v - 2); - PropertyFileUtils.processDate(t, p, entryDate.now(), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(now-2)").isEqualTo(String.valueOf(dayOfYear - 2)); + entryDate.calc(v -> v - 2); + PropertyFileUtils.processDate(p, entryDate.now()); + assertThat(p.getProperty(entryDate.key())).as("processDate(now-2)").isEqualTo(String.valueOf(dayOfYear - 2)); - entryDate.setCalc(SUB); - PropertyFileUtils.processDate(t, p, entryDate.set(new Date()), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(date-1)").isEqualTo(String.valueOf(dayOfYear - 1)); + entryDate.calc(SUB); + PropertyFileUtils.processDate(p, entryDate.set(new Date())); + assertThat(p.getProperty(entryDate.key())).as("processDate(date-1)").isEqualTo(String.valueOf(dayOfYear - 1)); - entryDate.setCalc(v -> v - 2); - PropertyFileUtils.processDate(t, p, entryDate.set(Calendar.getInstance()), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(cal-2)").isEqualTo(String.valueOf(dayOfYear - 2)); + entryDate.calc(v -> v - 2); + PropertyFileUtils.processDate(p, entryDate.set(Calendar.getInstance())); + assertThat(p.getProperty(entryDate.key())).as("processDate(cal-2)").isEqualTo(String.valueOf(dayOfYear - 2)); - entryDate.setCalc(v -> v - 3); - PropertyFileUtils.processDate(t, p, entryDate.set(LocalDate.now()), - true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(LocalDate-3)").isEqualTo(String.valueOf(dayOfYear - 3)); + entryDate.calc(v -> v - 3); + PropertyFileUtils.processDate(p, entryDate.set(LocalDate.now())); + assertThat(p.getProperty(entryDate.key())).as("processDate(LocalDate-3)").isEqualTo(String.valueOf(dayOfYear - 3)); } @Test - void parseIntSubTest() throws Exception { - var entryInt = newEntryInt(); - entryInt.calc(SUB); - entryInt.setPattern("0000"); - PropertyFileUtils.processInt(t, p, entryInt.defaultValue("0017"), true); - assertThat(p.getProperty(entryInt.getKey())).as("sub(0017)").isEqualTo("0016"); + void parseIntSubTest() { + var entryInt = newEntryInt().calc(SUB).pattern("0000"); + PropertyFileUtils.processInt(p, entryInt.defaultValue("0017")); + assertThat(p.getProperty(entryInt.key())).as("sub(0017)").isEqualTo("0016"); - PropertyFileUtils.processInt(t, p, entryInt.set(16).calc(v -> v - 3), true); - assertThat(p.getProperty(entryInt.getKey())).as("sub(16)-3").isEqualTo("0013"); + PropertyFileUtils.processInt(p, entryInt.set(16).calc(v -> v - 3)); + assertThat(p.getProperty(entryInt.key())).as("sub(16)-3").isEqualTo("0013"); } @Test @@ -100,116 +97,118 @@ class PropertyFileUtilsTest { var entry = newEntry(); PropertyFileUtils.processString(p, entry.set(1)); PropertyFileUtils.processString(p, entry.modify("-foo", String::concat)); - assertThat(p.getProperty(entry.getKey())).as(String.format("processString(%s, %s)", entry.getKey(), - entry.getNewValue())).isEqualTo("1-foo"); + assertThat(p.getProperty(entry.key())).as(String.format("processString(%s, %s)", entry.key(), + entry.newValue())).isEqualTo("1-foo"); } @Test void parseStringCap() { var entry = newEntry(); PropertyFileUtils.processString(p, entry.set(t).modify("", (v, s) -> v.toUpperCase(Localization.getLocale()))); - assertThat(p.getProperty(entry.getKey())).as("capitalize").isEqualTo(t.toUpperCase(Localization.getLocale())); + assertThat(p.getProperty(entry.key())).as("capitalize").isEqualTo(t.toUpperCase(Localization.getLocale())); } @Test void parseStringCat() { var entry = newEntry(); - entry.set(t).setModify("-foo", String::concat); + entry.set(t).modify("-foo", String::concat); PropertyFileUtils.processString(p, entry); - assertThat(p.getProperty(entry.getKey())).as("replace").isEqualTo(t + "-foo"); + assertThat(p.getProperty(entry.key())).as("replace").isEqualTo(t + "-foo"); } + @Test + void parseStringFormat() { + var entry = new Entry("foo").set("%.2f").pattern(3.14159f); + PropertyFileUtils.processString(p, entry); + assertThat(p.getProperty(entry.key())).as("format").isEqualTo("3.14"); + } + + @Test void parseStringPrepend() { var entry = newEntry(); PropertyFileUtils.processString(p, entry.set(1)); PropertyFileUtils.processString(p, entry.modify("foo-", (v, s) -> s + v)); - assertThat(p.getProperty(entry.getKey())).as(String.format("processString(%s, %s)", entry.getKey(), entry.getNewValue())) + assertThat(p.getProperty(entry.key())).as(String.format("processString(%s, %s)", entry.key(), entry.newValue())) .isEqualTo("foo-1"); } @Test void parseStringReplace() { var entry = newEntry(); - entry.set(t).setModify("T", (v, s) -> v.replace("t", s)); + entry.set(t).modify("T", (v, s) -> v.replace("t", s)); PropertyFileUtils.processString(p, entry); - assertThat(p.getProperty(entry.getKey())).as("replace(t -> T)").isEqualTo("TesT"); - + assertThat(p.getProperty(entry.key())).as("replace(t -> T)").isEqualTo("TesT"); } @Test void parseStringSub() { var entry = newEntry(); PropertyFileUtils.processString(p, entry.set(t).modify((v, s) -> v.substring(1))); - assertThat(p.getProperty(entry.getKey())).as("substring(1)").isEqualTo(t.substring(1)); + assertThat(p.getProperty(entry.key())).as("substring(1)").isEqualTo(t.substring(1)); } @Test - void parseTimeTest() throws Exception { + void parseTimeTest() { var entry = new EntryDate("time").pattern("m"); var time = LocalTime.now(); - entry.setCalc(ADD); - PropertyFileUtils.processDate(t, p, entry.set(time).unit(EntryDate.Units.MINUTE), true); - assertThat(p.getProperty(entry.getKey())).as("processDate(now+1)") + entry.calc(ADD); + PropertyFileUtils.processDate(p, entry.set(time).unit(EntryDate.Units.MINUTE)); + assertThat(p.getProperty(entry.key())).as("processDate(now+1)") .isEqualTo(String.valueOf(time.plusMinutes(1).getMinute())); - entry.setCalc(SUB); - PropertyFileUtils.processDate(t, p, entry.set(time).unit(EntryDate.Units.HOUR).pattern("H"), true); - assertThat(p.getProperty(entry.getKey())).as("processDate(now+1)") + entry.calc(SUB); + PropertyFileUtils.processDate(p, entry.set(time).unit(EntryDate.Units.HOUR).pattern("H")); + assertThat(p.getProperty(entry.key())).as("processDate(now+1)") .isEqualTo(String.valueOf(time.minusHours(1).getHour())); } @Test - void processDateAddTest() throws Exception { + void processDateAddTest() { var entryDate = newEntryDate(); - entryDate.setCalc(ADD); - PropertyFileUtils.processDate(t, p, entryDate.now(), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(now+1)").isEqualTo(String.valueOf(dayOfYear + 1)); + entryDate.calc(ADD); + PropertyFileUtils.processDate(p, entryDate.now()); + assertThat(p.getProperty(entryDate.key())).as("processDate(now+1)").isEqualTo(String.valueOf(dayOfYear + 1)); - PropertyFileUtils.processDate(t, p, entryDate.now().calc(v -> v + 3), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(now+3)").isEqualTo(String.valueOf(dayOfYear + 3)); + PropertyFileUtils.processDate(p, entryDate.now().calc(v -> v + 3)); + assertThat(p.getProperty(entryDate.key())).as("processDate(now+3)").isEqualTo(String.valueOf(dayOfYear + 3)); - entryDate.setCalc(ADD); - PropertyFileUtils.processDate(t, p, entryDate.set(ZonedDateTime.now()), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(ZonedDateTime+1)") + entryDate.calc(ADD); + PropertyFileUtils.processDate(p, entryDate.set(ZonedDateTime.now())); + assertThat(p.getProperty(entryDate.key())).as("processDate(ZonedDateTime+1)") .isEqualTo(String.valueOf(dayOfYear + 1)); - PropertyFileUtils.processDate(t, p, entryDate.set(Instant.now()).calc(v -> v + 2), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(Instant+2)").isEqualTo(String.valueOf(dayOfYear + 2)); + PropertyFileUtils.processDate(p, entryDate.set(Instant.now()).calc(v -> v + 2)); + assertThat(p.getProperty(entryDate.key())).as("processDate(Instant+2)").isEqualTo(String.valueOf(dayOfYear + 2)); - entryDate.setCalc(v -> v + 3); - PropertyFileUtils.processDate(t, p, entryDate.set(LocalDateTime.now()), true); - assertThat(p.getProperty(entryDate.getKey())).as("processDate(LocalDteTime+2)").isEqualTo(String.valueOf(dayOfYear + 3)); + entryDate.calc(v -> v + 3); + PropertyFileUtils.processDate(p, entryDate.set(LocalDateTime.now())); + assertThat(p.getProperty(entryDate.key())).as("processDate(LocalDteTime+2)").isEqualTo(String.valueOf(dayOfYear + 3)); } @Test - void processIntAddTest() throws Exception { - var entryInt = newEntryInt(); - entryInt.calc(ADD); - entryInt.setDefaultValue("-1"); - PropertyFileUtils.processInt(t, p, entryInt, true); - assertThat(p.getProperty(entryInt.getKey())).as("add(-1)").isEqualTo("0"); + void processIntAddTest() { + var entryInt = newEntryInt().calc(ADD).defaultValue("-1"); + PropertyFileUtils.processInt(p, entryInt); + assertThat(p.getProperty(entryInt.key())).as("add(-1)").isEqualTo("0"); - entryInt.setKey("anint"); - entryInt.setDefaultValue("0"); - PropertyFileUtils.processInt(t, p, entryInt, true); - assertThat(p.getProperty(entryInt.getKey())).as("add(0)").isEqualTo("1"); - PropertyFileUtils.processInt(t, p, entryInt, true); - assertThat(p.getProperty(entryInt.getKey())).as("add(1)").isEqualTo("2"); + entryInt.key("anInt").defaultValue("0"); + PropertyFileUtils.processInt(p, entryInt); + assertThat(p.getProperty(entryInt.key())).as("add(0)").isEqualTo("1"); + PropertyFileUtils.processInt(p, entryInt); + assertThat(p.getProperty(entryInt.key())).as("add(1)").isEqualTo("2"); - entryInt.setKey("formatted.int"); - entryInt.setDefaultValue("0013"); - entryInt.setPattern("0000"); - PropertyFileUtils.processInt(t, p, entryInt, true); - assertThat(p.getProperty(entryInt.getKey())).as("add(0013)").isEqualTo("0014"); - PropertyFileUtils.processInt(t, p, entryInt, true); - assertThat(p.getProperty(entryInt.getKey())).as("add(0014)").isEqualTo("0015"); + entryInt.key("formatted.int").defaultValue("0013").pattern("0000"); + PropertyFileUtils.processInt(p, entryInt); + assertThat(p.getProperty(entryInt.key())).as("add(0013)").isEqualTo("0014"); + PropertyFileUtils.processInt(p, entryInt); + assertThat(p.getProperty(entryInt.key())).as("add(0014)").isEqualTo("0015"); entryInt.calc(v -> v + 2); - PropertyFileUtils.processInt(t, p, entryInt, true); - assertThat(p.getProperty(entryInt.getKey())).as("add(0015)+2").isEqualTo("0017"); + PropertyFileUtils.processInt(p, entryInt); + assertThat(p.getProperty(entryInt.key())).as("add(0015)+2").isEqualTo("0017"); } @Test @@ -217,14 +216,14 @@ class PropertyFileUtilsTest { var entry = newEntry(); PropertyFileUtils.processString(p, entry); - assertThat(entry.getNewValue()).as(String.format("processString(%s, %s)", entry.getKey(), entry.getNewValue())) - .isEqualTo(p.getProperty(entry.getKey())); + assertThat(entry.newValue()).as(String.format("processString(%s, %s)", entry.key(), entry.newValue())) + .isEqualTo(p.getProperty(entry.key())); - entry.setKey("version.minor"); + entry.key("version.minor"); PropertyFileUtils.processString(p, entry.set(0)); - assertThat(entry.getNewValue().toString()).as(String.format("processString(%s, %s)", entry.getKey(), entry.getNewValue())) - .isEqualTo(p.getProperty(entry.getKey())); + assertThat(entry.newValue().toString()).as(String.format("processString(%s, %s)", entry.key(), entry.newValue())) + .isEqualTo(p.getProperty(entry.key())); } @Test @@ -239,13 +238,22 @@ class PropertyFileUtilsTest { assertThatCode(() -> PropertyFileUtils.saveProperties(tmp, "Generated file - do not modify!", p)) .as("save properties").doesNotThrowAnyException(); - assertThat(PropertyFileUtils.loadProperties(t, tmp, p)).as("load properties").isTrue(); + assertThat(PropertyFileUtils.loadProperties(t, tmp, p, false)).as("load properties").isTrue(); assertThat(p.getProperty(test)).as("read property").isEqualTo(test); tmp.deleteOnExit(); } + @Test + void testChangeKey() { + var entry = new Entry("foo").key("bar"); + assertThat(entry.key()).isEqualTo("bar"); + + entry.key("foo"); + assertThat(entry.key()).isEqualTo("foo"); + } + @Test void testCurrentValue() { var value = "value"; @@ -261,9 +269,9 @@ class PropertyFileUtilsTest { @Test void testWarn() { - assertThatCode(() -> PropertyFileUtils.warn("command", "message", new IOException(t), true)) - .hasMessage(t).isInstanceOf(IOException.class); - assertThatCode(() -> PropertyFileUtils.warn("command", t, new Exception(t), false)) + assertThatCode(() -> PropertyFileUtils.warn("command", "message", true, false)) + .isInstanceOf(ExitStatusException.class); + assertThatCode(() -> PropertyFileUtils.warn("command", t, false, false)) .as("failOnWarning = false").doesNotThrowAnyException(); } } From accf0d638a5c1f5718ae244a1ef430d3a243b6eb Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 16 Jul 2024 16:17:47 -0700 Subject: [PATCH 40/74] Cleaned up examples --- examples/README.md | 1 + .../bld/java/com/example/PropertyFileExampleBuild.java | 1 + examples/version.properties | 8 +++----- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/README.md b/examples/README.md index 13b19da..ca9e01e 100644 --- a/examples/README.md +++ b/examples/README.md @@ -10,6 +10,7 @@ ./bld update-major run ./bld update-minor run ./bld update-patch run +./bld update-release run ``` # Delete Version Properties diff --git a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java index 8dcefc9..7cc4319 100644 --- a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java +++ b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java @@ -107,6 +107,7 @@ public class PropertyFileExampleBuild extends Project { .entry(new EntryDate("release").now().pattern("yyyyMMddHHmmss")) // prepend 'beta.' to the release .entry(new Entry("release").modify("beta.", (v, s) -> s + v)) + .entry(buildDateEntry) .execute(); } diff --git a/examples/version.properties b/examples/version.properties index b919836..ecd44bb 100644 --- a/examples/version.properties +++ b/examples/version.properties @@ -1,6 +1,4 @@ # -#Sun Oct 22 14:31:42 PDT 2023 -release=beta.20231022143142 -version.major=1 -version.minor=0 -version.patch=1 +#Tue Jul 16 16:16:38 PDT 2024 +build.date=2024-07-16 +release=beta.20240716161638 From 7714e1028c7952577509aaea125f0f384948be35 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 22 Jul 2024 20:28:37 -0700 Subject: [PATCH 41/74] Bumped to bld version 2.0.0-SNAPSHOT --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- lib/bld/bld-wrapper.jar | Bin 27319 -> 29519 bytes lib/bld/bld-wrapper.properties | 2 +- .../propertyfile/PropertyFileBuild.java | 7 +++---- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index a2969be..2fb5ff0 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index d136e4d..33a9922 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.1.jar", + "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", "lib/**/*.jar" ] } diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index d0dd498906eca1e5fe8afe066c9be8fce538a773..2d3ab1b61515249614739b8bcade35326bb961f4 100644 GIT binary patch delta 27497 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 Date: Sun, 28 Jul 2024 22:00:20 -0700 Subject: [PATCH 42/74] Bumped bld to version 2.0.1 --- .idea/bld.xml | 6 ++++++ .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- README.md | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 29577 bytes examples/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.jar | Bin 29519 -> 29577 bytes lib/bld/bld-wrapper.properties | 5 ++--- .../propertyfile/PropertyFileBuild.java | 10 +--------- 11 files changed, 17 insertions(+), 20 deletions(-) create mode 100644 .idea/bld.xml diff --git a/.idea/bld.xml b/.idea/bld.xml new file mode 100644 index 0000000..6600cee --- /dev/null +++ b/.idea/bld.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 2fb5ff0..4dd96bf 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 33a9922..5b2667b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", + "${HOME}/.bld/dist/bld-2.0.1.jar", "lib/**/*.jar" ] } diff --git a/README.md b/README.md index af8b28a..d599633 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.9.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/2.0.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-property-file/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-property-file) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-property-file/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-property-file) [![GitHub CI](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml) diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 1652f45..c56c376 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index d136e4d..5b2667b 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.1.jar", + "${HOME}/.bld/dist/bld-2.0.1.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index d0dd498906eca1e5fe8afe066c9be8fce538a773..9633e67d80091ebdfdc0188731b43f8aea66a599 100644 GIT binary patch delta 15709 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 diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index f6d642f..31400f0 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -3,4 +3,4 @@ bld.downloadExtensionSources=true bld.downloadLocation= bld.extension=com.uwyn.rife2:bld-property-file:0.9.5 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES -bld.version=1.9.1 +bld.version=2.0.1 diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 2d3ab1b61515249614739b8bcade35326bb961f4..d055d0018ae56ed092ade0434556ec500042f487 100644 GIT binary patch delta 27394 zcmV)OK(@cn<^hT40S!<~0|XQR2nYxO*pU2@4SoaIko=L3JAdR(k_&`{Eg%p!30Vad zB>^;qAi*q<1TcWcA(_BPG81PeEaFzHw$^&hF~p5<%0NhX-W>Stt!znifT=SMl)ZZ;Ad!0YJG#tXz(Jg|G zF06BPiG~Bgb(J#)R%KBpjbIc<3L2Si$cju7G}@vulz)#Y+Iz!ce=xc*5N;DRw9bug zWhRZIqf8oa(FB?(Xv$!OnOf)T4YseZ4|Vvl^y;pFplNkS(7BQ^nPkyqhMwJ(sBh!? zsTNJ6qd~7wXJ=O+=m&aYl}UwyMrb5^qk*n+hdKd&B#Wk#hsPCLR6?a#%UK({lg$`C zsxI9)jekSAMaS@%TnAUzIBuS0(XmXdQ3INpOl>9|4}vCv*9C$b{2hyZk@d~~Xcir3 z<8`7%bErblkg&fe6bVE_VH>SsF0{~J<1^QydE7VKzd7m;MgpOrjmSwBoy;`J?+9%Q zc7=Q$HSzZ5P;a>1L3e>g)#-aJ!Au>YcHOJSqJKqniXd}sZ)c~UcVDhvkc9@Y_!2>R zNvx{EVc(XzKm=>4qk5AXENY~sagI%Pi9i5+5$=fnFI-*MUq0g8>JTXs1+Ugp6Z2{_ zuq|}8R)@N}FajupUm2<87OkL_m@^QJM15UdRlyFMkAP`mf3P!ZS+-g&T1Be`8UD=y zV1Hy3*4m&>x9AMQa!0p^{l2JwW&b?|qZg*iK{_E~NIr|!Qag}JfwaUI7Bsvch#4!q z1mVc+3akzLc;`)8mn!obu$Kb7BV8S3o4dQRX#;hc)NN6aLSRnaIS7cIfLOlN7scXb zs8dj78ZlozsIo|bP|1^=ZBdx8Zf`VXcYlS96%L|WdU?Cr_-m6zn+bX;1N4nVBU

^*a+>tbBpHE+pL~3DbtKbopH&MqggYR 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 diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index a0e88df..f75783a 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.5 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.2 -bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.7 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.3 +bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= -bld.version=1.8.0 +bld.version=1.9.0 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index 5d86e6e..b6a262c 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -37,7 +37,7 @@ public class PropertyFileBuild extends Project { public PropertyFileBuild() { pkg = "rife.bld.extension"; name = "bld-property-file"; - version = version(0, 9, 5, "SNAPSHOT"); + version = version(0, 9, 5); javaRelease = 17; downloadSources = true; @@ -45,7 +45,7 @@ public class PropertyFileBuild extends Project { repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(compile) - .include(dependency("com.uwyn.rife2", "bld", version(1, 8, 0))); + .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 0))); scope(test) .include(dependency("org.jsoup", "jsoup", version(1, 17, 2))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) From 1a2362d5113dc85850557820a90d8110dc290a58 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 21 Mar 2024 13:46:11 -0700 Subject: [PATCH 27/74] Added JDK 22 to CI --- .github/workflows/bld.yml | 6 +++--- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 2b0ba38..f736169 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -1,6 +1,6 @@ name: bld-ci -on: [ push, pull_request, workflow_dispatch ] +on: [push, pull_request, workflow_dispatch] jobs: build-bld-project: @@ -8,7 +8,7 @@ jobs: strategy: matrix: - java-version: [ 17, 20 ] + java-version: [17, 21, 22] steps: - name: Checkout source repository @@ -19,7 +19,7 @@ jobs: - name: Set up JDK ${{ matrix.java-version }} uses: actions/setup-java@v3 with: - distribution: 'zulu' + distribution: "zulu" java-version: ${{ matrix.java-version }} - name: Grant execute permission for bld diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index e63713531201055d2d5d71dfd5204bbdd65996a0..e8151771783f2379f035bbdc7afea15ebd09faaa 100644 GIT binary patch delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6NhP@xdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 wGi1{Y!BUe0GweYElP705gXx(^b delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6M{6S|^42i}sf~R~#vpq0X5(%qFvHP|T@TFgPC3sA wX2_-)f~6)0X4r!SCQr_A2Gch)Ji)YTW(b(B$#ezNM>69e;#vM+x;)DP07`l`ivR!s diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index e63713531201055d2d5d71dfd5204bbdd65996a0..e8151771783f2379f035bbdc7afea15ebd09faaa 100644 GIT binary patch delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6NhP@xdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 wGi1{Y!BUe0GweYElP705gXx(^b delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6M{6S|^42i}sf~R~#vpq0X5(%qFvHP|T@TFgPC3sA wX2_-)f~6)0X4r!SCQr_A2Gch)Ji)YTW(b(B$#ezNM>69e;#vM+x;)DP07`l`ivR!s From 6faaa0aa579be3f58418ffb2734dc966f961ad0c Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 9 May 2024 21:25:04 -0700 Subject: [PATCH 28/74] Bumped bld to version 1.9.1 --- .github/workflows/bld.yml | 4 ++-- .github/workflows/pages.yml | 10 +++++----- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- README.md | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes examples/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes lib/bld/bld-wrapper.properties | 2 +- .../propertyfile/PropertyFileBuild.java | 4 ++-- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index f736169..c0ba763 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -12,12 +12,12 @@ jobs: steps: - name: Checkout source repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: "zulu" java-version: ${{ matrix.java-version }} diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index f6122cd..bf43624 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -30,14 +30,14 @@ jobs: steps: - name: Checkout source repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'zulu' + distribution: "zulu" java-version: 17 - name: Build Javadocs @@ -50,8 +50,8 @@ jobs: uses: actions/upload-pages-artifact@v1 with: # Upload generated Javadocs repository - path: 'build/javadoc/' + path: "build/javadoc/" - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 \ No newline at end of file + uses: actions/deploy-pages@v1 diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 0b615c1..a2969be 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 9e8368e..d136e4d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.0.jar", + "${HOME}/.bld/dist/bld-1.9.1.jar", "lib/**/*.jar" ] } diff --git a/README.md b/README.md index 5792009..2f550f9 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.9.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/1.9.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-property-file/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-property-file) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-property-file/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-property-file) [![GitHub CI](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-property-file/actions/workflows/bld.yml) diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 4906dbe..1652f45 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 9e8368e..d136e4d 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.0.jar", + "${HOME}/.bld/dist/bld-1.9.1.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index e8151771783f2379f035bbdc7afea15ebd09faaa..dd5ee65380652cff3f560906ac29f48c6ca46804 100644 GIT binary patch delta 166 zcmdmfm2vx3M&1B#W)=|!4h{~6mY&5EdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 zGi1{Y!BUe0GZYnB7y`W6IrKB%X0tOeFt7q~fHxzP2m{>U$&)jjLE0wY%VOdrXNgNSGOa{$#vfXtd)lVuG6>~T4I delta 166 zcmdmfm2vx3M&1B#W)=|!4h{~6NhP@xdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 zGi1{Y!BUe0GZYmW7y`W6Id(?Al3{0HU|DV?# diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 01f14fc..014a912 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -3,4 +3,4 @@ bld.extension=com.uwyn.rife2:bld-property-file:0.9.5 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadExtensionSources=true bld.downloadLocation= -bld.version=1.9.0 +bld.version=1.9.1 diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index e8151771783f2379f035bbdc7afea15ebd09faaa..1a3d0aaefad73b82fedf7b2a5e1893c4f52020e7 100644 GIT binary patch delta 166 zcmdmfm2vx3M&1B#W)=|!4h{~6%AUm&dFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 zGi1{Y!BUe0GZYnB7y`W6IrKB%X0tOeFt7q~fHxzP2m{>U$&)jjLE0wY%VOdrXNgNSGOa{$#vfXtd)lVuG6yf8T6 delta 166 zcmdmfm2vx3M&1B#W)=|!4h{~6NhP@xdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 zGi1{Y!BUe0GZYmW7y`W6Id(?Al3{0HU|DV?# diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index f75783a..3916e93 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -4,4 +4,4 @@ bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.7 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.3 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= -bld.version=1.9.0 +bld.version=1.9.1 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index b6a262c..b6b1f15 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -45,7 +45,7 @@ public class PropertyFileBuild extends Project { repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(compile) - .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 0))); + .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 1))); scope(test) .include(dependency("org.jsoup", "jsoup", version(1, 17, 2))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) @@ -82,7 +82,7 @@ public class PropertyFileBuild extends Project { .license( new PublishLicense() .name("The Apache License, Version 2.0") - .url("http://www.apache.org/licenses/LICENSE-2.0.txt") + .url("https://www.apache.org/licenses/LICENSE-2.0.txt") ) .scm( new PublishScm().connection("scm:git:https://github.com/rife2/bld-property-file.git") From 2df3714d7ac376f9ba43b5eedeaec62dd36c14ae Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 9 May 2024 21:26:23 -0700 Subject: [PATCH 29/74] Bumped PMD extension to version 0.9.9 --- config/pmd.xml | 15 ++++++++++----- lib/bld/bld-wrapper.properties | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/config/pmd.xml b/config/pmd.xml index 41ca08b..3d3203c 100644 --- a/config/pmd.xml +++ b/config/pmd.xml @@ -24,8 +24,8 @@ - + @@ -35,8 +35,15 @@ - + + + + + + + + @@ -46,8 +53,6 @@ - - @@ -101,4 +106,4 @@ - \ No newline at end of file + diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 3916e93..17ae5ab 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.7 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.3 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.9 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.9.1 From 375c4a70e25f90d22f8163f6c655cad9f8c24792 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 9 May 2024 21:27:03 -0700 Subject: [PATCH 30/74] Bumped JaCoCo extension to version 0.9.5 --- lib/bld/bld-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 17ae5ab..6e26fef 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.3 bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.9 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.9.1 From 2b5f29a0160f9d4508356d4d9ffdd5e768b68702 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 9 May 2024 21:27:55 -0700 Subject: [PATCH 31/74] Bumped to version 0.9.6-SNAPSHOT --- .../java/rife/bld/extension/propertyfile/PropertyFileBuild.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index b6b1f15..9d8ab40 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -37,7 +37,7 @@ public class PropertyFileBuild extends Project { public PropertyFileBuild() { pkg = "rife.bld.extension"; name = "bld-property-file"; - version = version(0, 9, 5); + version = version(0, 9, 6, "SNAPSHOT"); javaRelease = 17; downloadSources = true; From 09cdfea6b8e92ade904fee1bac9cacf0d168b5e1 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 22 Jun 2024 23:39:49 -0700 Subject: [PATCH 32/74] Bumped PMD extension to version 1.1.0 --- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes examples/lib/bld/bld-wrapper.properties | 4 ++-- lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes lib/bld/bld-wrapper.properties | 6 +++--- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index dd5ee65380652cff3f560906ac29f48c6ca46804..d0dd498906eca1e5fe8afe066c9be8fce538a773 100644 GIT binary patch delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6kiHWWdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 wGi1{Y!BUe0GweYElP705gXx Date: Sun, 23 Jun 2024 10:43:25 -0700 Subject: [PATCH 33/74] Added build command values --- examples/README.md | 14 ++++++++++++++ .../java/com/example/PropertyFileExampleBuild.java | 10 +++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/examples/README.md b/examples/README.md index ede07c3..13b19da 100644 --- a/examples/README.md +++ b/examples/README.md @@ -3,3 +3,17 @@ ```console ./bld compile run ``` + +# Update Version Properties + +```console +./bld update-major run +./bld update-minor run +./bld update-patch run +``` + +# Delete Version Properties + +```console +./bld delete-version run +``` \ No newline at end of file diff --git a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java index 8b8ffca..c004cc1 100644 --- a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java +++ b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java @@ -50,7 +50,7 @@ public class PropertyFileExampleBuild extends Project { new PropertyFileExampleBuild().start(args); } - @BuildCommand(summary = "Updates major version") + @BuildCommand(value = "update-major", summary = "Updates major version") public void updateMajor() throws Exception { new PropertyFileOperation() .fromProject(this) @@ -66,7 +66,7 @@ public class PropertyFileExampleBuild extends Project { .execute(); } - @BuildCommand(summary = "Updates minor version") + @BuildCommand(value = "update-minor", summary = "Updates minor version") public void updateMinor() throws Exception { new PropertyFileOperation() .fromProject(this) @@ -82,7 +82,7 @@ public class PropertyFileExampleBuild extends Project { .execute(); } - @BuildCommand(summary = "Updates patch version") + @BuildCommand(value = "update-patch", summary = "Updates patch version") public void updatePatch() throws Exception { new PropertyFileOperation() .fromProject(this) @@ -98,7 +98,7 @@ public class PropertyFileExampleBuild extends Project { .execute(); } - @BuildCommand(summary = "Updates the release") + @BuildCommand(value = "update-release", summary = "Updates the release") public void updateRelease() throws Exception { new PropertyFileOperation() .fromProject(this) @@ -110,7 +110,7 @@ public class PropertyFileExampleBuild extends Project { .execute(); } - @BuildCommand(summary = "Delete version properties") + @BuildCommand(value = "delete-version", summary = "Delete version properties") public void deleteVersion() throws Exception { new PropertyFileOperation() .fromProject(this) From 3db6ca026d8131b22233dc10b49ba23285c5d275 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 23 Jun 2024 10:46:17 -0700 Subject: [PATCH 34/74] Removed argument from safeDelete() --- .../bld/extension/propertyfile/Entry.java | 2 +- .../bld/extension/propertyfile/EntryBase.java | 70 +++++++++---------- .../bld/extension/propertyfile/EntryDate.java | 2 +- .../bld/extension/propertyfile/EntryInt.java | 2 +- 4 files changed, 37 insertions(+), 39 deletions(-) diff --git a/src/main/java/rife/bld/extension/propertyfile/Entry.java b/src/main/java/rife/bld/extension/propertyfile/Entry.java index 816ce21..379255c 100644 --- a/src/main/java/rife/bld/extension/propertyfile/Entry.java +++ b/src/main/java/rife/bld/extension/propertyfile/Entry.java @@ -53,7 +53,7 @@ public class Entry extends EntryBase { * @return the entry */ public Entry delete() { - setDelete(true); + setDelete(); return this; } diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java index b381b0f..b724ed3 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryBase.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryBase.java @@ -28,15 +28,15 @@ import java.util.function.IntFunction; */ @SuppressWarnings("PMD.DataClass") public class EntryBase { - private IntFunction calc; - private Object defaultValue; - private boolean isDelete; - private String key; - private BiFunction modify; - private String modifyValue = ""; - private Object newValue; - private String pattern = ""; - private EntryDate.Units unit = EntryDate.Units.DAY; + private IntFunction calc_; + private Object defaultValue_; + private boolean isDelete_; + private String key_; + private String modifyValue_ = ""; + private BiFunction modify_; + private Object newValue_; + private String pattern_ = ""; + private EntryDate.Units unit_ = EntryDate.Units.DAY; /** * Creates a new {@link EntryBase entry}. @@ -44,7 +44,7 @@ public class EntryBase { * @param key the required property key */ public EntryBase(String key) { - this.key = key; + key_ = key; } /** @@ -53,7 +53,7 @@ public class EntryBase { * @return the calc function */ protected IntFunction getCalc() { - return calc; + return calc_; } /** @@ -62,7 +62,7 @@ public class EntryBase { * @return the default value */ protected Object getDefaultValue() { - return defaultValue; + return defaultValue_; } /** @@ -71,7 +71,7 @@ public class EntryBase { * @return the key */ protected String getKey() { - return key; + return key_; } /** @@ -80,16 +80,16 @@ public class EntryBase { * @return the modify function */ protected BiFunction getModify() { - return modify; + return modify_; } /** - * Returns the value to be used in the {@link #modify} function. + * Returns the value to be used in the {@link #modify_} function. * * @return the modify value */ protected String getModifyValue() { - return modifyValue; + return modifyValue_; } /** @@ -98,7 +98,7 @@ public class EntryBase { * @return the new value */ public Object getNewValue() { - return newValue; + return newValue_; } /** @@ -107,7 +107,7 @@ public class EntryBase { * @return the pattern */ protected String getPattern() { - return pattern; + return pattern_; } /** @@ -116,7 +116,7 @@ public class EntryBase { * @return the unit */ protected EntryDate.Units getUnit() { - return unit; + return unit_; } /** @@ -125,7 +125,7 @@ public class EntryBase { * @return {@code true} or {@code false} */ protected boolean isDelete() { - return isDelete; + return isDelete_; } /** @@ -136,7 +136,7 @@ public class EntryBase { */ @SuppressWarnings("unused") public EntryBase key(String key) { - setKey(key); + key_ = key; return this; } @@ -146,7 +146,7 @@ public class EntryBase { * @param calc the calc function */ protected void setCalc(IntFunction calc) { - this.calc = calc; + calc_ = calc; } /** @@ -155,16 +155,14 @@ public class EntryBase { * @param defaultValue the default value */ protected void setDefaultValue(Object defaultValue) { - this.defaultValue = defaultValue; + defaultValue_ = defaultValue; } /** - * Sets whether the {@link java.util.Properties property} should be deleted. - * - * @param delete {@code true} or {@code false} + * Sets the {@link java.util.Properties property} to be deleted. */ - protected void setDelete(boolean delete) { - isDelete = delete; + protected void setDelete() { + isDelete_ = true; } /** @@ -173,7 +171,7 @@ public class EntryBase { * @param key the {@link java.util.Properties property} key */ protected void setKey(String key) { - this.key = key; + key_ = key; } /** @@ -182,7 +180,7 @@ public class EntryBase { * @param modify the modify function */ protected void setModify(BiFunction modify) { - this.modify = modify; + modify_ = modify; } /** @@ -192,8 +190,8 @@ public class EntryBase { * @param modify the modify function */ protected void setModify(String value, BiFunction modify) { - this.modifyValue = value; - this.modify = modify; + modifyValue_ = value; + modify_ = modify; } /** @@ -202,7 +200,7 @@ public class EntryBase { * @param value the modify value. */ protected void setModifyValue(String value) { - this.modifyValue = value; + modifyValue_ = value; } /** @@ -211,7 +209,7 @@ public class EntryBase { * @param newValue the new value */ public void setNewValue(Object newValue) { - this.newValue = newValue; + newValue_ = newValue; } /** @@ -221,7 +219,7 @@ public class EntryBase { * @param pattern the pattern */ protected void setPattern(String pattern) { - this.pattern = pattern; + pattern_ = pattern; } /** @@ -230,6 +228,6 @@ public class EntryBase { * @param unit the {@link EntryDate.Units unit} */ protected void setUnit(EntryDate.Units unit) { - this.unit = unit; + unit_ = unit; } } diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java index 4d7fba3..a25b0e1 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryDate.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryDate.java @@ -54,7 +54,7 @@ public class EntryDate extends EntryBase { * @return this instance */ public EntryDate delete() { - setDelete(true); + setDelete(); return this; } diff --git a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java index 753d3e7..54226f4 100644 --- a/src/main/java/rife/bld/extension/propertyfile/EntryInt.java +++ b/src/main/java/rife/bld/extension/propertyfile/EntryInt.java @@ -63,7 +63,7 @@ public class EntryInt extends EntryBase { * @return this instance */ public EntryInt delete() { - setDelete(true); + setDelete(); return this; } From bd27eac071ce06f9a820d70c32a965754f6a961f Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 23 Jun 2024 10:47:18 -0700 Subject: [PATCH 35/74] Minor code cleanup --- .../propertyfile/PropertyFileOperation.java | 40 +++++++++---------- .../propertyfile/PropertyFileUtils.java | 8 ++-- .../propertyfile/PropertyFileUtilsTest.java | 6 --- 3 files changed, 22 insertions(+), 32 deletions(-) diff --git a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java index e01cb11..0ecf5d7 100644 --- a/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java +++ b/src/main/java/rife/bld/extension/propertyfile/PropertyFileOperation.java @@ -31,11 +31,11 @@ import java.util.Properties; * @since 1.0 */ public class PropertyFileOperation extends AbstractOperation { - private final List entries = new ArrayList<>(); - private String comment = ""; - private boolean failOnWarning; - private File file; - private BaseProject project; + private final List entries_ = new ArrayList<>(); + private String comment_ = ""; + private boolean failOnWarning_; + private File file_; + private BaseProject project_; /** * Sets the comment to be inserted at the top of the {@link java.util.Properties} file. @@ -43,9 +43,8 @@ public class PropertyFileOperation extends AbstractOperation Date: Sun, 23 Jun 2024 10:47:49 -0700 Subject: [PATCH 36/74] Added tests for operation --- .../PropertyFileOperationTest.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/test/java/rife/bld/extension/propertyfile/PropertyFileOperationTest.java diff --git a/src/test/java/rife/bld/extension/propertyfile/PropertyFileOperationTest.java b/src/test/java/rife/bld/extension/propertyfile/PropertyFileOperationTest.java new file mode 100644 index 0000000..22dc242 --- /dev/null +++ b/src/test/java/rife/bld/extension/propertyfile/PropertyFileOperationTest.java @@ -0,0 +1,79 @@ +/* + * Copyright 2023-Copyright $today.yearamp;#36;today.year the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package rife.bld.extension.propertyfile; + +import org.junit.jupiter.api.Test; +import rife.bld.Project; + +import java.io.File; +import java.nio.file.Files; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Properties; + +import static org.assertj.core.api.Assertions.assertThat; +import static rife.bld.extension.propertyfile.Calc.ADD; + +class PropertyFileOperationTest { + @Test + @SuppressWarnings("PMD.AvoidDuplicateLiterals") + void testExecute() throws Exception { + var tmpFile = File.createTempFile("property-file-", "properties"); + tmpFile.deleteOnExit(); + + new PropertyFileOperation() + .fromProject(new Project()) + .file(tmpFile) + .comment("This is a comment") + .failOnWarning(true) + .entry(new EntryInt("version.major").defaultValue(0).calc(ADD)) + .entry(new EntryInt("version.minor").set(0)) + .entry(new EntryInt("version.patch").set(0)) + .entry(new EntryDate("build.date").now().pattern("yyyy-MM-dd")) + .execute(); + + var p = new Properties(); + p.load(Files.newInputStream(tmpFile.toPath())); + + assertThat(p.getProperty("version.major")).as("major").isEqualTo("1"); + assertThat(p.getProperty("version.minor")).as("minor").isEqualTo("0"); + assertThat(p.getProperty("version.patch")).as("patch").isEqualTo("0"); + assertThat(p.getProperty("build.date")).as("date") + .isEqualTo(LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE)); + + new PropertyFileOperation() + .fromProject(new Project()) + .file(tmpFile.getAbsolutePath()) + .entry(new EntryInt("version.major").calc(c -> c + 2)) + .execute(); + + p.load(Files.newInputStream(tmpFile.toPath())); + assertThat(p.getProperty("version.major")).as("major+2").isEqualTo("3"); + + new PropertyFileOperation() + .fromProject(new Project()) + .file(tmpFile) + .entry(new EntryInt("build.date").delete()) + .execute(); + + p.clear(); + p.load(Files.newInputStream(tmpFile.toPath())); + + assertThat(p.getProperty("build.date")).as("dalete build.date").isNull(); + assertThat(p).as("version keys").containsKeys("version.major", "version.minor", "version.patch"); + } +} From dacacbab56b69d62709da324a029584676e266e7 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 16 Jul 2024 15:58:37 -0700 Subject: [PATCH 37/74] Updated dependencies Cleanup GitHub workflow --- .github/workflows/bld.yml | 7 ++----- examples/lib/bld/bld-wrapper.properties | 2 +- .../java/com/example/PropertyFileExampleBuild.java | 4 ++-- lib/bld/bld-wrapper.properties | 4 ++-- .../bld/extension/propertyfile/PropertyFileBuild.java | 11 +++++------ 5 files changed, 12 insertions(+), 16 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index c0ba763..bf65051 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -22,11 +22,8 @@ jobs: distribution: "zulu" java-version: ${{ matrix.java-version }} - - name: Grant execute permission for bld - run: chmod +x bld - - - name: Download the dependencies + - name: Download dependencies run: ./bld download - - name: Run tests with bld + - name: Run tests run: ./bld compile test diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 0af2487..f6d642f 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ #Sun Apr 02 10:32:44 PDT 2023 bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension=com.uwyn.rife2:bld-property-file:0.9.6-SNAPSHOT +bld.extension=com.uwyn.rife2:bld-property-file:0.9.5 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java index c004cc1..8dcefc9 100644 --- a/examples/src/bld/java/com/example/PropertyFileExampleBuild.java +++ b/examples/src/bld/java/com/example/PropertyFileExampleBuild.java @@ -42,8 +42,8 @@ public class PropertyFileExampleBuild extends Project { repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(test) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))); + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))); } public static void main(String[] args) { diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 7a65d7b..4dadca8 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 -bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.0 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.6 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.2 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java index 9d8ab40..63a1be2 100644 --- a/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java +++ b/src/bld/java/rife/bld/extension/propertyfile/PropertyFileBuild.java @@ -24,7 +24,6 @@ import rife.bld.publish.PublishDeveloper; import rife.bld.publish.PublishLicense; import rife.bld.publish.PublishScm; -import java.io.IOException; import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; @@ -47,9 +46,9 @@ public class PropertyFileBuild extends Project { scope(compile) .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 1))); scope(test) - .include(dependency("org.jsoup", "jsoup", version(1, 17, 2))) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))) + .include(dependency("org.jsoup", "jsoup", version(1, 18, 1))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) .include(dependency("org.assertj:assertj-joda-time:2.2.0")); javadocOperation() @@ -97,14 +96,14 @@ public class PropertyFileBuild extends Project { } @BuildCommand(summary = "Generates JaCoCo Reports") - public void jacoco() throws IOException { + public void jacoco() throws Exception { new JacocoReportOperation() .fromProject(this) .execute(); } @BuildCommand(summary = "Runs PMD analysis") - public void pmd() { + public void pmd() throws Exception { new PmdOperation() .fromProject(this) .failOnViolation(true) From 23540cbc8e1cfa2bbef3c95cba7a490f9eb60fe5 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 16 Jul 2024 16:07:52 -0700 Subject: [PATCH 38/74] Converted EntryBase to a generic abstract class --- .../bld/extension/propertyfile/Entry.java | 57 +++--- .../bld/extension/propertyfile/EntryBase.java | 174 +++++------------- .../bld/extension/propertyfile/EntryDate.java | 77 ++++---- .../bld/extension/propertyfile/EntryInt.java | 51 ++--- .../propertyfile/PropertyFileOperation.java | 70 +++++-- .../propertyfile/PropertyFileUtils.java | 47 ++--- .../PropertyFileOperationTest.java | 8 + 7 files changed, 200 insertions(+), 284 deletions(-) diff --git a/src/main/java/rife/bld/extension/propertyfile/Entry.java b/src/main/java/rife/bld/extension/propertyfile/Entry.java index 379255c..9e8009a 100644 --- a/src/main/java/rife/bld/extension/propertyfile/Entry.java +++ b/src/main/java/rife/bld/extension/propertyfile/Entry.java @@ -25,62 +25,59 @@ import java.util.function.BiFunction; * @author Geert Bevin * @since 1.0 */ -public class Entry extends EntryBase { +public class Entry extends EntryBase { + private String modifyValue_ = ""; + private BiFunction modify_; + /** - * Instantiates a new Entry. + * Creates a new {@link Entry entry}. * - * @param key the key + * @param key the required property key */ public Entry(String key) { super(key); } /** - *