From 2cf1850fa59feb37c42ba3e22fdbedb52aa222d7 Mon Sep 17 00:00:00 2001 From: Adrian Cole <64215+codefromthecrypt@users.noreply.github.com> Date: Sun, 4 Aug 2024 07:34:07 +0800 Subject: [PATCH] Updates to latest docker images, aligning maven version (#3775) This uses latest java images, and aligns with the following tools provided by them: * maven:3.9.8 * maven-help-plugin:3.4.1 * maven-dependency-plugin:3.7.1 To align, we run "mvn wrapper:wrapper -Dtype=bin" to update maven and manually change any pom or script references to share the above plugin versions. Besides text replacement for current java versions, this also had to switch `docker-compose` to `docker compose` as the former is no longer in the base image. All test images are updated to latest versions, as well. This intentionally doesn't touch anything else, except bumping testcontainers. For example, this doesn't update maven plugins that aren't cached in the java image. Signed-off-by: Adrian Cole --- .mvn/wrapper/maven-wrapper.jar | Bin 62547 -> 63028 bytes .mvn/wrapper/maven-wrapper.properties | 6 +- .../server/ServerIntegratedBenchmark.java | 14 +- build-bin/docker-compose-zipkin.yml | 2 +- build-bin/docker/docker-healthcheck | 2 +- build-bin/docker/docker_args | 4 +- build-bin/docker/docker_test_image | 14 +- build-bin/maven/maven_unjar | 2 +- docker/Dockerfile | 4 +- docker/RATIONALE.md | 2 +- docker/examples/README.md | 44 +-- docker/examples/docker-compose-activemq.yml | 2 +- docker/examples/docker-compose-cassandra.yml | 2 +- .../examples/docker-compose-elasticsearch.yml | 2 +- docker/examples/docker-compose-eureka.yml | 2 +- docker/examples/docker-compose-kafka.yml | 2 +- docker/examples/docker-compose-mysql.yml | 2 +- docker/examples/docker-compose-prometheus.yml | 2 +- docker/examples/docker-compose-rabbitmq.yml | 2 +- docker/examples/docker-compose-ui.yml | 2 +- docker/examples/docker-compose-uiproxy.yml | 2 +- docker/examples/docker-compose.yml | 2 +- docker/test-images/zipkin-activemq/Dockerfile | 4 +- .../test-images/zipkin-cassandra/Dockerfile | 4 +- .../test-images/zipkin-cassandra/install.sh | 2 +- .../zipkin-elasticsearch7/Dockerfile | 8 +- .../zipkin-elasticsearch8/Dockerfile | 8 +- docker/test-images/zipkin-eureka/Dockerfile | 4 +- docker/test-images/zipkin-eureka/pom.xml | 8 +- docker/test-images/zipkin-kafka/Dockerfile | 8 +- docker/test-images/zipkin-kafka/install.sh | 2 +- docker/test-images/zipkin-mysql/Dockerfile | 6 +- .../test-images/zipkin-opensearch2/Dockerfile | 8 +- docker/test-images/zipkin-rabbitmq/Dockerfile | 4 +- docker/test-images/zipkin-ui/Dockerfile | 8 +- docker/test-images/zipkin-uiproxy/Dockerfile | 8 +- mvnw | 256 ++++++++++-------- mvnw.cmd | 21 +- pom.xml | 6 +- .../collector/activemq/ActiveMQExtension.java | 2 +- .../collector/kafka/KafkaExtension.java | 2 +- .../collector/rabbitmq/RabbitMQExtension.java | 2 +- .../internal/eureka/BaseITZipkinEureka.java | 2 +- .../storage/cassandra/CassandraContainer.java | 2 +- .../integration/ElasticsearchExtension.java | 2 +- .../integration/OpenSearchExtension.java | 2 +- .../storage/mysql/v1/MySQLExtension.java | 2 +- 47 files changed, 262 insertions(+), 235 deletions(-) diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar index cb28b0e37c7d206feb564310fdeec0927af4123a..7967f30dd1d25fe1b79a4a6e50e2aaa0e425c02c 100644 GIT binary patch delta 17696 zcmaL;1yo$Y(l(6Z!QI{6HMqOGdvJ$fK?Vyhfq~%euEAY{ySoH;w}hXNeCND5cda{X zX6>5VPgS*4*Y4e2J-rWJcMOiGBnu7!3jzWS0^;NOO)D0W4CeQ>i$&3_AeM(15H$%K zz>NL*>~mYs3m9Ip{)s{$v2bX7GvR52gbSVvW}6Q#y0Nf+I{4nUcRq7TpTGqFqk(o0 zi8&l2j9_lB5~2*>Kq4yL<|Uon#F}JVa@^oZ?~)4$?@&It}6N ztBsA%F8kTYzGH1GG_rzRWaWEG?3u`{R4FX9%fY4R&^El-51mqV2WkC?^7r`}{%7`I zy^~+2f&2ec2_O|*Hg&i+_ zO-pwXm4g)Hrq2}~+HQrQRr2MWkYR&^6mog7s0uT8wocJ09bmdDQ?0!@MR@Br^w)la ze(Sf|3N-F_D8Ea%5^`NB1qK2l3IPJb3iNNn2l{Q}020*f6w!o{eKBF*4H(-bkhc4) zR737`CMt6D?&_eK=;D>w!4r*4F`gtJF)kXAcwbQ+yz8^vLOPekv8a?%BKDWHcQd!o z@HDruIGaB^69nb!V}lcg*Un#NT>mi|?bzb2DCKT=wW^=JT2qY+o;%{h9gQtPAIVe2 z++XF*2&f`<^ALoFvo?eZZwOMTWQhzW=twl6&^y@bOhdp!!^D3FZ0!E>*m>7TC%(V? zWGwl8!r@ZMYUtNWqHp6EbK2k>139*NjA&`={IX`VE7%qtcQAR+hb9B7R)8*@y~gE_ zoT#IunlH}GQF!oS)S{hc%jE>uB9jy;_0XSJOaWTo;}yISzA-H~9b3&~+y9~{-nIGG ze>55pwcKdBSrMo`@>3So7@Jb$hil`Q%_tJKN%HYm3$o~^f_GQ&(-uk&o{KzzsZDY= z2&B8kUyVW&y=iEFp4Lw|+`9>7e30hwRN7nOx{YNskN#r(1C{>Z8~#Z(eRs6Adeg4{ zVP*jUpKa!Q?f7S70hgJZ3qbW)aJ+~YXadcrq+B|a=^rLxK~3a&2$Q^F?Bz&Ox`neI$9?%s z*am#P_j}al{yWszgIFF?tQ?^tP};;(a-1a=Y1b&QPf5f%6!gI1JRk9|po%|*p7k#e zx%6bmzTAiFhBV$CB#}rP`$@_{%4JDSpNiX#fq3_FMoOZXKr)uIlx?y6q?bdW@1DMT z_uKXU>v^Ye>{QIJ{n$pwz16vC|9+yK@&#j=aO%6N)^!KsBYI;)&XkOMrkOM zib$gbslm+#Tu-wT024lNjVL_cYlcriK?3{)Wm;>spR!Q!9I@O^SGe!eYTeC!e?8uU zcd}+INf~_?VU045M4kgvcNf>4!JV=T(?4kOlBru(X)3+U-DkhCuG-@QuO^!XJogJ1 znc3(=wwCeZIM)HHrX~>%Y$_=~WaX<)i7rV_8#s}+kfon0UbIW^-q|hAUv{wQ= z*m@+fC)_;UGvx^x_7g2ovkpSWspT))g_bw`^W z<=73j8gcA)=2dIaa_93Q#@>C|yn~A^jzU)f3?{{M9^m_O5nKs4%clcz3p0g1gwSE| zqRigAo+*n>npVUy2W-`q?>PsjW5?x6J22;2j39$qDk0Bg31MithzRCW)iiShvAKP_ zrMSVmyx7e9n+&ts^IdaLNXk^QtQtW}A(u3EYUh*Y;Iu6&U6)35J}p&2+V9A40;kd= z%@B`Vf`vRBWA&%1*>>e(K2%Bc=t%SHIT>|VU3mvJ;!jp70ERxP4zU)pu|Y0le=BFZ zYJ;?xVj5xTQCR)~ZAof>P02#e2+G^vq&*yw_NE zAv8v@5ph(cEewn#hn)#@5*2A0#f|nyb!}1yM)!a$m$K@0)K>7i`OEb%$F?}Fh)cX) zI#ePH{<;`-082~p)J`Z(lW9j(bv_6Y&z=h!XxqyK{rVUP^^edi%SirY zlbTW#uxXRAB(W$)@9@oh3~X=K?C~MqBAb08+)>OZ0bpCOdWJCRQ@F%)MjnpYj&F7) z6y4Pk>U>_^SDz>}M!H4a93F>bm+?E`jFRoBtDD=(-VpXbnT2Z>Eh1ogpOMyL3$_5qdWhuh5qz6c}0R4c&vS%v`crj*T`kbk5Dp zxnY%(2U!2Ws5P%bW-Ed{01AnQOX*a_gS(0_g%g8$O@E_hh!bjXn$xC^kLs}_l;LIC zj5D0%N!G`QY%0Or6sQo!twDc6MlK;WumX=GJKa|iy@DDOWsbmqmN8@znyb}C(dgjq z&5nb#2~DW%sMf>MD!;LdvH9L|bmTi9_WSbXT>z@TY_h4yZuvH@ij?YVoE~_A=|Vw9 z{x}`!7s}&eGhgWs*weV?LhKyx=loe7P33W+_ z8*Rs3McDAG?4|`v3jg5TKlqrLF`ieV${?#^H<*ZWCAVQoE!7#M`iWEhJ8B&(_ubf+ zoN&OjoUHT0L9}Snz%qt+X7JenFD;ukhJKt0B_5ehq__BE`?p{;>n8CoUTw**jMo^f zi*;osxy3Clv!wuJm7@y5?oa#ZMv*^msY7WZu9w+U63SctUB zlf7tbHv>eqW^JiP<~Fh=0wo^mg2$z*ilTp%%Nlws^z2t(PwUo%_ynQ7~Po^?j|Fkz2#bbM;oCr@Z$}=Ss5j zp6haRmBjSv^HCAFnCGO@svI_efg6>IlK|O!9LPity;uUhykICfyW+A0E_Cnm zx~>~~6sz>P7z-Rv%?lS?U&4;guYp!H+TVXb2e)>C*jDt4JOrhBH#^Dq4Bt~c3fO&E z{01*~_XOEdT+m(~@}d8+IoPnPatK#9xf*K3Dk54p?#Y_;ah@h$E~RYP;cj{Q)&GYa zfmU+P_jU*!WV$pb?`FB5L7uI z!2JaQ7;^I-Yz}d~bDcO_$Q>^BkVU^6|LKgMh(ofr7mnV|b%6!@OQpwfvl6F;W4z{g zIA!;0$wBVo5nA)@1TycVMv&XzB$ zr*SOi?50f&u+_OJs^tXC0XhowaWvFjBX@-sbYP zws*Ru)ZnEf;#zbqGGPM`4!krO(VaP&vCUl|t*13frL2!2$gfyp036#BP_crWl96ry zc=GI1iJ{f;Kw8OAv>hMNso(QjdC{dafFYeM2y^Q?GICt1+51?Jgw#M^c>NgLY@#}o z8`{`8m%!wMVTcdrg2Ob(Y>!8lF*pf~U`Cw#LQ?bx8Fi)C-n*>9ue15-`ogrbXCrGHuG?pfhxwbrNV zP8MLF7_*yxbswtl%p?}nn>y5M;k~uoeFC@N8a%qWyaL#RN?aU{)1F8FwyfS~3yyp5 zMa1APh~Wh?+A3k&Cj>cdH!If=w@M&2Ef9C0tsrgH!gI*9T>-gr1p|?B=7EBQtd}_1 z;TJ;LgVcb1UT`#Dey4#!w3cH(jZG$6nYS(nZpL~f$I6_flp{dk% zkI|{HaTtJ6DZ9dOn$51#3UXLCnzQVKCbA@;9;enSqgb&ugdt-J?~WOJfLQlU5**8T zlKSB^*pk?rc1fuhNAX$K!}gHW*Dr7YGTcM+o?o1=)(;8&LKN;Ed%Y)fM-fHvmQ+AD z>%^#_797-$RdX3NNUh3R9Mr6Gj zrOdIU)jKXRTROP`=IeCHU3QA-Svff|yH~uZ%r|zltG>oLz6tbJ*ph7&8f83({g`b# z%d&;|UhIyrU`=v=<@K8jAJ{b|0B#6wzMLUgwf;&dLr=%LkAT3;d#HP*d% z7+`$({pKf=NI%~25b>DC`J3g08pVouALqU+7|#ysQ?$Ej_tJBW3%>>VgVc+%eTsg( z@2(QpPKFaVtJndRvDGESc}7}Y_K;NQBXrpA>rBGbjgPoUoE3F}N2ioG%SFor7DbUk z{P91O7ksn4LtDYU>+8Q6_A(*4x6_m0{Q_{TZ*Hz<=`QmyZ8h-Sp(4xXnnf$I;;>-O zenMxc((kGB6dT^PWJt|bzgE5B$ylN#jNd$=9cla-{p|kPsp33(8-{AvN-f!WtRCZ{ zMf`bFN%DR?{9fYT0b8LG{ldM6U=t9x4In8nNG?Ho(TxMH`YUv~lAf!FZCiq4fdf=; zPO#1e#l2&A4SwSGk0ZH@K{R-ikp|3$$G#X=o?|MkO1#4CBqpjtDVOjm|s*kFs^Q0yBt z5#B?CT<9Cd570mdRN?^D1`?%=tsq|68;|507UyWPgRyjbRsv_$1IGc5m64$4;&@!> zFC44lPNsz+@mD9}C;}Z2bVS))f-+Cuk(>8UA2;+MHQc`DuhXm@noxwgvFrlAA|Nb_ z*F+|$Bd?2x&{YP>`tx`?`$kBr2`JY4Brq6?m06S!g@;lK1e1{tNxBo0at>OEinWRh z1fn?AdedU{GN3pe;m*49k8@ELf}IQ&2V06d(_$k~7AB3vsai`qTgz7g1!dU3=pmQy z4fi=k3_q&QTupz;%q6|2_jv(u&&7;SUm6-Ed)KG2Qs-3Kffw{O9?>BT^nz+GLnDU6 zG@RRY7bWfJ`l;Q91={CW4%oBwH4xLRF(6*Z{|a0;){G|GLTMP9uYL_L%HIK0PA|`b z|Gxaid+K8}zAm#Jy#8oje-6$TOvaAJrj}+*cEB%92*8dVWZ)Bh_n+0dE{01;#NTUQ zTAD0{7~mivwC{jjY%BnEY1P*?h+iq>^F+hm+Y))lh@ud=lu2kNTp$`43odN zTO)6xq{mMgy+JMNtW6USDSE(#j(~$CYWTGzyQ<d7O|;wF%otyJW}U+r=--NcLAU{J6Q<@LSjh{UUEO;??Zl3 z&%!qx-u-ZFu$525ELQtfL5zL+f_m7Y@9nJdRi9A9hv(w62(a?ghf-N=3Ut%C(#QHD z4BHZ?e5wR)!0b?v4X*+5s`H84c4N0=ou_zGV@b1k%^a3}5i9dm1>Lh#$UA@N3DHcs zfKSA-h3ZGS>XB=l_+*~J8oBHZ6Smh#t>8y5e)o7w-!|Syl^d}O2s1^s*l4`>7Z9p6 z(aBT~{c!tU9?u%gRZF1-dbHR-#**kccwr;4Vc{W#9Dstb8b%$ZXyq-j$xqdYl~Pc+ zJDVk)O$5#pi4MggwokpI{!L z$6jC`<vfad{j9ig(H+9T6A39@xN3P6*_VE6?={~c|$H=M{Qe})o_R4mvZDnlj_ z{tv~i`3(A((zb&7Llqc)_)8(0v;Vy-VPOyP=We474#FR5)K+D06rvMOvU@5OGfoWiVc_b|{@0MMFWq>`+0;K!aSqp2nz0MNwa& z2K};{^KG3nEzKu^@`J;=Y=@G9@)US^U`oYe1Ge|3l!lmJwvYaz+LpLDfT@?QzW4wV z231GwJFAXUhVi4=9Hv~LSbc#`)QKDV%qlat(oY}sdP@ua zYKMbb3$#?tvsF}Fmrbw{0hyrwLGvH3otGFnvqp!KQ`mke874YGYT}Fm7r`sB&AVT~ zaY!F&)}k}Q%Q3dyF>LHKXk_;T6-6MxNptw@tG7d)0}=#{{5IDPKtI(Tvv7tshLYeo z7$+HD)5~C|gdLTslog@ZZ`cd)+81&RE7U1HM2BG~Iw8!5o%dAY0Kjn7Lrn1E(;_|Tnd?qPbC}VBoj=PNAbBx-qChZm z;v@S0eM6wyM%@EI0@zN=R4Xy=K#u*fjK#g*&r41}=;0Rv&(PeQFvXxd=@Ktb5JF9L zKDHKPM!$_lN~URJ2oJZZTA-DqVAqBNJ5m=*1!3oXr^7q^4NstLl*O8I4T9Qb;!sWz;YbjLAwbU&6xO=v0{#AQn%=q_xPRdPYg@E>rErQ(T*Z?_4lV#SGIG#L}@oKb0;d!1lthQ?2Knv#>UTU+*@MP69OTMZ}V8SEu zJcS-qhu~$0IkRtI-kzyWpH-ec;!7u6)tQwuA}oI@zA=)T7W@D)a0cKMk3Z-ITXpn6>PI( z!l{za^^rUB^<3R7^7~q_x$hcSOZ%|dlUDxjZn#Z1#<<*Dor?RqpMtsCORs31J4^ja zT~-%sg;@_DKSUipjAp}VMLR#M2bFqUaZ6zDS~hl_BgC{z--SFY zPNL+R9Rj%5u8c2quP27EE;TQF8;~#IVoL8Pd~U{(SfUjiC-ie-u=fR~B!zK$ktOyO zSjERFA~#X`31)JGtdNz_m2Cs*?dDa+ug2a6ny?!}Me zP$?V~^lb|ftWsz&@O6?h05phD0obXcX`=foK-1Glz^E1H-}1wfcS0TNM&#Nr|$3<3(CoB`fMN(r_*r95S5(e)&_dGGPowt5jz>vdBhX#u}Vp7xE>l!9zvvUQm1afXAcR;0%!b&*&)3V zwp0^aY>Q#{8Gf@faf4L@O~7b3wSv)9=Q5_k7D3knonDvFXcUBnIggI(kNM-FTY~wp z47@`M91kuD5dshRR;orqv_*&K7T>Bfclv9iQpIO*IHE1GuA(cI6Ni|ejt@!iKP!Gb zv4Dv2ny!?{-kUc`G#zmny8eKn>mJ+Zup##xu74C!;*TS|Db=?QIt=J#ufZKoGb$ze z$})M9SsgZ=G;e?@_Vwk*(T|&lwkBuEBY+`azz3RzO$XpqWK>&!J)UoQ{ZXD=JhLwy5K7T{zZ!9l#l!%VjbdqCF+MeMtL5*tIAApcDf#OUR>`27WZGWZ%ABNCcDrH*wvOkN#Gxx>NZkc*hc1-ht zvrBV}qrlk7K$`L%TY8hHz=N1(MJ`2ansU0w){~}8)js746Y2qDtRZff=zqpCNenLd z+jcrjv7{E~>%67(bt_8dbsLHW=o3c*5J&g5*V2N9lV>qfu13!m0wZs&!vy>8)puE7 zHL0{7Y=%2U*^)M@@+kSd(NQGHuf}cNafAO7A}AW;?lz4o6K-3w*GOb;ak|pve(I8$ z+|==Mb5#k_{{?|82$vwmUuOmd)0Qd~*{gdcAuPayy1dt)?DjSf$b8k*+p13ufVQ!q zuoy(xM9-h*r#f4V)*Ip$=W6TFPobKT-z`hym1lm^2+)>GFF&I>i7%JAao}`>zJbC; zHXk^(uUJSYCl7o?=ur}4N5KR)scPTbwY9kwdQTy}gi$f$Y@FX3AQ-2WImdE#(tJZ+j}#t~O&A((I=;{3E{Z%*0Pp?s zPha#Wd&W#H46kB|*3S*Dt)^MvXQ(L(BdFFjQxtj(lBPaS?d+?2!9(IaJm3&JqLmx_ ztmlNyF`{^y*-=nPcCrKN-J^ceO{V-+$Kb>33OJeQ!%y(nWD=I_F^NCP0JDlj$;_Xa zvywQZ?%Ppo!It2LT55_)w#uR*jGtTKEYgpCg>_E1$W%XN&6y@S<_Ec0zzlWqmAWlu zh*&r%R=Z0LP?KD;mUcG=AMvblIf8Ff?fRVG!*1bK6DJjHV`Q~?ak|Lr7{im~qq0j| zmK%u+GZQ@LG^@vI8Os?<0Ju{rQhp^?9@RQDUNPNj{yYnlp4dGh5QxK?>0Rlc9JeCo)51=pV92o(R*})<38^p@gh=)FTq^K5a6H z`*k>_6HR0|*F9L$si?ijW|CNMx?tu_EZ2sa4vjUM$c>hVN?jc(4A@2L|BW&t|qL5m zfUR&83k7*Wm^9E?TE>H@UKGdHB6X4BQS%w8^*$gBsow$sWXV{x4^^6BXBoXt<4!zF zJ4;JH6YTJYJO>+hsrphA>-MD!qDLW%m+;KxMazTVmp1;+;L6v~a{NrDlJNSI-nUeh zF#ZZrKz8C0A36dCEXI&jMz}^^{-KgqrVSxvim{0*Esh;aUU+^WKBas$eV|vjV$=MO zlI;`13~0e2W7z1Z)?}diS(b%H?B@W z=ciWCOnG>|lJpo{y&$$olm+;bgMYJ!jZtcJbWnn`^ZeM`i3|Ur(fiYVxi#~nyA@&2 zj~NLDilL7U;vezrih0-2VkdeJ%$)R8j=oKS2Hs>3Rk8RomN!uFhD(Ci4vh-B`kEQ1 z<^p;aNsIL8uq_Q+6U^bS$bQVpp$1MX$?Shh49SMJ^MJS6{x({59V5S#g`qw`09A7B zqZqJ>$$!FraGi7D7Gh5*Ey1e#3;qd>1`~6Cz0ugrDeE3rc246Ari;?|P9Bow=l`b(Y)ubx?oiYF)z73BA0}>mWTJGwAie9nbyFBfgz`zg> zvG*|{1V8OMKPi7cs}CB^>)q6TfxON?WbhSDO?q-odfd1vV$&$ol~IfBX^tbph=h&PAS(^OAgoy%p$&==;G?STq;xjula;$lXg@=uxhN$ z9ANo3Yc-`56N!g0E0fdrIJ{vtbC-q6=Cs>LBI}eRV7ju{N z=Nvz&vEg%pg`n3#+j@0i*0{J6McABf1rlf2-%7GmSxNO?nSR)Y@-ihiwsz}fP7lo` zoFy$mQTBmkfL)@Vvd;pRu;4FqeH4p86I`km@6rfE+U|#3uLWi5Sgw;$2kR(rr+Tp& z01)s$!1Ch4N`9V*Oic3DFHTHdS+ByeN|o-G#)<@swv=m44kfB*RSg|?Z`bkHd+J-* zAi2QS3>j;=*s;gpAF+8@KCrja#}*lN=zsx$KQl@xT{8QC%Sw%BG7)g!!YADR%-o&k zzOl1{)amxHUS9Y@F7^|a6ZAXBFJ$*H{ueoPYQo8M&2BDHa9dwG=LB46$e}kCyj8ji z$xpkD{iDrhm}$AK`6?FORts)5hWeHh_oM0Wuw)ZSdNIh!*;jlh+|c9M{V{s?=>e(= z^l|omUzh2W+CcmTqj0!Mvt1P4+5Uux-KUO&m7su60y~kNlqn@UMY_k+Y-}e19Bs`! z)&=!>Dy7N-*FH{7(zv@EphD#PTGaDO((tlYXzQRPn8}&o4?qMo=W3Uj>VVC{3AsM~ z+=)iJj|>=>@s6(k3>Tub6{0ttTy~|Pueb4!B!+{B<~|?{MjVNSA45fPfJr} zrgqqrYK6>+=`?ppLSZ34pPr$D^*XS`tdZWJh*`1?##^+Di=zFr1D0|UpZU0K6hj(r z1BTDWHOYawt>C5;qR#OgBIG(sBPG#sbX|s=r3Um}E^Fu+un;lQ62;d?XbT|x?B|Bc zX{O}rU|>5phJm#eUM- z3^HL?E-WGNeV=lf-iM#P5$GKh2+>D4VFTJdwBa^@Pv0#ppgTIzU^C+1M-)QX>pbp? z3A0BDOn={9{w40y5IGv7(r5@E;#8xui>+>Mg;+DNEC&`qxTV10`d}O#%f=vD&4Id7 zOY?6MvQ<#NQ=?Q z@789cfB?aXnn|1ABV`AbPgS|g z-QL|C=4D*?g!_{haz20@Tz;~jhFX~=Dq)ga4PJqa?{kUeG`e-psA?ml4q8(8&16aq zjjhMr?DrEMYCn&l(@UgW8NP6x3+%ZF)dgaOT;;Sbms28ovofObZOG09Z1*ramP-{) zlVea#lWVgi(xz}q)Z^z&At*)V;d4b45RF-^(X34pJ>HPrE=K_UIVvZ@R|!KQ`4@Oj zMbl-vC>+~y-}d}-wn6o%+6Co+z&uMN8^-j8PO7X>s)JqMub6l2_Q>N|s(c~#7p*Ow z)=0wk{ys_l@SCX=+@y%-WfKCtyG=ju7xb{LlU_ zaQpq z`fJ`!Oy!w9myA#DsCawAH)-6BMQoLOcQ`AX+Uj1dR`CqzA!HSf?;UB60@OH}Z@2uD z#dWe8tS|=_Z82anvEIkrw)gMCw?E$lUJi;MmLTh5^F{z0M=p(-(9f&qcdYLRmsszO z?*asBoS~yaatfjpMx83)$`;xP9Apo(PCh!!?y@7_$^wB}Uq%AUwd`!?;)& z*Se)II4S#x4&W~l$3g`+T`w$JMaMfrJGO|n9PShETaL_kAEmc$@h1bdUn<~%7AHAP~TPf zWFW?n9!PmE;rEi1+L?O&%#T+FJq76o=8%00P?ClJziGa;3)y6UR`NCSyg)Z!C#}EU z0ke`hfCBl1fIqqA^)m+C74@WQeI>+@R$T@(TX20?Q+_O%-F>B((2tuS3w^| zpEq9DiHO)yIO6WXpOyO;bB$n-oyE@LTGEqOJ$IAS(|_JP4Jd*%R82%6e?kx9ND~e+ zo^-?Iad0u!-)Cs2q4ycyJgIm5m}_-N(K5TG(FU;9F-hR9aGV-n%CORf(_J~Rq$RwA z5bf3FTK$+oVu-j~T|^pg09g_&UM2`I! z*`ccN;m1>vJ2!;}$+gY<7|`INgVTa2W5=B5a0lnM!SY~(3;bzobT%e6awp*~afC$X z-Y)>S;6CK-o5wA@@lEx$736^|HT674@h)|Qd1i0ap==12q7~+#qXLVox=}V^G&yz* zJqv2cmBi198IE7&25xBazC~;IK~L2f^kc6XY(nk{dP(z?shxW^kWYGM<*oghdFesjfJ^x?G=^XGl$HV8C+X9Kr|ciZLZVSPpq6#2%iF?AB?-P|brD7~ zOMq|RusXP_WN92D3?R!EpvQ%1?2!uu-uBi6saiYFWAxH^>gApu#i1*ej=U?!2=>nf zAX0pu(C^$dKJ-&=b`in;LVzJfzLOxDLKswBMK#DOuA*%qb*=b;s-dgq7%%>KhSMbT z=QpkcFO8)|YPGKtX;CDS&E$)g2p@Mq0pu(qNd-<0-`@d|MEy6Ck=P~8o2cW`pTk{< z?p7tgBYr(_##?m9>w?!$iCoiOIlW&b1>ibskUT-MICDq=ZV3|C$(jOVIcTKeP;h?w z-6QtT^KA7}Ww!Rl&x30rDi^qKV%|Ez5v=gCYaru#l_)WaHXgn6i75in7K}s>H%{I| z-|eA2eJT!B@sislc`OdeJBJnpfc&4C^6Nx-8?xN!@O2ObyiS(I-}sySR%3f(3(^d_l>=Hfsfk-g{{ZFO{Sb zotnFuyYD4inD0HsRIY>2Z;7MBiqLkmh&e_WPuI}lR$g6ZPgp-|B`v*6oj>ZH8&Ve? z*8PUdg%lo4v*x&rayw(c%0UkR9=qDR%-7)9m*W&{+A{~K9JEn4@0_f{Uy%8Ze52)} zTRQy}OWmS;OhK0RvjB#aL_Y|NgI!!s6k^MQ91|o2{-w6Hh<<(t>9ZipfKzJyq2PM0yycGwS2l?NzmAHhkLk1#C`%3ESEiQeVV@3us`Lm z#xW{^w_%=Uy9#A_$~Sfws3pYU1nZr@>zvSMrKNPot6^Jvff1JFp9@f_7WU7fC^b&( zqZ8GjUW76ihB67okW*cFpmoRJELwnO_I>sW&A1&*JmwQn<11_iKv6^)KNH0u;e6uJ z&q|phM*=E;jlRy=wPppZ+XC zrOnvUIO0>3d;u$+FO791r#ZFm2*W4hmpDk&&F1g|tHEDv8nqLo8RKee5>Hxg8nIK) zhk2G`+!W0x0Ra1VByb7mkJo~NfRI3d)Vh>H|J^+Xlwu-|TrED9?~@PmA_) zc%afb^6Pn|)!*llUQTX?x|}`(V*>gDh@ct7qc3q(MaZL4C?VynrLOI0Qg5r;Y)&io zJHQm%AG#x$zF3-E&vp!ATT~{1K*|%{z7CsPuB+6=<;;!_Z}6%BR{~g4Ts3gzYi2(8 zw(vf@Ry_=jbRw96PiGerq8=Je=DMB@276<|fJwJry3>d5)HOSZ`lEQTaW~o>JI9!J z6$2Bs#=LG-gUHhPcOS2Z@O|KSNd&hvqIfZE++UR9!3lmcv-iTo8=Z%De3q8t*i;L! z4pp0Q3^6Vo#=Tm>f*in#c6fIi+h|aRh}IML3%bX;WP!qilj z3BV&=zG6C#@jFZ}ha7Wc(3-i?eA#fD+Us)1Cc;n|@91Ouxxv*>TbA?I~ECI{VtS=VvP z*F#&M84h}Rrx?DA!b@~H1tnHGtz)%A9rlX2o1xv>0p@1_6?MTJ!F~2ELE_C}ZAMZP z(^+u}OkgLclVhZVQWAS(**=uw!g1|W2xi#8JiKxcxlI9S%9r5VO`^~*1PeoH!T?P{ z5miCqDBCf^wesRY)BW5-n4BT2OR>;J=eHwqU?q1*o^#wIl{QI~e zZ1Z@hym*M3A&9RDAG9W9=&V|Zi}^cys=hPuk;-RNS>Q~2;F~Cz2D4+-?r=?-@|kuR zRn2K~HH0dJD@gGip%andqz-#azG(23v#s#|lvFf1L7l35M2BHYq)FwNvY%9qlWFNV z-u>0D3ySqICrLE;8D%8oLa_>2CZZo2*Er~!9z{;6fS!ZQU)^)$_$TV6x?JZuv}h1< zS~kYZ(#h@Txfj=KmfIXd@AZ~#8rUctY#8&;%oSQPFQ`rI2&&KxHJCVT=+J9X0O0bS zkfa(hPc&jOeO4pCKn z@U-2p-zB(#rFG70Fug}o*dzdL1t`07e0oWBVOWF;Vpp4VfO)WR{5jvp%7kjvY5 z#jwjo`{tkz(Zn3tIie2Y%pC;EmhtYofwiC+zNf$nY}XP><%hAMx`!mI0uV2==+jy* zwUUj}z56Ieank}wX{gi?rdXvBf)>A>pdOIMJy%LMHq)c|?6L}v_wy$WHNYXV5H8DR zR6mSd9EvwC6>tY4gYs(KBF4o7SCB8V@M=&VtoGeKU#fxPE^skkp@BKW_o`j4V4lh^ z4~e47HJ{#{^n1Bm5<)@#xcxv^y{Kl=C52)!dF(vBSw;Kg5D+=zUk6;2SjcYf$xF)VQwH90n3 zO;6XJS3b1_;mhv2WJeJ|UQRu$@NTEe5flPqN96qkptO(5I35wPCp^)oC&cncs`i85 zySXbjTGZxZsL$9Nn{b&aSA5WyuSwdvrCIWh%0Usq_{^Wv$7XgPmk$VrXZVb`*Pxv1 z2x7_K9HQinq6e|3ygM6Nl9>@pfQ2pE21$l6Y^?;0Nzo;$imLH!3ia z5bN`YMVLlJ3~?^zGEBAh({eY>q@hV6JQLoRTbM3(WOvgjV+zj=`;i$7rFx|Ek8=vO>2yDbPN3aDjkQGZeH?^;Cg z)0Lz+(aj?YIc<(H)Jdh{_at^ddIVT;lfYj#=;<~h4>;4LnDoU znT2X;B$=Ai)MXmz^JVJ#RIrgBGqm_)pW!)Lg0p<(YP|2W?G`a~`A12611#)zZDaIb zLZe-MzPUX;3U^;A8R%i(fr~b@XfG2&AGI%Ing0L8qJ2HkJmA_|1jZ4L6X@&g6%-5| z{J-bCfxhc(|2^mpY+mOE{EjrQsh0owyat@VA7qdd;g?tXcNXUVD*Atz-&eT*{P`_G z@;WK_KY5$~{{&H91>ye)|CW>i1^VxyA^)!gFna?R%=7m>JmA6xJn{b)nBX7tRiMD^ zOJdspsrP>%uLRP6{`@w21XS4kdurTq6BiU4xVcI9+YHhFn&JFM%-|I#{uaZ5v|G4f zHDJIAFf5?{)}P!tpxqWOs0J`}i|9?we@>78V;uw}&;J70zeV^~qlV>b;bSNe5OqWl z5VrrA`i;pzd#gIpHsu@epM&220GDy!fPUK)Z@_;}=>7wAA$S9BY)iZW|2cB`4-lRB zuSOK$;122=_3 zdd>64;P_K4HWXm;_8+h=lQ7sAG6+Z=83+jVKVawgZ{Ud^cz>*&{lEnamVV<=?qa_c z)x?NxO5xSN=aS00Iz%wyTAN*z_$N~Uw-AQd;(4$6TPNULIVj8{`kXxGb}+sr2ny3>GKy% z4>Y>^tGwd?7wj_Nl}`)&>W>A)Km5z5Kg0#g40_|QT>fp+*jFBZ@EgzS@=udqk`*sh zzZwC3t=zvYuoLkLWC02tp}n=jf3lrkgTue2I*5D&8pS{Yi;qbDG{x8vF4**!zkF06 z!||Wq|0fCKpQ>E|-@v|cc)<3fKj8mtszQQ*sQm+uNqPmFycO#|8(kP6AhQ2}TvFdO z&L-mnvrhgtO4SK2*huah|K|zSn}YwYg8i?8tAaP6K>nM8H}F5J1^-y%FL?u>o|3)+ z|If=5h{Qj@@bbS}p@8M3D8GyLCZO0c%-;Gs&%}Q9M&W-1vMb*N+RIVt{{+(i9@+oz zJK6u1y|w1A(C@djzr)w@92ac=+Z(^_oZwGCt-bOT8{c?z7qo9BVM@%d^LP#9*RT2d z?EjRcy5$wf49vek{Uh9RfeYp}`a3!U5vP%X?=JuH2`+KL2xkBC@qfGIn_`c=n9=Z8 zH{*ECnUnfQvFXAqSmTe~k}TvKcrY+nFtD~pON}@rGPvLOMq5|5uW`J@z!(wu zE@l*oTmNNa#@HNp64yESfKLJQIfvP)*39yvX|$`W8cKQkd)Cm;>AzASqO89nY)XAo zoh7e~eEZps-SpzE9=1^!vnax zW5V{d-e3DXJ`n#l1B3`p_~v&zKuq8ie*`UXx<5h)INKlL8#vb=;U1jkk3b0_`bV&Z zQ2HZuKxDlNHSZylk%7N8idb^Begp#pD}VVRzx?DS)I=Dh72Yu^D5^<|NqiWtg6|Rr zeB2OFj8leLTC}$(<;M6-&mCfLM35jWHAVQXjkJ;XX{aBWYms}aTPhLJhqW>E8@>EQ zm0k2ow%sC9$bhE?u29p^6avnc`Yiqc=>12M0;n1C(p*;4?^~_V29Ea=9e86o__6rU z?T%P0*J^Y53E|&L(b5k-K!G{@ei0Zi-xK!rd)Abq^T43~uJ<=bPbO9fFffWYU|_7E zY-xOuEHNsOoQ2WU*4V`*QPs`?O$5cSo>;OXM55N{gH4^5zs9I_yRkL(bPw!2#-|iN zX5IO&RMTX7N$FpSe&e|EkKoVLTg(3Pb#{{m&OU54m;7VP!zUGMYd{FC{$_ug;L=Hg z^johIx+6j%lu1IX)l&pJ%?}kk?#0V-Q?Og%{-IDnNaf%e7k{&=v5<024YGaO)wjHD zeJJP6qr^`^j)@VF2$XWe*p>7>j)^4qaYT-~@MDZfZRN3P*~*dJu71`gjAXwn-4TcA(0wK_K2Nx_4S`&9E8 z=OoJRNyNB8D-5YAy^!rNvVbDCJP+9g=)jC7IhzmSjd_a!#`T+0%6K<7L4HHGdg0`> z#l0)gbJ3@Y0mi@}z`g9(yg7Kl<#b(5NJk|wA+`4SQ5rQ+TT^TWjftQ=a+@ZxbxgRu zibA&>S4ph6>#(>UoY%f70?THj2sog^KyjNfsub}nqRv2?#&s~CwHGYHl}N5xnx631 z;f=QHRbMQ0w^%jjz%7}%{SJa?6PX+k$vMd?N(t!B@VNO)QpQedCG9ZAj?hUGfA9NTTR03cWI63N6SqvCp;FX z!;g>G$1oqE`0L|@Cq-!k!2xI*5HpSvy3=WsD`-oT9v%sn4f)Q=J3bRu`#VPc4p2Fa zGgpg1gReWY#qgfmKCIi89u7sh>63E?@_WLl&|kd16@EdF|Fqd0RXfovJn#W!sp~r5 zU2%f}fZ7)`t094X@}}4iVhhR-w>v1VVD?yLiTWF2el<&Y>8A)B?nd!}cNh#CT+8Ls zT}omH^9O{+1xf$BW`0T!Bp=C4CIE%M0J(c5L|E;SPS!L^2TobR9f-JcUyP+L4Se*6eD|LYe1cyyVU# z6uSAPqwiP)nMc@?B?U{dQv^OC??PmPjvQ;P>XL$d*7R@h7viATmFeMx?Fy_Cmg$Kl#!Fe{Q z9<=2o>vA>|G3FT|Ku0C-BoqE4-sqDcVTk^H8p$*|H ziHx$3vCZ*^hMVeJeV?V`tC#4NzVbd7jFs)Q?bp-p?XO=xhf_>KH{2i9H%XzqAk3U> zvfkm%<^+0=#B%1Ob38EEd1?V0taWxQTlg$z0Bm4H@E91yO6yoDO`3QU)+T8@N>i&X znlXzIpAG?2l}xAuObmyNqF}x7YM2(r!NT{o&YTBNI;`dnk*8dyPGyP>Z$^K}42N3R zqjD|PlIRo9vyw2H=mztQ6GIKFvB)|jo7?Wqmc20qXB^XDkv#BLV7CX};6X~uu9^2D zM{-ggi>%ZNcuR9D_WDY53(2R*Z%IlS^<~*1Ya+`c>BFtS8Bj3vzAi%QF!_9$cnhIEQ_FtS#Vq4c= zQko^`kojDgr6z&%9qI>=2RFT0A4DNW96N3o6WAd-Hc#XFeor#LL%VFnZt2!lB8_(u zS2sP6sYHERO7iWbO*7A?q+PhRt|@tSTbpTa0KyyEG4Us`1IO%I-#X!uR4oM#Og(a? zO&#MNo1alB22&;}4~rrC)6;=fI)$4iDCadb`<&--Su{Vv$&4?7xr{r}7@eFWgtqew ztOU2g)danbfGGIclKGEO;&;D@lDsYT)Wt^NtS|QgEd~ z^tLf40HR=4d>Tv*sc88Fhzm^P_3wKpeiu8VlSF%9WBDSu}PP-M> zI&9O-IDc1TF~(b2O1nKx7OR7Qxp9wIK6;^Cog1x2K#dy$#!_p*Bo^Kt}ROli0jBee(#5KDl@+uc5J z=POg8p?G`^AkP-qJEy1s8+E;qLpD0?w}#aw6o?wpb!zdm589Oe&nKUl;}-AGxvAo)bE)c792T9 z&$58!ORKMAx3^rJay4_wt7)>U>6lE?T$&|D=+ISf1tK<}c`J`1*fNe3o$g}<0Q$^y zA-O}BFkAI|3983NM>`Y1BKtPs^gH=f-b7pQ!Ia(km2vg`bfr2`IcHoR=@UK^kMHhI z%9PrZ`xrmGm*?S$!jrdYuuK)9Ln)p%^31)$3TMkB6G3!ZARMOhw#x=TmevzFkSEpo z!({07ATY2KlKO1xiJk}PTetIOAgy2!3=aj{a$cW$p&S007H`-kDkf1PqRO$^C+)W4 z!N|S`*TIJ^T0s)k4u}2~{fnVMp@VCT!Wo5bB;*$3XdzmI*?niY&|Hv|NKpa_Gnw_S+%bht7dDs zgWk;39bhW`peeI5kLHW&xtDL}F;*Eb**itUq`;+7nq}5|U2kAyZ&u%qu!y49LaNoA zvtlWcVNSBE#rQsyaAz{qg?l;jI^A7yKt<6V@3*+`XZWO{2;KN$r=}jd>A8Hz!xNPS z3P8*a-MjjL)30}o->53dGomL%MogsBrMx`kB(YrG>=(ODM+1^*dI;mDw18QgA$M^R z`PaGi`~Z5|3_sb0(QA0W&xt+qFgZUfed3>sG&_;hh_J)eZ*k2HuiuT#9!(f$NO%U# zX#Bj|m76neo^;P>TV>|3QR`&-diZ88njE;)7n|Ans0q=cQpmmFSy;a(?%8gP%uB#? zRAAx$3l1-=5~raXP9vGyZ6CqKo;|a+OSeULq3cVx!?yoLL+fO#v*bXzDDwJkHN>NT za@-_hMZ&J#9VlFA$Tev$L@oPbtKzdGu~gvC&8zXXR)t}>-L9>Eq1MMTLY%ae$7J9~ zG)1-a)_3>kM3exS{oY^A5owqN^j#62(w#%J3UGNyN@yqiQI+;+so$b+Zbq-v=}n6| znLI&yjikyoq^OMgah8tHbVGOKp+Sn6P&u(ur!l%>xQeC8$qGAH-&4~dABuEAMw;53 zPxpdb&ihLp;`xQ1i?d7dVr|VcG`T=>L=dm5O%h4}YTg(jJM8UuwkEzxUFMmb2c0_O zmjt|9xnR}n%BNwnkwd?EgE42pWYCe7AnVAHp{m|}=`c#EPfh0ZuRN~u>n7WjkD z#kHx033h5i#&DhkH#CR`V3p zo%ve93^=0676|(9oGfxr0jgv zqzafsjrJDYE{f>E-<4h0Zl+3`RAXn0SJ^VK&TUYS>il|}s2Swjk5Z_Lb`3>h=t!={ z91KaahHd|q34p2bQ(?U?^D(!Phc&uE4~LdNEHS%_W%-8q?F^kWkh>qR`1&~(?ILC) zgJdU+EI~KCZoUWPOLx4txl~t+f3YBze416qw|}PZdS?&ef$X8zD}d{9yiqe(<&7X9 zreIQ@vb$c%We0Rvd^VW#yI5xU5rOuz2zyCFiarZjrc#}rJQE)O)He7OV}TAH0)7!g zufV7Rf{=?Bb5%D5$l;MmS|+s1ibVkb3&FK;*T@N}_agpq|9^NzzJ|$t1dth zhtm3sn{baO_!fGND;POJlb}1~p0K-rZ+DP*+R9W&fL#~?u-Gziv*`Xm(inc>y^#|tMzDSGsweM?A+)n$35Uihkb zL)23A-E&#Wh0fX%WL|qS%?^efwFEC|4gXeEHIlVXxGE<-h^+)k?v3F|{#9v# zkNBHXebuuxN@WUO)+PL5z4R&w0x4=}1Z;=>XDzf?K+2HRG9W)c9CZV0Lc@d*jJA%0 zB*n=9n2epygO2hESUw77P8Urttw!i~cBOC<1JV54iXNGG&L(fcF$TY|{)-SVKltZQ zGc_D{{9o)k+b^|G5uR1Q!3X?Gs_0rrxX8!v{bi28GIiSXnJrrd)39!XLaS_i7KUW_;-V6Pmo51{CV*xQTKKxlEVqm&}dR=T;l}ewzd6^2I zK!btNzRp+VIM9G<+Nx7Z7|)D$R(PVF)lDQ3un7!V)YetuAIapvB`e2P3$Plo;}zmb zpK&dw&n1YaagxtPK3sGX?Rdrq!*{DV4$GZ5C!O-`F1wsotQoe0WA|rpTcd=NmXZeO z1QQM!OnJr~9*Qn)>vm0NF1Bi6)N@+!GI9ZoZzEZzn-77L`#2O2wr(M{0oa?$)U*d# ztgg0a4CSellN$LXwPsD)>^%ZHKk~@*hbZr)tz@{mQ4SP$Fv!PIByz)5rC8aIuWugl zFQ{R~8UwP+gj(j-!9C`tiuCYDEW>itCGZs3YELE47l_~s-!}rP_Varan|dW{Fzj!n zmRvC`aN>av(wN0ZUYN&?!Us7!jo+psYd+?;Q#$pyxRQHmpj7l{wz$ z)4Y{U_cE?HYsIo)wb@@DaMJaD5XQbqi_E^o-V*?tVn}`^F7il2{+^OxqHAHvQ`ro- z9%7vPLVso=T&9+wfRW25-!K;ip?4jDe-1C@kM!khIp8+1o29X-fMJL0E7SAw6%HX0 z{Pmgw&o}xxxsxQ@@1CT(JMfBxuCO?w%1LGMWf9IEl(f5Co2ja%!)eXNJd=95C@0P8 zp(gRb?3SPBB?F#{Vy%y`!=83oqp1azg@`BIT_RK~G1vm0rBxF?yOx;Q?MPT6ir8hW zc@^2(IM|P{oM$)_x3wjm6u35n(4Nr-xVl3cdtyTC6{O!Xz2-i<622|e5B<@zjx~+^ zB>sNy0fxPeOnRVSmQ-#F0oPDPt^#(eE@nj=cvEad72EZ3ETe-s81}<_zY+X9OH|6l zcS0-oA3X($qrG~-&3K@CkslE6TUR77OO$$<-zxPw;%E*uca3vP6h*-RwzjcollNgp z0Ux@W+VNY4@_rs>upajvbj@^E@+t&LY;mmlLCihfL)-ssX1Cv{Kka-h-G6|5?J;ow zTb2CCje`28%Opt0LHvV{zTN@JT_X4P-RuF9O%hD7AA_zQ+3>4)J3$i^VM=sOQ z)x=ZBct%QPHpYez15x;q0Ixk7HP$}NBu^hq&RG14L2hn6X2Y?Ue*1=9+h&xf}*yAOf+^wg05S>d$>O#K7K{XRKiSm#+0u>g|^6?UU%Gt%_hl? zR@-Nm`YonF@}#TV?0AFvl!koptd;!S(Gnn2iJPpef4r{9maZxw2e@l$wKRRz`UdWp z^gRwiV+Zq6LLJ2vaa>uEhH1-lYjeAWL)Ckm;88~w422oo7?(qR*2iU6hm~xe8I9V2 zG|(9uV>s;hy?4mnXJObe#5yW+L)o2{(i*pTbf;bgj0ws!IX>!69q;CT=$rtIsxOx85F*SgeP* zcWFYkzE1Qg)5LC=jsgzyObXUiN<65a!5dduq0(6rz`QKP*TKsG6NyMhX(HaIi*1H2 z6oVGbxyhT0@tyV)L*aAn7Z|J0yW_taIq>pzt(7-S6X0qp@^WWcAO-XAi z;1&ocC=4}1(Jl!;y@ih3Y|J`YR8SY%rdo|-3FHF=oP@?`E^aOsq}6Q+4zpD1qKPjj zo->}rk;;!1wL}~OI^T&?eP|r}=$^;SWFpc>nuN`ZM53GmCsrg!=@4|lFe{7OvFRxo z8`lSEGDmy)EDG%75gL5o?MFh|-N58B9_1mW6?cvjgT3hHMpdL+pJPFj{@71VbvC*h zV^+F}PD-Y0X9$qZW-HKYeP>sO13z3ENA@Pe_g1v2u^%+K6t{qldMez)OJQFH=PJ{T?sV zbRMc!)ifY#;DX)=M{(`G%Y9c{+~m83;bIRC!d@vCH-TX{IL!{Gh{rkTzKVz|U(pim zsOjbn0&nOW0ePLQ@tPUb8{?=$!fE<_4L;yc<44Vu)7hwP(pvmmtpW><%gI-`Pt|T01 z4p}>E%w1YWSXm?U2t4p?fJc9OZ$@-CL}3l^Skv_D(mdfjM@y3 zfMDg^QCE_Fl~Q0?>-iM!=sJD&$X&tBl1&8@5vBk)lZ}w5r*^vEtQ$SwZWF%1s%jo3 z-B@$C-XlDtcg6gD@K@SBGV(OqXLv1IZ`4GsK3Lf(VC7Y){Z^#9UPsmyt2p~}^3qVn zTe=gEuE9a_!_rGw8ny0yX1`V?CewT!h|d%c?6ZwS8X~?w z$0SW$fcfh_XvtrU?{P>XJsY~j=yc~D0WRO;!`x>xaN-@&Yqgg+Gt>+cWGIuT;`$sy zNBdk7$FFOuvW$Y67axUsy0`gkE`8SwMAjSeJTw(r>XWGlP$-{kDr|+C3 zvtxZR&Wk_sJT^m$?5+S#byKV-=544a<~ulF_Gr#l`_no|XmYh{C-E083A=|6-{XAg zhh+rc!HhBZfht5?p;jg+2If~VxJO6r;Apwd5Pf$BzJd@)gt{s+rV>d}m{S|&GUnlE zES7?{j|`>bFBF;E@Fk8;6%-&|G| zpruAHK^^-B%|HhMT*gz?7T!{aeYzpt3~!RM<@1QjPszvi_OFrxYCPY3FY$kc2#LkG zcub+mgwxNsJXZUhE;q4xWO|)s+&@(i0il_rA8sz@HT9k^}`$+({hC#qpc2nKU5Zqn(i}9K4dt$7uzPT-~_P5 zBABzdw0=iqAT!rY514pV0oK0*``@gd50}|kVZVDvX&FAg+7ljRM0qFXRzg$7E(bK#;2lC6c^n$MK4)4U4gOwHez){wWRJjl<`*ZOfXqb4eX~zWy~#m?Q){-2UqZ|YM!ra3;%^?6tOCsUQE?{q zzPs7C)8HoR)5UbrZ#?4#@np7*T{8c=_T2ROdM*xhMvimvB<$h`>h9o1Z2|Pfg33+( z%?Miierolgtw%K~8sRh$*^V^)gwdIYF*?bui8fbtFLI@A zH}1hQyvMbB*rOx&TqLr1>H&QKU@cC5SHxxr3b{~Z`4%#0c*CL}%NNX>XpzSC#ZzQ( z>!uQ@J5El-5y+S(iY!ki%{DMjpF|VEp>rmReT#g{{|0^N?qdw2WP>M$=o`F&4bG+G z%`A;dcqki#%50&|6@!xSp(^V6(U9v{O>NDM_81ZZBkDNlD6ii1JNYS$pwn4~M^+iT?;_XST$=&B&!!twb z>e)V}_a6d(734f2{u^8#8s7QqzXTUCC@?U!|Avy~6e^(p>y~_toi?>@5ma$bC=oS- zQ3Fa83x&KKI*1ZVTIQ!9y%>(IMfw86Pt8Z<59d(mM3H09l%}mUEhM7KQ$2R|x1&$o zx2rB5-+nz_V0O6JS{Rd|7bHt||Z zQ`|Hm0fP+e&VR1xB_7wQPztb_Bi0MC+T!dM-Np{C-hCD{12%6Ep-z7`Hg}j8!ua`-=w?90@}BV2 ztug7xXY8qsFaY+A?yuw{T=^Yj(ftwzRZrU>gj>!!NAj2$94!#Z98%M*eKKsbA66>W`7@s8*%e zT!2ocdcEW<-17NB_E(-Lp&jo&WwUB80qA~dr6cNSx~Z@#<;Qs80vh%R3#AJWWefRS zouyghQ?JJ=h2l(%!=9t?W&tPhCq3YeA!hNzdST?+s;+78jZH7{7k*wyzE6^THx@IH z79I;v*_GCtutRLKv##ZWdf@#zH4FDxPy?7F1I14~l0%5k-$T~rh3|0%i8Rz+@Uukv zDS2BqZn(_BxBG~)Z8wGJ$t+Y)kI|veEB<3EsTBpF@(_o*4;-t_{0zfpTQM7>H`xl8 zjH?po+F{}pN4Z73XA1P?8R}m*oGlovUVs4u6Tt)nlYJSDIyi$0q_IH1hoT+ngg|Xi z{9e>&T^+00!+KOYSuN6eSyEFgw^I5cB=e{M-;bEG)nWKNtmK}xd{U+r=A3Lb@yGbv zl*&lX*l2Mpog>Tg1X`$(E)I9P2ZT9yhcqdU zsLueO)K>(seqDCSg7Kbfz?xBOq5xyR3g>s&PvM3YS#huw_x4RYjfBc;S@V`@SBcBS z9JBZLsgW&|;4S*iRCAOVR~Rc`KTJm3;~I>8%;ilJ-f>?U&tN2ZZ|Y!0yG0T0a8`=U zon#-`dONsUN*C$DK)yRdyU^s7)sqgbi83z|h6#%*I{MX~s}`X)8D0q%tptcs`Xg4K z!f`16Ob4ZmAs@QP7`^OW=M2P*uiST>1XA05&+@l<3UJF}FIPqDac*QR2eII+b6Pcrw zNP0*8tu+ak$8A;64@N=Q&3$vAxJ`JlI6poa9@jh`nY3yRS@6C%{`J?l%2A;Qbe5{) zB604J87fh6^WQeebOP=s!WiJ|WqeV%81FI>Ja<+KI11t~mvDWsfKh9}i54y6)*?qW z*s{hjX>6>oG&%WJu`7+*IS53gfixr7PVe+kyhrM={F%5U+ z;ADs)|FEZ7sc0f}nODXRd`1Wg(^@G?;ECH!8X0;F?EyPfb@k!u&R@@kXpy<9QEae- z54Q-PZXpbD1cTuTAVN=}ZW6^zXo|PtnrkFRg0ns5N)`=3IqB)g^cCG?#D5#glpCx( zsEiIbQjf>!R+6sa$bb_Y<_?bH1K0j%RPN}T} z5{S#@tR}kq8EO6}9O;B|9!8`zHZv4&a!#U#LCd2?XJiNLHVDo zG?InOBZaak2|x9lPWbbW27=73DAbai!r<`HVGp9si=wUIrWqZJ`%kI371mYZ1sTq9 zZW#2qgU~$G>K^J$fk-iJlAA7f{2~@gAsuOb1zqsHp?=DnvU*yYD$_1QrYPS?otVDK zBt{9(=jSspWLF=;s1G@6w<;NDdV}to101A$(bs6RnZ1THlW}#qIqd1~JN8@h(yN}f zV_e2fw6@^CF*uHxSa`g@Qd6lBZA6|C@r{Y)WiFPuyY>r%0iJzWl%7uznQ5z=FHjxd zp^K~ur_nfH&q+;Q*>GkHyo>8t#FuvEi@)-xqOEH#7a%`JkCqu{X)7Y(kCepVr*#U? z)zW|e)Dywpo)3sV#0l%y>ZT1p6gHo?uz(fn--6GK<&L0&ve)_fLtKPC%5Q35XX!a- zp274o7lUwI5(t!|ctIAHaPKEVWCM#&O+nz=#a~vFg+}u9BwtlBDibd7ZtieZtm# z%MAAjJ*53I*^(Mj*QZ}54W9!)2`^N+``K9%yIL#(jzJ>N$Cr=(2IK1gMmUpp6Y!fnGTgyVj}GI zc7n(2v0{&4^PGK3SLytDj-Lsm7xu*HLUGf&oH&2`k*?|%b9;q7^Xdb?godXtkUgRR z#_1SeC#0*YBVwLijqn4Z8zkGjFX57b{iuo0$t95C(--M-tIXbLR(x^^A1#;rR&{

VY$tI*wL^=WUyZOw@o`cV*&jT}a)-j86gX8zE}H|6J>I=q1& zZrWE0sNwHFylp^`GoHam0;J%r?aL5 zQ^yaa-qYnvk3p8i*-Z2b5BNsf$wlMvtuc9aY`(qwPQiGKUsHfNBs{=NpnYr|X{>nh zP(C*yiyPnRQ@6h=5A0-9$9yj&TSTO=;Shav%>pi(Al(@}??bw7&0Ux2ucyMoA46E< zBJr$&6(bvhCi@;;Ya^TFHba{*8${l$$mBG@2qKGf)zhads37T!HlB>$vC;EGiX)G# z@GMWvnN0}X9vkts2=R|xj>(?r=$j0mF@PNjcVro~t9>}DKg5 zxb02|-6iFp5IjfnF>mEI8`NY@@^0Lwrv}Z@upl2x?9d#P9w_lj;U^Pa(b^@Seu4cv zB(Rfp0slSi?SlcU*~!KJGxKfhcG3U-0xrLd6=YwBtHNijz&drqm%%E^FT0{PXFV&4 zui@$<@RI>;Dm_9NB9k9kG{}pr0vwhOwH20H%unHeiuj(P-)#m`=Db4_`bhMhTNgeF zj70Lv%)`Rm!>>IxBjf4%pBIfnqR{gF&zXh6&|8NO87|)> zRENJQr)@0Q;C-hc#uHBroro8_-#pkvuYXy(_C_@Y-kur5cXjAOb_}B=$+1nPWRj%> zTS8@ah`XC_P5jYdN1Il|o3cAiRYL6ZNQrmi)T%X+IDMXQWiGNc z;{IVAUsmz>WBvjc_5MDAxM0KBYEG5m;sUl>l6XQCnOHOT!XCi&z5k7j$(w;)z{asx zCYAOHe174#&BuO7AW3y#e)D4x(qm9;H~j+6he#I!p`{+(lkfTM#G>WFmgZ|tI|7?6 z*ekKt@wF(IRmhtO_Z*r>G1CKR|(_H@-vuw;xcuIblt`xV+Je%S-%qd3;c8 zF%HmsCkulbqc|%RLS|^G4%2somWeZs-KrxmSiGIVOf|aJV`Rnu832See1v$1)@=by zaH{tRs8#0?S{^w%IvHjg8y>wSdf6n_5@CUcLPfO3SH5DlomY_Gl{XMT@eU+Hko~oO zX0FQZU1xtF(K4|<>$gzbgLl%{mAYc(T>!L;Ya1juSwIp~?5ve@$RLRyJ?a~$YrAD3 zN4jU3J6tZ_=kp24Ip`gaX$LoRN}f)7Rpuj$N!1isK%NwGz`=f;aLEIz#XAZ0KwXnh2? z%dl1gGRw2o^!kv@SD**;ZibJ!$P%b)jFD9`81MnJ#@y*ts=o6<=#vduI|}Ei8$3qIyrhD9E2kNc3V~6Q z8F8@ZV0DmcsmmN@c`z1xMwJWsY86|g zZ|6MJi7k_R%Ivg@-1qD0$wu$+2dd-=XjBr8fV>`>Cf z#3B4E8Qmy^paRNz*cF+NCp7xUv4((QCcP|R+&9(X%twk|a3L*GN3bN)xOY`D*jB{o5MIwXJaNv5(1ZIL;P6`gZzO1q0=ElVllJnJwK`$%t<>i#!K(>E2S5s;a0a{j z;g*?-pZKpH&oI|0>M}GUsg|pSPLf#=<6LRCbx^|!8 zV*hY?o9qBKTWKupUo6IkDu&$6HpaBnIx354Ja-r8czi2ZG55(Kxi~uG(wgIh5CdPc zb<>X+__(m*z2|Aqaz)S}H^F=BwRaB?NRK`Y(gj$v)>&j}&hD93BHg1llq@qWwLFC6 zVBqeB6q$DP5C=2%>ZSy#VcPSQic5JBG+?_oZ>Mbe5489@LQ=U#_o!Dx(?<^6NaD&!KRvM)!zAbkL9be@EFPtHr2vh;N%C)Gx>JOXrb)P+iJ;kaI z6msjC9_M`9WimGcG&g4iPWUG6`RXb+-vF4J?Y4i)n-`HWh0_mt6I_jT)72JbZQhgY zR5bt*FOV?A47_jS=awEBqw?M0sxvaxGDYrVjkWguNB|!s3Xd)-N#-iORGa8rR*!6f z_7Pc;Idf;Sn@wa*{e0gU2E_p8t8SmZlw1&__#>rts(94GJrpQf{SdmYv9NW@ZLoB11}AJ4?GrNnYpENEEl+2RVuHv%S>hEi&1#_HbN*apvY* z@8QBDEV)^4yjjjVkZr?d%7uD7B*Ombo?+fDM#IY~wn5>D0E$AkMQATk6)WTfE`6bK zPr8lIKmZNBlAZ+bcf+1sDaHwRVLnyqF{4lH5!aCpn%XR=b0A#Q%0qk^M z;zVh?q^nQEkH-PkX1Er(S(zvFWER)uM^ns=ppufnbHXu$SxSTU+daTzF=$v6kgj{X zHjQtOmtdqO9_-?}*%HIy{CIc~6eNYcNLBi3h9;gi7k`;u3Et#<@m*^%hT91*$b#DA z_~ayw_Q-`r*G3ZGRrl3XhMh8C4!CuHjn_euNX&g56eLPaj;beHU&;>coQxzzNy9)r zM+=ssYVD$E5i!_Lr&aaYn@05nC25tp?H!nECF%v7MoLH?4V#2CQlx2CB?iAV8>u{= zR_(HMQW-}mV!y&%X^#xTROe%JcD9~|F3Q7FSaHGHe(l@!H_z_gonDUc6+qPWsDrYJ z^tGdjfTNEHh>1B5t-=j(3>?+sG7_n5UFZih1a%8>i@UsmTGjzZCVXI32VEa6#~>ed zZS)O-Hq2|_Li2H8Q$NXTZXkZ=&M>@}nz=mjQb>f5Zda4bNgE=FMGGT;A9m$j4W3(= z8bZK2yDBxEWI>f_U9g%lY5R&d5P+aJw|nj?wLaG_hp4?-PqTI zE0d8@(OD)UyptQ^*1pB**x=O^oYFK*#JC*|q6hgvq&xd@V}6nSkx^f^ zOj;$TY$ZjeI(cp^+!Z&MJ#`U%3hS2Y07LIRmYnVo_376y9hV zHCcmLi|;Ktzc^YD*Psf2AZc&+YE-?ogRb?maoQ~`wAc`8;Bw*DLiys9ABB0AV1o4> z+Ckie=Si655RBu^Lh&@z2LynlK==f^GKoss9A)&e0mh99a!?%ckzEL5TVJo(FBcvO39S^+#x}4cK5`KEhf_zKr zWuj9%;nBH}n(iQU;(DCm6p(;%3a04Z5VX}sa|3PJprat*i_TjaZsxfjB?i=rY{%%W zqVewYysn!&Z5N1{)@q}((o0jjner3cz>_icLbi=h}^BFJs>ALx9nlMzqn*pE?n)StB_V2bRhd#FXEU6YFk+ zZT*T;JN|*SKb>-VczbZzxx-yQ8^bE(s_-Fs9^v(8$dS$Xl(6G22II+UJ>=Z?vPX{rwnp~xaH8P2t3+BFtG z!FBJ0+LO^9XPP4diPVN&yvCH{_k%O9d(f%kLf59FkUlq1V13=n;Yh+@?HmUHEV@Us! zW61Q6(pZ^Svd$jq9|a%xa3Sb4U$J8?3efW2Ut>qVaqU024mv1p|4&m@sLQ4?UcQFu zi}L?{{oh|B#qgEa6t42GdjS9D7JaQ zm_elne~q`kVEvxIJ@zH@krWhr_{aGFk|M#tr2lCZx$j@{?=(r~KZ>&saUqoaUvOFw zcOVw%>F}>|#3NjYr+`-+{t)l=8ze+a@2bCyii^M1i#x@I z_@4cWub%$#+<#WU{!{wpp67p__d?_X>79|jR_mX2gMWzRUtfu_#VG%+7MDo=Sj|fS zC3y+B@BSg{l)RADUIT|>`w)BU%k&HT#T7;VAvu9i&bdLzHPE20bF^3M|4h~X;YL=z zT1T#V``h{-uTj3hg~+IR!C63=7X*K>_806;{VN8zr2T{OUgAQSH@#rYpy12Do$>Pv z#ys?b5rKHFP(geD!Jl97$;rPs&1<1TXP}+ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index 346d645fd06..7462052527f 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -14,5 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar +wrapperVersion=3.3.2 +distributionType=bin +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.8/apache-maven-3.9.8-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar diff --git a/benchmarks/src/test/java/zipkin2/server/ServerIntegratedBenchmark.java b/benchmarks/src/test/java/zipkin2/server/ServerIntegratedBenchmark.java index f69ab119850..54319975b0d 100644 --- a/benchmarks/src/test/java/zipkin2/server/ServerIntegratedBenchmark.java +++ b/benchmarks/src/test/java/zipkin2/server/ServerIntegratedBenchmark.java @@ -81,7 +81,7 @@ class ServerIntegratedBenchmark { @Test void elasticsearch() throws Exception { GenericContainer elasticsearch = - new GenericContainer<>(parse("ghcr.io/openzipkin/zipkin-elasticsearch7:3.3.1")) + new GenericContainer<>(parse("ghcr.io/openzipkin/zipkin-elasticsearch7:3.4.0")) .withNetwork(Network.SHARED) .withNetworkAliases("elasticsearch") .withLabel("name", "elasticsearch") @@ -95,7 +95,7 @@ class ServerIntegratedBenchmark { @Test void cassandra3() throws Exception { GenericContainer cassandra = - new GenericContainer<>(parse("ghcr.io/openzipkin/zipkin-cassandra:3.3.1")) + new GenericContainer<>(parse("ghcr.io/openzipkin/zipkin-cassandra:3.4.0")) .withNetwork(Network.SHARED) .withNetworkAliases("cassandra") .withLabel("name", "cassandra") @@ -109,7 +109,7 @@ class ServerIntegratedBenchmark { @Test void mysql() throws Exception { GenericContainer mysql = - new GenericContainer<>(parse("ghcr.io/openzipkin/zipkin-mysql:3.3.1")) + new GenericContainer<>(parse("ghcr.io/openzipkin/zipkin-mysql:3.4.0")) .withNetwork(Network.SHARED) .withNetworkAliases("mysql") .withLabel("name", "mysql") @@ -147,7 +147,7 @@ void runBenchmark(@Nullable GenericContainer storage, GenericContainer zip // Use a quay.io mirror to prevent build outages due to Docker Hub pull quotas // Use same version as in docker/examples/docker-compose-prometheus.yml GenericContainer prometheus = - new GenericContainer<>(parse("quay.io/prometheus/prometheus:v2.51.2")) + new GenericContainer<>(parse("quay.io/prometheus/prometheus:v2.53.1")) .withNetwork(Network.SHARED) .withNetworkAliases("prometheus") .withExposedPorts(9090) @@ -157,7 +157,7 @@ void runBenchmark(@Nullable GenericContainer storage, GenericContainer zip // Use a quay.io mirror to prevent build outages due to Docker Hub pull quotas // Use same version as in docker/examples/docker-compose-prometheus.yml - GenericContainer grafana = new GenericContainer<>(parse("quay.io/giantswarm/grafana:7.5.9")) + GenericContainer grafana = new GenericContainer<>(parse("quay.io/giantswarm/grafana:7.5.12")) .withNetwork(Network.SHARED) .withNetworkAliases("grafana") .withExposedPorts(3000) @@ -169,7 +169,7 @@ void runBenchmark(@Nullable GenericContainer storage, GenericContainer zip // Use a quay.io mirror to prevent build outages due to Docker Hub pull quotas // Use same version as in docker/examples/docker-compose-prometheus.yml GenericContainer grafanaDashboards = - new GenericContainer<>(parse("quay.io/cilium/alpine-curl:v1.9.0")) + new GenericContainer<>(parse("quay.io/cilium/alpine-curl:v1.10.0")) .withNetwork(Network.SHARED) .withWorkingDirectory("/tmp") .withLogConsumer(new Slf4jLogConsumer(LOG)) @@ -277,7 +277,7 @@ GenericContainer createZipkinContainer(@Nullable GenericContainer storage) final GenericContainer zipkin; if (RELEASE_VERSION == null) { - zipkin = new GenericContainer<>(parse("ghcr.io/openzipkin/java:21.0.3_p9")); + zipkin = new GenericContainer<>(parse("ghcr.io/openzipkin/java:21.0.4_p7")); List classpath = new ArrayList<>(); for (String item : System.getProperty("java.class.path").split(File.pathSeparator)) { Path path = Paths.get(item); diff --git a/build-bin/docker-compose-zipkin.yml b/build-bin/docker-compose-zipkin.yml index 3a2e2938319..57f2f06ad39 100755 --- a/build-bin/docker-compose-zipkin.yml +++ b/build-bin/docker-compose-zipkin.yml @@ -14,7 +14,7 @@ services: # Use fixed service and container name 'sut; so our test script can copy/pasta sut: container_name: sut - image: ghcr.io/openzipkin/alpine:3.20.0 + image: ghcr.io/openzipkin/alpine:3.20.2 entrypoint: /bin/sh # Keep the container running until HEALTHCHECK passes command: "-c \"sleep 5m\"" diff --git a/build-bin/docker/docker-healthcheck b/build-bin/docker/docker-healthcheck index 8b70dc4114c..d255dd7c5ad 100755 --- a/build-bin/docker/docker-healthcheck +++ b/build-bin/docker/docker-healthcheck @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# HEALTHCHECK for use in `docker ps`, `docker-compose ps`, or a readiness probe in k8s. +# HEALTHCHECK for use in `docker ps`, `docker compose ps`, or a readiness probe in k8s. # # The following variables are read from ENV in the Dockerfile or env readable from pid 1. # * HEALTHCHECK_KIND - must be "http" or "tcp". Defaults to "http" diff --git a/build-bin/docker/docker_args b/build-bin/docker/docker_args index 1ebdb54fe35..02241b9f0cf 100755 --- a/build-bin/docker/docker_args +++ b/build-bin/docker/docker_args @@ -37,7 +37,7 @@ if [ -n "${DOCKER_TARGET}" ]; then fi # When non-empty, becomes the base layer including tag appropriate for the image being built. -# e.g. ghcr.io/openzipkin/java:21.0.3_p9-jre +# e.g. ghcr.io/openzipkin/java:21.0.4_p7-jre # # This is not required to be a base (FROM scratch) image like ghcr.io/openzipkin/alpine:3.12.3 # See https://docs.docker.com/glossary/#parent-image @@ -51,7 +51,7 @@ if [ -n "${ALPINE_VERSION}" ]; then docker_args="${docker_args} --build-arg alpine_version=${ALPINE_VERSION}" fi -# When non-empty, becomes the build-arg java_version. e.g. "21.0.3_p9" +# When non-empty, becomes the build-arg java_version. e.g. "21.0.4_p7" # Used to align base layers from https://github.com/orgs/openzipkin/packages/container/package/java if [ -n "${JAVA_VERSION}" ]; then docker_args="${docker_args} --build-arg java_version=${JAVA_VERSION}" diff --git a/build-bin/docker/docker_test_image b/build-bin/docker/docker_test_image index fad9da0d852..062ced7b213 100755 --- a/build-bin/docker/docker_test_image +++ b/build-bin/docker/docker_test_image @@ -11,16 +11,16 @@ set -ue -# export this variable so that docker-compose can use it +# export this variable so that docker compose can use it export DOCKER_IMAGE=${1?full docker_tag is required. Ex openzipkin/zipkin:test} -# The two options are to run a single container of the image, or docker-compose which includes it. +# The two options are to run a single container of the image, or docker compose which includes it. docker_compose_file=${2:-build-bin/docker-compose-$(echo ${DOCKER_IMAGE}| sed 's~.*/\(.*\):.*~\1~g').yml} docker_container=${3:-sut} # First try to run the intended containers. health_rc=0 if test -f "${docker_compose_file}"; then - docker-compose -f "${docker_compose_file}" up --remove-orphans -d --quiet-pull || health_rc=1 + docker compose -f "${docker_compose_file}" up --remove-orphans -d --quiet-pull || health_rc=1 else docker run --name ${docker_container} -d ${DOCKER_IMAGE} || health_rc=1 fi @@ -30,13 +30,13 @@ fi if [ "${health_rc}" = "1" ] || ! build-bin/docker/docker_block_on_health ${docker_container}; then >&2 echo "*** Failed waiting for health of ${docker_container}" - # Sadly, we can't `docker-compose inspect`. This means we may not see the inspect output of the - # container that failed in docker-compose until this is revised to work around compose/issues/4155 + # Sadly, we can't `docker compose inspect`. This means we may not see the inspect output of the + # container that failed in docker compose until this is revised to work around compose/issues/4155 docker inspect --format='{{json .State.Health.Log}}' ${docker_container} || true # Log any containers output to console before we remove them. if test -f "${docker_compose_file}"; then - docker-compose -f "${docker_compose_file}" logs + docker compose -f "${docker_compose_file}" logs else docker logs ${docker_container} || true fi @@ -45,7 +45,7 @@ fi # Clean up any containers, so that we can run this again without conflict. if test -f "${docker_compose_file}"; then - docker-compose -f "${docker_compose_file}" down + docker compose -f "${docker_compose_file}" down else docker kill ${docker_container} && docker rm ${docker_container} fi diff --git a/build-bin/maven/maven_unjar b/build-bin/maven/maven_unjar index 624742ce9b3..6d95f7984db 100755 --- a/build-bin/maven/maven_unjar +++ b/build-bin/maven/maven_unjar @@ -58,7 +58,7 @@ fi if ! test -f ${artifact_id}.jar && [ ${is_release} = "true" ]; then mvn_get="mvn -q --batch-mode -Denforcer.fail=false \ - org.apache.maven.plugins:maven-dependency-plugin:3.6.1:get \ + org.apache.maven.plugins:maven-dependency-plugin:3.7.1:get \ -Dtransitive=false -DgroupId=${group_id} -DartifactId=${artifact_id} -Dversion=${version}" if [ -n "${classifier}" ]; then diff --git a/docker/Dockerfile b/docker/Dockerfile index b0af1afcf7f..a2c517c54e0 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -8,10 +8,10 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch diff --git a/docker/RATIONALE.md b/docker/RATIONALE.md index 9cdcf368d39..4fd7dc54e2a 100644 --- a/docker/RATIONALE.md +++ b/docker/RATIONALE.md @@ -7,7 +7,7 @@ dependency: having HEALTHCHECK present makes triage and scripting a bit easier. HEALTHCHECK on our test image serves primarily three purposes: * ad-hoc or scripted status of health using docker ps instead of knowing Kafka commands - * to allow manual usage of the docker-compose v2 service_healthy condition + * to allow manual usage of the docker compose v2 service_healthy condition * support Docker Hub automated test service Ex. The following command can be used ad-hoc or in scripts without the user knowing Kafka: diff --git a/docker/examples/README.md b/docker/examples/README.md index e441b0ab35f..9655c7c43dd 100644 --- a/docker/examples/README.md +++ b/docker/examples/README.md @@ -2,15 +2,15 @@ This project is configured to run docker containers using [docker-compose](https://docs.docker.com/compose/). Note that the default -configuration requires docker-compose 1.6.0+ and docker-engine 1.10.0+. +configuration requires docker compose 1.6.0+ and docker-engine 1.10.0+. -To start the default docker-compose configuration, run: +To start the default docker compose configuration, run: ```bash # To use the last released version of zipkin -$ docker-compose up +$ docker compose up # To use the last built version of zipkin -$ TAG=master docker-compose up +$ TAG=master docker compose up ``` View the web UI at $(docker ip):9411. Traces are stored in memory. @@ -26,7 +26,7 @@ own containers. To add ActiveMQ configuration, run: ```bash -$ docker-compose -f docker-compose-activemq.yml up +$ docker compose -f docker-compose-activemq.yml up ``` Then configure the [ActiveMQ sender](https://github.com/openzipkin/zipkin-reporter-java/blob/master/activemq-client/src/main/java/zipkin2/reporter/activemq/ActiveMQSender.java) @@ -41,7 +41,7 @@ You can store traces in [Cassandra](../test-images/zipkin-cassandra/README.md) i To start the Cassandra-backed configuration, run: ```bash -$ docker-compose -f docker-compose-cassandra.yml up +$ docker compose -f docker-compose-cassandra.yml up ``` The `zipkin-dependencies` container is a scheduled task that runs every hour. @@ -49,7 +49,7 @@ If you want to see the dependency graph before then, you can run it manually in another terminal like so: ```bash -$ docker-compose -f docker-compose-cassandra.yml run --rm --no-deps --entrypoint start-zipkin-dependencies dependencies +$ docker compose -f docker-compose-cassandra.yml run --rm --no-deps --entrypoint start-zipkin-dependencies dependencies ``` ## Elasticsearch @@ -61,7 +61,7 @@ using the `docker-compose-elasticsearch.yml` file. This configuration starts `zi To start the Elasticsearch-backed configuration, run: ```bash -$ docker-compose -f docker-compose-elasticsearch.yml up +$ docker compose -f docker-compose-elasticsearch.yml up ``` The `zipkin-dependencies` container is a scheduled task that runs every hour. @@ -69,7 +69,7 @@ If you want to see the dependency graph before then, you can run it manually in another terminal like so: ```bash -$ docker-compose -f docker-compose-elasticsearch.yml run --rm --no-deps --entrypoint start-zipkin-dependencies dependencies +$ docker compose -f docker-compose-elasticsearch.yml run --rm --no-deps --entrypoint start-zipkin-dependencies dependencies ``` ## Kafka @@ -80,7 +80,7 @@ own containers. To add Kafka configuration, run: ```bash -$ docker-compose -f docker-compose-kafka.yml up +$ docker compose -f docker-compose-kafka.yml up ``` Then configure the [Kafka sender](https://github.com/openzipkin/zipkin-reporter-java/blob/master/kafka/src/main/java/zipkin2/reporter/kafka/KafkaSender.java) using a `bootstrapServers` value of `host.docker.internal:9092` if your application is inside the same docker network or `localhost:19092` if not, but running on the same host. @@ -101,7 +101,7 @@ You can store traces in [MySQL](../test-images/zipkin-mysql/README.md) instead o To start the MySQL-backed configuration, run: ```bash -$ docker-compose -f docker-compose-mysql.yml up +$ docker compose -f docker-compose-mysql.yml up ``` ## RabbitMQ @@ -112,7 +112,7 @@ own containers. To add RabbitMQ configuration, run: ```bash -$ docker-compose -f docker-compose-rabbitmq.yml up +$ docker compose -f docker-compose-rabbitmq.yml up ``` Then configure the [RabbitMQ sender](https://github.com/openzipkin/zipkin-reporter-java/blob/master/amqp-client/src/main/java/zipkin2/reporter/amqp/RabbitMQSender.java) @@ -129,18 +129,18 @@ discover zipkin's endpoint from `eureka` and use it to send spans. To try this out, run: ```bash -$ docker-compose -f docker-compose.yml -f docker-compose-eureka.yml up +$ docker compose -f docker-compose.yml -f docker-compose-eureka.yml up ``` ## Example -The docker-compose configuration can be extended to host an [example application](https://github.com/openzipkin/brave-example) -using the `docker-compose-example.yml` file. That file employs [docker-compose overrides](https://docs.docker.com/compose/extends/#multiple-compose-files) +The docker compose configuration can be extended to host an [example application](https://github.com/openzipkin/brave-example) +using the `docker-compose-example.yml` file. That file employs [docker compose overrides](https://docs.docker.com/compose/extends/#multiple-compose-files) to add a "frontend" and "backend" service. To add the example configuration, run: ```bash -$ docker-compose -f docker-compose.yml -f docker-compose-example.yml up +$ docker compose -f docker-compose.yml -f docker-compose-example.yml up ``` Once the services start, open http://localhost:8081/ @@ -150,15 +150,15 @@ Afterward, you can view traces that went through the backend via http://localhos ## UI -The docker-compose configuration can be extended to [host the UI](../test-images/zipkin-ui/README.md) on port 80 +The docker compose configuration can be extended to [host the UI](../test-images/zipkin-ui/README.md) on port 80 using the `docker-compose-ui.yml` file. That file employs -[docker-compose overrides](https://docs.docker.com/compose/extends/#multiple-compose-files) +[docker compose overrides](https://docs.docker.com/compose/extends/#multiple-compose-files) to add an NGINX container and relevant settings. To start the NGINX configuration, run: ```bash -$ docker-compose -f docker-compose.yml -f docker-compose-ui.yml up +$ docker compose -f docker-compose.yml -f docker-compose-ui.yml up ``` This container doubles as a skeleton for creating proxy configuration around @@ -176,14 +176,14 @@ $ docker run -d -p 80:80 \ ## UI Proxy -The docker-compose configuration can be extended to [proxy the UI](../test-images/zipkin-uiproxy/README.md) on port 80 +The docker compose configuration can be extended to [proxy the UI](../test-images/zipkin-uiproxy/README.md) on port 80 using the `docker-compose-uiproxy.yml` file. That file employs -[docker-compose overrides](https://docs.docker.com/compose/extends/#multiple-compose-files) to add an NGINX container and relevant settings. +[docker compose overrides](https://docs.docker.com/compose/extends/#multiple-compose-files) to add an NGINX container and relevant settings. To start the NGINX configuration, run: ```bash -$ docker-compose -f docker-compose.yml -f docker-compose-uiproxy.yml up +$ docker compose -f docker-compose.yml -f docker-compose-uiproxy.yml up ``` This container helps verify the `ZIPKIN_UI_BASEPATH` variable by setting it to diff --git a/docker/examples/docker-compose-activemq.yml b/docker/examples/docker-compose-activemq.yml index eef704422be..92d1b7d84e9 100644 --- a/docker/examples/docker-compose-activemq.yml +++ b/docker/examples/docker-compose-activemq.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # It extends the default configuration from docker-compose.yml to add a test diff --git a/docker/examples/docker-compose-cassandra.yml b/docker/examples/docker-compose-cassandra.yml index c432235280a..0822766876e 100644 --- a/docker/examples/docker-compose-cassandra.yml +++ b/docker/examples/docker-compose-cassandra.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # It extends the default configuration from docker-compose.yml to run the diff --git a/docker/examples/docker-compose-elasticsearch.yml b/docker/examples/docker-compose-elasticsearch.yml index 61bea9a5c05..bcb4c7603d5 100644 --- a/docker/examples/docker-compose-elasticsearch.yml +++ b/docker/examples/docker-compose-elasticsearch.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # It extends the default configuration from docker-compose.yml to run the diff --git a/docker/examples/docker-compose-eureka.yml b/docker/examples/docker-compose-eureka.yml index 556cf0a20dd..5ff0f1d2023 100644 --- a/docker/examples/docker-compose-eureka.yml +++ b/docker/examples/docker-compose-eureka.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # It extends the default configuration from docker-compose.yml to register diff --git a/docker/examples/docker-compose-kafka.yml b/docker/examples/docker-compose-kafka.yml index 28b03bffe66..37e67d36e05 100644 --- a/docker/examples/docker-compose-kafka.yml +++ b/docker/examples/docker-compose-kafka.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # It extends the default configuration from docker-compose.yml to add a test diff --git a/docker/examples/docker-compose-mysql.yml b/docker/examples/docker-compose-mysql.yml index d1bdeb878dc..0217ee3fd04 100644 --- a/docker/examples/docker-compose-mysql.yml +++ b/docker/examples/docker-compose-mysql.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # This runs the zipkin and zipkin-mysql containers, using docker-compose's diff --git a/docker/examples/docker-compose-prometheus.yml b/docker/examples/docker-compose-prometheus.yml index 0b142abe87a..d88dc832528 100644 --- a/docker/examples/docker-compose-prometheus.yml +++ b/docker/examples/docker-compose-prometheus.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # This runs containers that collect data for our Grafana dashboard diff --git a/docker/examples/docker-compose-rabbitmq.yml b/docker/examples/docker-compose-rabbitmq.yml index 214ccf0216d..10ba2e0eab0 100644 --- a/docker/examples/docker-compose-rabbitmq.yml +++ b/docker/examples/docker-compose-rabbitmq.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # It extends the default configuration from docker-compose.yml to add a test diff --git a/docker/examples/docker-compose-ui.yml b/docker/examples/docker-compose-ui.yml index b790e6b02ab..43cf412cf2e 100644 --- a/docker/examples/docker-compose-ui.yml +++ b/docker/examples/docker-compose-ui.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # It extends the default configuration from docker-compose.yml, hosting the diff --git a/docker/examples/docker-compose-uiproxy.yml b/docker/examples/docker-compose-uiproxy.yml index a01658436f2..8fae4f81679 100644 --- a/docker/examples/docker-compose-uiproxy.yml +++ b/docker/examples/docker-compose-uiproxy.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # It extends the default configuration from docker-compose.yml, hosting the diff --git a/docker/examples/docker-compose.yml b/docker/examples/docker-compose.yml index 1210bb8d593..bd358dfc494 100644 --- a/docker/examples/docker-compose.yml +++ b/docker/examples/docker-compose.yml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 # -# This file uses the version 2 docker-compose file format, described here: +# This file uses the version 2 docker compose file format, described here: # https://docs.docker.com/compose/compose-file/#version-2 # # This runs the zipkin slim container, using docker-compose's default networking diff --git a/docker/test-images/zipkin-activemq/Dockerfile b/docker/test-images/zipkin-activemq/Dockerfile index 2e4ab7167f5..9f0a408b3b6 100644 --- a/docker/test-images/zipkin-activemq/Dockerfile +++ b/docker/test-images/zipkin-activemq/Dockerfile @@ -8,10 +8,10 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch diff --git a/docker/test-images/zipkin-cassandra/Dockerfile b/docker/test-images/zipkin-cassandra/Dockerfile index f84a6bcd7ee..4d8d38c574d 100644 --- a/docker/test-images/zipkin-cassandra/Dockerfile +++ b/docker/test-images/zipkin-cassandra/Dockerfile @@ -8,10 +8,10 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch diff --git a/docker/test-images/zipkin-cassandra/install.sh b/docker/test-images/zipkin-cassandra/install.sh index 60c8ef3e928..c1929d69014 100755 --- a/docker/test-images/zipkin-cassandra/install.sh +++ b/docker/test-images/zipkin-cassandra/install.sh @@ -60,7 +60,7 @@ cat > pom.xml <<-'EOF' EOF mvn -q --batch-mode -DoutputDirectory=lib \ -Dcassandra.version=${CASSANDRA_VERSION} \ - org.apache.maven.plugins:maven-dependency-plugin:3.6.1:copy-dependencies + org.apache.maven.plugins:maven-dependency-plugin:3.7.1:copy-dependencies rm pom.xml # Make sure you use relative paths in references like this, so that installation diff --git a/docker/test-images/zipkin-elasticsearch7/Dockerfile b/docker/test-images/zipkin-elasticsearch7/Dockerfile index 05a31019d47..89aede2d332 100644 --- a/docker/test-images/zipkin-elasticsearch7/Dockerfile +++ b/docker/test-images/zipkin-elasticsearch7/Dockerfile @@ -8,10 +8,10 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch @@ -26,7 +26,7 @@ WORKDIR /install # Use latest 7.x version from https://www.elastic.co/downloads/past-releases#elasticsearch-no-jdk # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG elasticsearch7_version=7.17.21 +ARG elasticsearch7_version=7.17.23 # Download only the OSS distribution (lacks X-Pack) RUN \ @@ -41,7 +41,7 @@ COPY --from=scratch /config/ ./config/ # production -jre base layer used by zipkin and zipkin-slim. FROM ghcr.io/openzipkin/java:${java_version} as zipkin-elasticsearch7 LABEL org.opencontainers.image.description="Elasticsearch distribution on OpenJDK and Alpine Linux" -ARG elasticsearch7_version=7.17.21 +ARG elasticsearch7_version=7.17.23 LABEL elasticsearch-version=$elasticsearch7_version # The full license is also included in the image at /elasticsearch/LICENSE.txt. diff --git a/docker/test-images/zipkin-elasticsearch8/Dockerfile b/docker/test-images/zipkin-elasticsearch8/Dockerfile index fdd85f03dce..15b474717b4 100644 --- a/docker/test-images/zipkin-elasticsearch8/Dockerfile +++ b/docker/test-images/zipkin-elasticsearch8/Dockerfile @@ -8,10 +8,10 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch @@ -26,7 +26,7 @@ WORKDIR /install # Use latest 8.x version from https://www.elastic.co/downloads/past-releases#elasticsearch # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG elasticsearch8_version=8.13.4 +ARG elasticsearch8_version=8.14.3 # Download only the OSS distribution (lacks X-Pack) RUN \ @@ -41,7 +41,7 @@ COPY --from=scratch /config/ ./config/ # production -jre base layer used by zipkin and zipkin-slim. FROM ghcr.io/openzipkin/java:${java_version} as zipkin-elasticsearch8 LABEL org.opencontainers.image.description="Elasticsearch distribution on OpenJDK and Alpine Linux" -ARG elasticsearch8_version=8.13.4 +ARG elasticsearch8_version=8.14.3 LABEL elasticsearch-version=$elasticsearch8_version # The full license is also included in the image at /elasticsearch/LICENSE.txt. diff --git a/docker/test-images/zipkin-eureka/Dockerfile b/docker/test-images/zipkin-eureka/Dockerfile index 5de7caee548..288d54c7823 100644 --- a/docker/test-images/zipkin-eureka/Dockerfile +++ b/docker/test-images/zipkin-eureka/Dockerfile @@ -8,10 +8,10 @@ # Use latest version here: https://github.com/orgs/openeureka/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch diff --git a/docker/test-images/zipkin-eureka/pom.xml b/docker/test-images/zipkin-eureka/pom.xml index cdca7274bbf..93725d32fa0 100644 --- a/docker/test-images/zipkin-eureka/pom.xml +++ b/docker/test-images/zipkin-eureka/pom.xml @@ -29,7 +29,7 @@ org.springframework.boot spring-boot-dependencies - 3.2.6 + 3.3.2 pom import @@ -37,7 +37,7 @@ com.google.guava guava - 33.1.0-jre + 33.2.1-jre com.thoughtworks.xstream @@ -56,7 +56,7 @@ org.springframework.cloud spring-cloud-starter-netflix-eureka-server - 4.1.1 + 4.1.3 @@ -73,7 +73,7 @@ com.amazon.ion ion-java - 1.11.4 + 1.11.9 diff --git a/docker/test-images/zipkin-kafka/Dockerfile b/docker/test-images/zipkin-kafka/Dockerfile index 2d40dc763a8..6fe9777381a 100644 --- a/docker/test-images/zipkin-kafka/Dockerfile +++ b/docker/test-images/zipkin-kafka/Dockerfile @@ -8,10 +8,10 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch @@ -25,7 +25,7 @@ FROM ghcr.io/openzipkin/java:${java_version} as install # # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG kafka_version=3.7.0 +ARG kafka_version=3.8.0 ENV KAFKA_VERSION=$kafka_version # Note: Scala 2.13+ supports JRE 14 ARG scala_version=2.13 @@ -38,7 +38,7 @@ RUN /tmp/install.sh && rm /tmp/install.sh # Share the same base image to reduce layers used in testing FROM ghcr.io/openzipkin/java:${java_version}-jre as zipkin-kafka LABEL org.opencontainers.image.description="Kafka and ZooKeeper on OpenJDK and Alpine Linux" -ARG kafka_version=3.7.0 +ARG kafka_version=3.8.0 LABEL kafka-version=$kafka_version # Add HEALTHCHECK and ENTRYPOINT scripts into the default search path diff --git a/docker/test-images/zipkin-kafka/install.sh b/docker/test-images/zipkin-kafka/install.sh index aa36d08f004..59a8e3a6cf5 100755 --- a/docker/test-images/zipkin-kafka/install.sh +++ b/docker/test-images/zipkin-kafka/install.sh @@ -43,7 +43,7 @@ cat > pom.xml <<-'EOF' EOF mvn -q --batch-mode -DoutputDirectory=lib \ -Dscala.version=${SCALA_VERSION} -Dkafka.version=${KAFKA_VERSION} \ - org.apache.maven.plugins:maven-dependency-plugin:3.6.1:copy-dependencies + org.apache.maven.plugins:maven-dependency-plugin:3.7.1:copy-dependencies rm pom.xml # Make sure you use relative paths in references like this, so that installation diff --git a/docker/test-images/zipkin-mysql/Dockerfile b/docker/test-images/zipkin-mysql/Dockerfile index 8403b545f8d..c2cb12d4a95 100644 --- a/docker/test-images/zipkin-mysql/Dockerfile +++ b/docker/test-images/zipkin-mysql/Dockerfile @@ -6,10 +6,10 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/alpine # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG alpine_version=3.20.0 +ARG alpine_version=3.20.2 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch @@ -28,7 +28,7 @@ HEALTHCHECK --interval=1s --start-period=30s --timeout=5s CMD ["docker-healthche ENTRYPOINT ["start-mysql"] # Use latest from https://pkgs.alpinelinux.org/packages?name=mysql (without the -r[0-9]) -ARG mysql_version=10.11.8 +ARG mysql_version=11.4.2 LABEL mysql-version=$mysql_version ENV MYSQL_VERSION=$mysql_version diff --git a/docker/test-images/zipkin-opensearch2/Dockerfile b/docker/test-images/zipkin-opensearch2/Dockerfile index 7669171a0e2..95059a1e06d 100644 --- a/docker/test-images/zipkin-opensearch2/Dockerfile +++ b/docker/test-images/zipkin-opensearch2/Dockerfile @@ -8,10 +8,10 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch @@ -26,7 +26,7 @@ WORKDIR /install # Use latest 2.x version from https://opensearch.org/downloads.html # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG opensearch2_version=2.14.0 +ARG opensearch2_version=2.15.0 # Download only the OSS distribution (lacks X-Pack) RUN \ @@ -41,7 +41,7 @@ COPY --from=scratch /config/ ./config/ # production -jre base layer used by zipkin and zipkin-slim. FROM ghcr.io/openzipkin/java:${java_version} as zipkin-opensearch2 LABEL org.opencontainers.image.description="OpenSearch distribution on OpenJDK and Alpine Linux" -ARG opensearch2_version=2.14.0 +ARG opensearch2_version=2.15.0 LABEL opensearch-version=$opensearch2_version # The full license is also included in the image at /opensearch/LICENSE.txt. diff --git a/docker/test-images/zipkin-rabbitmq/Dockerfile b/docker/test-images/zipkin-rabbitmq/Dockerfile index 71d7e66ea7b..26ebfc6a60a 100644 --- a/docker/test-images/zipkin-rabbitmq/Dockerfile +++ b/docker/test-images/zipkin-rabbitmq/Dockerfile @@ -4,10 +4,10 @@ # # Use latest from https://hub.docker.com/_/rabbitmq/tags?page=1&name=alpine -ARG rabbitmq_version=3.13.2 +ARG rabbitmq_version=3.13.6 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch diff --git a/docker/test-images/zipkin-ui/Dockerfile b/docker/test-images/zipkin-ui/Dockerfile index 9c03242bc39..181b7cf45cb 100644 --- a/docker/test-images/zipkin-ui/Dockerfile +++ b/docker/test-images/zipkin-ui/Dockerfile @@ -6,17 +6,17 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/alpine # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG alpine_version=3.20.0 +ARG alpine_version=3.20.2 # java_version is used during the installation process to build or download the zipkin-lens jar. # # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch @@ -52,7 +52,7 @@ RUN if [ "${RELEASE_FROM_MAVEN_BUILD}" == "false" ]; then /build-bin/maybe_insta FROM ghcr.io/openzipkin/alpine:$alpine_version as zipkin-ui LABEL org.opencontainers.image.description="NGINX on Alpine Linux hosting the Zipkin UI with Zipkin API proxy_pass" # Use latest from https://pkgs.alpinelinux.org/packages?name=nginx -ARG nginx_version=1.26.0 +ARG nginx_version=1.26.1 LABEL nginx-version=$nginx_version ENV ZIPKIN_BASE_URL=http://zipkin:9411 diff --git a/docker/test-images/zipkin-uiproxy/Dockerfile b/docker/test-images/zipkin-uiproxy/Dockerfile index 1b8f34d73f9..072fc4d055c 100644 --- a/docker/test-images/zipkin-uiproxy/Dockerfile +++ b/docker/test-images/zipkin-uiproxy/Dockerfile @@ -6,17 +6,17 @@ # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/alpine # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG alpine_version=3.20.0 +ARG alpine_version=3.20.2 # java_version is used during the installation process to build or download the zipkin-lens jar. # # Use latest version here: https://github.com/orgs/openzipkin/packages/container/package/java # This is defined in many places because Docker has no "env" script functionality unless you use # docker-compose: When updating, update everywhere. -ARG java_version=21.0.3_p9 +ARG java_version=21.0.4_p7 # We copy files from the context into a scratch container first to avoid a problem where docker and -# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. +# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally. # COPY --from= works around the issue. FROM scratch as scratch @@ -28,7 +28,7 @@ COPY docker/test-images/zipkin-uiproxy/nginx.conf /conf.d/zipkin.conf.template FROM ghcr.io/openzipkin/alpine:$alpine_version as zipkin-uiproxy LABEL org.opencontainers.image.description="NGINX on Alpine Linux proxying the Zipkin UI with proxy_pass" # Use latest from https://pkgs.alpinelinux.org/packages?name=nginx -ARG nginx_version=1.26.0 +ARG nginx_version=1.26.1 LABEL nginx-version=$nginx_version ENV ZIPKIN_UI_BASEPATH=/zipkin diff --git a/mvnw b/mvnw index 8d937f4c14f..5e9618cac26 100755 --- a/mvnw +++ b/mvnw @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- -# Apache Maven Wrapper startup batch script, version 3.2.0 +# Apache Maven Wrapper startup batch script, version 3.3.2 # # Required ENV vars: # ------------------ @@ -33,75 +33,84 @@ # MAVEN_SKIP_RC - flag to disable loading of mavenrc files # ---------------------------------------------------------------------------- -if [ -z "$MAVEN_SKIP_RC" ] ; then +if [ -z "$MAVEN_SKIP_RC" ]; then - if [ -f /usr/local/etc/mavenrc ] ; then + if [ -f /usr/local/etc/mavenrc ]; then . /usr/local/etc/mavenrc fi - if [ -f /etc/mavenrc ] ; then + if [ -f /etc/mavenrc ]; then . /etc/mavenrc fi - if [ -f "$HOME/.mavenrc" ] ; then + if [ -f "$HOME/.mavenrc" ]; then . "$HOME/.mavenrc" fi fi # OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; +cygwin=false +darwin=false mingw=false case "$(uname)" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME - else - JAVA_HOME="/Library/Java/Home"; export JAVA_HOME - fi +CYGWIN*) cygwin=true ;; +MINGW*) mingw=true ;; +Darwin*) + darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + JAVA_HOME="$(/usr/libexec/java_home)" + export JAVA_HOME + else + JAVA_HOME="/Library/Java/Home" + export JAVA_HOME fi - ;; + fi + ;; esac -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then +if [ -z "$JAVA_HOME" ]; then + if [ -r /etc/gentoo-release ]; then JAVA_HOME=$(java-config --jre-home) fi fi # For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --unix "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --unix "$CLASSPATH") +if $cygwin; then + [ -n "$JAVA_HOME" ] \ + && JAVA_HOME=$(cygpath --unix "$JAVA_HOME") + [ -n "$CLASSPATH" ] \ + && CLASSPATH=$(cygpath --path --unix "$CLASSPATH") fi # For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && - JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" +if $mingw; then + [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] \ + && JAVA_HOME="$( + cd "$JAVA_HOME" || ( + echo "cannot cd into $JAVA_HOME." >&2 + exit 1 + ) + pwd + )" fi if [ -z "$JAVA_HOME" ]; then javaExecutable="$(which javac)" - if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then + if [ -n "$javaExecutable" ] && ! [ "$(expr "$javaExecutable" : '\([^ ]*\)')" = "no" ]; then # readlink(1) is not available as standard on Solaris 10. readLink=$(which readlink) if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then - if $darwin ; then - javaHome="$(dirname "\"$javaExecutable\"")" - javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" + if $darwin; then + javaHome="$(dirname "$javaExecutable")" + javaExecutable="$(cd "$javaHome" && pwd -P)/javac" else - javaExecutable="$(readlink -f "\"$javaExecutable\"")" + javaExecutable="$(readlink -f "$javaExecutable")" fi - javaHome="$(dirname "\"$javaExecutable\"")" + javaHome="$(dirname "$javaExecutable")" javaHome=$(expr "$javaHome" : '\(.*\)/bin') JAVA_HOME="$javaHome" export JAVA_HOME @@ -109,52 +118,60 @@ if [ -z "$JAVA_HOME" ]; then fi fi -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then +if [ -z "$JAVACMD" ]; then + if [ -n "$JAVA_HOME" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi else - JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" + JAVACMD="$( + \unset -f command 2>/dev/null + \command -v java + )" fi fi -if [ ! -x "$JAVACMD" ] ; then +if [ ! -x "$JAVACMD" ]; then echo "Error: JAVA_HOME is not defined correctly." >&2 echo " We cannot execute $JAVACMD" >&2 exit 1 fi -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." +if [ -z "$JAVA_HOME" ]; then + echo "Warning: JAVA_HOME environment variable is not set." >&2 fi # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" + if [ -z "$1" ]; then + echo "Path not specified to find_maven_basedir" >&2 return 1 fi basedir="$1" wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then + while [ "$wdir" != '/' ]; do + if [ -d "$wdir"/.mvn ]; then basedir=$wdir break fi # workaround for JBEAP-8937 (on Solaris 10/Sparc) if [ -d "${wdir}" ]; then - wdir=$(cd "$wdir/.." || exit 1; pwd) + wdir=$( + cd "$wdir/.." || exit 1 + pwd + ) fi # end of workaround done - printf '%s' "$(cd "$basedir" || exit 1; pwd)" + printf '%s' "$( + cd "$basedir" || exit 1 + pwd + )" } # concatenates all lines of a file @@ -165,7 +182,7 @@ concat_lines() { # enabled. Otherwise, we may read lines that are delimited with # \r\n and produce $'-Xarg\r' rather than -Xarg due to word # splitting rules. - tr -s '\r\n' ' ' < "$1" + tr -s '\r\n' ' ' <"$1" fi } @@ -177,10 +194,11 @@ log() { BASE_DIR=$(find_maven_basedir "$(dirname "$0")") if [ -z "$BASE_DIR" ]; then - exit 1; + exit 1 fi -MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +export MAVEN_PROJECTBASEDIR log "$MAVEN_PROJECTBASEDIR" ########################################################################################## @@ -189,63 +207,66 @@ log "$MAVEN_PROJECTBASEDIR" ########################################################################################## wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" if [ -r "$wrapperJarPath" ]; then - log "Found $wrapperJarPath" + log "Found $wrapperJarPath" else - log "Couldn't find $wrapperJarPath, downloading it ..." + log "Couldn't find $wrapperJarPath, downloading it ..." - if [ -n "$MVNW_REPOURL" ]; then - wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar" + fi + while IFS="=" read -r key value; do + # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) + safeValue=$(echo "$value" | tr -d '\r') + case "$key" in wrapperUrl) + wrapperUrl="$safeValue" + break + ;; + esac + done <"$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" + log "Downloading from: $wrapperUrl" + + if $cygwin; then + wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") + fi + + if command -v wget >/dev/null; then + log "Found wget ... using wget" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" else - wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" fi - while IFS="=" read -r key value; do - # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) - safeValue=$(echo "$value" | tr -d '\r') - case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; - esac - done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" - log "Downloading from: $wrapperUrl" - + elif command -v curl >/dev/null; then + log "Found curl ... using curl" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" + else + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" + fi + else + log "Falling back to using Java to download" + javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" + # For Cygwin, switch paths to Windows format before running javac if $cygwin; then - wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") + javaSource=$(cygpath --path --windows "$javaSource") + javaClass=$(cygpath --path --windows "$javaClass") fi - - if command -v wget > /dev/null; then - log "Found wget ... using wget" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - log "Found curl ... using curl" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - else - curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - fi - else - log "Falling back to using Java to download" - javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" - javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaSource=$(cygpath --path --windows "$javaSource") - javaClass=$(cygpath --path --windows "$javaClass") - fi - if [ -e "$javaSource" ]; then - if [ ! -e "$javaClass" ]; then - log " - Compiling MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/javac" "$javaSource") - fi - if [ -e "$javaClass" ]; then - log " - Running MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" - fi - fi + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then + log " - Compiling MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/javac" "$javaSource") + fi + if [ -e "$javaClass" ]; then + log " - Running MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" + fi fi + fi fi ########################################################################################## # End of extension @@ -254,22 +275,25 @@ fi # If specified, validate the SHA-256 sum of the Maven wrapper jar file wrapperSha256Sum="" while IFS="=" read -r key value; do - case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; + case "$key" in wrapperSha256Sum) + wrapperSha256Sum=$value + break + ;; esac -done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" +done <"$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" if [ -n "$wrapperSha256Sum" ]; then wrapperSha256Result=false - if command -v sha256sum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then + if command -v sha256sum >/dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c >/dev/null 2>&1; then wrapperSha256Result=true fi - elif command -v shasum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then + elif command -v shasum >/dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c >/dev/null 2>&1; then wrapperSha256Result=true fi else - echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." - echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." >&2 exit 1 fi if [ $wrapperSha256Result = false ]; then @@ -284,12 +308,12 @@ MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --windows "$CLASSPATH") - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") + [ -n "$JAVA_HOME" ] \ + && JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") + [ -n "$CLASSPATH" ] \ + && CLASSPATH=$(cygpath --path --windows "$CLASSPATH") + [ -n "$MAVEN_PROJECTBASEDIR" ] \ + && MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") fi # Provide a "standardized" way to retrieve the CLI args that will diff --git a/mvnw.cmd b/mvnw.cmd index f80fbad3e76..1204076a90a 100644 --- a/mvnw.cmd +++ b/mvnw.cmd @@ -18,7 +18,7 @@ @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.2.0 +@REM Apache Maven Wrapper startup batch script, version 3.3.2 @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @@ -59,22 +59,22 @@ set ERROR_CODE=0 @REM ==== START VALIDATION ==== if not "%JAVA_HOME%" == "" goto OkJHome -echo. +echo. >&2 echo Error: JAVA_HOME not found in your environment. >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 -echo. +echo. >&2 goto error :OkJHome if exist "%JAVA_HOME%\bin\java.exe" goto init -echo. +echo. >&2 echo Error: JAVA_HOME is set to an invalid directory. >&2 echo JAVA_HOME = "%JAVA_HOME%" >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 -echo. +echo. >&2 goto error @REM ==== END VALIDATION ==== @@ -119,7 +119,7 @@ SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain -set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar" FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B @@ -133,7 +133,7 @@ if exist %WRAPPER_JAR% ( ) ) else ( if not "%MVNW_REPOURL%" == "" ( - SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar" ) if "%MVNW_VERBOSE%" == "true" ( echo Couldn't find %WRAPPER_JAR%, downloading it ... @@ -160,11 +160,12 @@ FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapp ) IF NOT %WRAPPER_SHA_256_SUM%=="" ( powershell -Command "&{"^ + "Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash;"^ "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ - " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ - " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ - " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ + " Write-Error 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ + " Write-Error 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ + " Write-Error 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ " exit 1;"^ "}"^ "}" diff --git a/pom.xml b/pom.xml index f439c8f6d8b..94cd80381c3 100755 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 5.12.0 3.25.3 4.2.1 - 1.19.8 + 1.20.1 4.12.0 5.6.0 @@ -98,11 +98,11 @@ 5.1.9 3.13.0 - 3.6.1 + 3.7.1 3.1.2 3.4.1 - 3.4.0 + 3.4.1 3.1.2 3.6.3 3.4.1 diff --git a/zipkin-collector/activemq/src/test/java/zipkin2/collector/activemq/ActiveMQExtension.java b/zipkin-collector/activemq/src/test/java/zipkin2/collector/activemq/ActiveMQExtension.java index 6d8cbcfe5f0..cfaae51d48d 100644 --- a/zipkin-collector/activemq/src/test/java/zipkin2/collector/activemq/ActiveMQExtension.java +++ b/zipkin-collector/activemq/src/test/java/zipkin2/collector/activemq/ActiveMQExtension.java @@ -54,7 +54,7 @@ String brokerURL() { // mostly waiting for https://github.com/testcontainers/testcontainers-java/issues/3537 static final class ActiveMQContainer extends GenericContainer { ActiveMQContainer() { - super(parse("ghcr.io/openzipkin/zipkin-activemq:3.3.1")); + super(parse("ghcr.io/openzipkin/zipkin-activemq:3.4.0")); withExposedPorts(ACTIVEMQ_PORT); waitStrategy = Wait.forListeningPorts(ACTIVEMQ_PORT); withStartupTimeout(Duration.ofSeconds(60)); diff --git a/zipkin-collector/kafka/src/test/java/zipkin2/collector/kafka/KafkaExtension.java b/zipkin-collector/kafka/src/test/java/zipkin2/collector/kafka/KafkaExtension.java index c597e005d68..0bb18f50e7f 100644 --- a/zipkin-collector/kafka/src/test/java/zipkin2/collector/kafka/KafkaExtension.java +++ b/zipkin-collector/kafka/src/test/java/zipkin2/collector/kafka/KafkaExtension.java @@ -83,7 +83,7 @@ KafkaCollector.Builder newCollectorBuilder(String topic, int streams) { // mostly waiting for https://github.com/testcontainers/testcontainers-java/issues/3537 static final class KafkaContainer extends GenericContainer { KafkaContainer() { - super(parse("ghcr.io/openzipkin/zipkin-kafka:3.3.1")); + super(parse("ghcr.io/openzipkin/zipkin-kafka:3.4.0")); waitStrategy = Wait.forHealthcheck(); // 19092 is for connections from the Docker host and needs to be used as a fixed port. // TODO: someone who knows Kafka well, make ^^ comment better! diff --git a/zipkin-collector/rabbitmq/src/test/java/zipkin2/collector/rabbitmq/RabbitMQExtension.java b/zipkin-collector/rabbitmq/src/test/java/zipkin2/collector/rabbitmq/RabbitMQExtension.java index d71412f372e..dd338d09e4d 100644 --- a/zipkin-collector/rabbitmq/src/test/java/zipkin2/collector/rabbitmq/RabbitMQExtension.java +++ b/zipkin-collector/rabbitmq/src/test/java/zipkin2/collector/rabbitmq/RabbitMQExtension.java @@ -74,7 +74,7 @@ int port() { // mostly waiting for https://github.com/testcontainers/testcontainers-java/issues/3537 static final class RabbitMQContainer extends GenericContainer { RabbitMQContainer() { - super(parse("ghcr.io/openzipkin/zipkin-rabbitmq:3.3.1")); + super(parse("ghcr.io/openzipkin/zipkin-rabbitmq:3.4.0")); withExposedPorts(RABBIT_PORT); waitStrategy = Wait.forLogMessage(".*Server startup complete.*", 1); withStartupTimeout(Duration.ofSeconds(60)); diff --git a/zipkin-server/src/test/java/zipkin2/server/internal/eureka/BaseITZipkinEureka.java b/zipkin-server/src/test/java/zipkin2/server/internal/eureka/BaseITZipkinEureka.java index 19fb6326772..5b4e0dba105 100644 --- a/zipkin-server/src/test/java/zipkin2/server/internal/eureka/BaseITZipkinEureka.java +++ b/zipkin-server/src/test/java/zipkin2/server/internal/eureka/BaseITZipkinEureka.java @@ -139,7 +139,7 @@ static final class EurekaContainer extends GenericContainer { static final int EUREKA_PORT = 8761; EurekaContainer(Map env) { - super(parse("ghcr.io/openzipkin/zipkin-eureka:3.3.1")); + super(parse("ghcr.io/openzipkin/zipkin-eureka:3.4.0")); withEnv(env); withExposedPorts(EUREKA_PORT); waitStrategy = Wait.forHealthcheck(); diff --git a/zipkin-storage/cassandra/src/test/java/zipkin2/storage/cassandra/CassandraContainer.java b/zipkin-storage/cassandra/src/test/java/zipkin2/storage/cassandra/CassandraContainer.java index 3b11c9a6b1a..ae6acd3e52b 100644 --- a/zipkin-storage/cassandra/src/test/java/zipkin2/storage/cassandra/CassandraContainer.java +++ b/zipkin-storage/cassandra/src/test/java/zipkin2/storage/cassandra/CassandraContainer.java @@ -33,7 +33,7 @@ class CassandraContainer extends GenericContainer { CqlSession globalSession; CassandraContainer() { - super(parse("ghcr.io/openzipkin/zipkin-cassandra:3.3.1")); + super(parse("ghcr.io/openzipkin/zipkin-cassandra:3.4.0")); addExposedPort(9042); waitStrategy = Wait.forHealthcheck(); withLogConsumer(new Slf4jLogConsumer(LOGGER)); diff --git a/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ElasticsearchExtension.java b/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ElasticsearchExtension.java index a724f2776da..fdae33a7aa2 100644 --- a/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ElasticsearchExtension.java +++ b/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/ElasticsearchExtension.java @@ -22,7 +22,7 @@ class ElasticsearchExtension extends ElasticsearchBaseExtension { // mostly waiting for https://github.com/testcontainers/testcontainers-java/issues/3537 static final class ElasticsearchContainer extends GenericContainer { ElasticsearchContainer(int majorVersion) { - super(parse("ghcr.io/openzipkin/zipkin-elasticsearch" + majorVersion + ":3.3.1")); + super(parse("ghcr.io/openzipkin/zipkin-elasticsearch" + majorVersion + ":3.4.0")); addExposedPort(9200); waitStrategy = Wait.forHealthcheck(); withLogConsumer(new Slf4jLogConsumer(LOGGER)); diff --git a/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/OpenSearchExtension.java b/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/OpenSearchExtension.java index 6066ef695ff..d6bbba92d29 100644 --- a/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/OpenSearchExtension.java +++ b/zipkin-storage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/OpenSearchExtension.java @@ -22,7 +22,7 @@ class OpenSearchExtension extends ElasticsearchBaseExtension { // mostly waiting for https://github.com/testcontainers/testcontainers-java/issues/3537 static final class OpenSearchContainer extends GenericContainer { OpenSearchContainer(int majorVersion) { - super(parse("ghcr.io/openzipkin/zipkin-opensearch" + majorVersion + ":3.3.1")); + super(parse("ghcr.io/openzipkin/zipkin-opensearch" + majorVersion + ":3.4.0")); addExposedPort(9200); waitStrategy = Wait.forHealthcheck(); withLogConsumer(new Slf4jLogConsumer(LOGGER)); diff --git a/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/MySQLExtension.java b/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/MySQLExtension.java index 5789e7886ed..39237e34a50 100644 --- a/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/MySQLExtension.java +++ b/zipkin-storage/mysql-v1/src/test/java/zipkin2/storage/mysql/v1/MySQLExtension.java @@ -103,7 +103,7 @@ int port() { // mostly waiting for https://github.com/testcontainers/testcontainers-java/issues/3537 static final class MySQLContainer extends GenericContainer { MySQLContainer() { - super(parse("ghcr.io/openzipkin/zipkin-mysql:3.3.1")); + super(parse("ghcr.io/openzipkin/zipkin-mysql:3.4.0")); addExposedPort(3306); waitStrategy = Wait.forHealthcheck(); withLogConsumer(new Slf4jLogConsumer(LOGGER));