From cbacf6024e96f51bfe47fdf6bc8decde8aefb4b9 Mon Sep 17 00:00:00 2001 From: Craig Thomas Date: Wed, 3 Dec 2025 16:33:08 -0500 Subject: [PATCH] Update Gradle and JDK to more recent versions. Small change to markdown syntax. Update Github actions to more recent versions. Update to use proper ubuntu-latest for Github Actions --- .github/workflows/gradle.yml | 12 +- README.md | 86 +++++-- build.gradle | 16 +- gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 63375 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 300 ++++++++++++++--------- gradlew.bat | 56 +++-- 7 files changed, 301 insertions(+), 173 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index d397c50..e7274cc 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -2,14 +2,14 @@ name: Build Test Coverage on: [push, pull_request] jobs: run: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 - - name: Setup JDK 11 - uses: actions/setup-java@v3 + uses: actions/checkout@v6 + - name: Setup JDK 17 + uses: actions/setup-java@v5 with: - java-version: '11' + java-version: '17' distribution: 'adopt' - name: Install xvfb for headless testing run: sudo apt-get install xvfb @@ -18,6 +18,6 @@ jobs: - name: Build with Gradle run: xvfb-run --auto-servernum ./gradlew build - name: Codecov - uses: codecov/codecov-action@v4.2.0 + uses: codecov/codecov-action@v5 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/README.md b/README.md index 2f92349..a4c9a20 100644 --- a/README.md +++ b/README.md @@ -47,9 +47,8 @@ of the emulator written in different languages: The original goal of these projects was to learn how to code a simple emulator. In addition to supporting Chip 8 ROMs, the emulator also supports the -[XO Chip](https://johnearnest.github.io/Octo/docs/XO-ChipSpecification.html) -and [Super Chip](https://github.com/JohnEarnest/Octo/blob/gh-pages/docs/SuperChip.md) specifications. -Note that while there are no special flags that are needed to run an XO Chip, +[XO Chip](https://johnearnest.github.io/Octo/docs/XO-ChipSpecification.html) and [Super Chip](https://github.com/JohnEarnest/Octo/blob/gh-pages/docs/SuperChip.md) specifications. Note that while there +are no special flags that are needed to run an XO Chip, Super Chip, or normal Chip 8 ROM, there are other compatibility flags that may need to be set for the ROM to run properly. See the [Quirks Modes](#quirks-modes) documentation below for more information. @@ -66,13 +65,25 @@ software components. ## Compiling -To compile the project, you will need a Java Development Kit (JDK) version 8 or greater installed. -Recently, Oracle has changed their license agreement to make personal and developmental use of their -JDK free. However, some other use cases may require a paid subscription. Oracle's version of the -JDK can be downloaded [here](https://www.oracle.com/technetwork/java/javase/downloads/index.html). -Alternatively, if you prefer to use a JRE with an open-source license (GPL v2 with Classpath -Exception), you may visit [https://adoptopenjdk.net](https://adoptopenjdk.net) and install the -latest Java Development Kit (JDK) for your system. Again, JDK version 8 or better will work correctly. +To compile the project, you will need a Java Development Kit (JDK) version 17 or greater installed +(note that these steps are only needed if you want to compile the software yourself - if you just +want to run the emulator, see the [Running](#running) section below). + +1. *For Linux* - the simplest way to install the JDK is to use OpenJDK: + + ```bash + sudo apt update + sudo apt install openjdk-17-jdk + ``` + +2. *For Windows* - I recommend using Eclipse Temurin (formerly AdoptJDK) as the software + is licensed under the GNU license version 2 with classpath exception. The latest + JRE builds are available at [https://adoptium.net/en-GB/temurin/releases](https://adoptium.net/en-GB/temurin/releases) + (make sure you select _JDK_ as the type you wish to download). The MSI method + will download an installer that will download and can be run to install the + JDK for you. Follow the prompts for more information. Note that this will also + install the appropriate JRE as well. + To build the project, switch to the root of the source directory, and type: @@ -84,34 +95,60 @@ On Windows, switch to the root of the source directory, and type: gradlew.bat build The compiled JAR file will be placed in the `build/libs` directory, as a file called -`emulator-2.0.0-all.jar`. +`emulator-2.0.2-all.jar`. ## Running -### Requirements +The project needs several different packages installed in order to run the +emulator properly. Please see the platform specific steps below for +more information. + +### Linux + +You will need to install the Java Runtime Environment (JRE) 17 or +higher. + +1. Java Runtime Environment (JRE) version 17 or higher. The simplest way to + do this is to install _OpenJDK 17_ or higher. On Ubuntu or Debian systems, this can + be done with : + + ```bash + sudo apt update + sudo apt install openjdk-17-jre + ``` + +2. Check that installation was successful by typing: + + ```bash + java -version + ``` + +### Windows + +You will need to install the Java Runtime Environment (JRE) 17 or higher. + +1. I recommend using Eclipse Temurin (formerly AdoptJDK) as the software +is licensed under the GNU license version 2 with classpath exception. The latest +JRE builds are available at [https://adoptium.net/en-GB/temurin/releases](https://adoptium.net/en-GB/temurin/releases) +(make sure you select _JRE_ as the type you wish to download). The MSI method +will download an installer that will download and can be run to install the +JRE for you. Follow the prompts for more information. -You will need a copy of the Java Runtime Environment (JRE) version 8 or greater installed -in order to run the compiled JAR file. For most systems, you can install Java 8 JRE by visiting -[http://java.com](http://java.com) and installing the Oracle Java Runtime Environment for your -platform. This version of the JRE is free for personal use but contains a custom binary license -from Oracle. Alternatively, if you prefer to use a JRE with an open-source license (GPL -v2 with Classpath Exception), you may visit [https://adoptopenjdk.net](https://adoptopenjdk.net) -and install the latest Java Development Kit (JDK) for your system, which will include an appropriate JRE. ### Starting the Emulator By default, the emulator can start up without a ROM loaded. Simply double-click the JAR file, or run it with the following command line: - java -jar emulator-2.0.0-all.jar + java -jar emulator-2.0.2-all.jar ### Running a ROM The command-line interface currently requires a single argument, which is the full path to a Chip 8 ROM: - java -jar emulator-2.0.0-all.jar /path/to/rom/filename + java -jar emulator-2.0.2-all.jar /path/to/rom/filename This will start the emulator with the specified ROM. @@ -120,7 +157,7 @@ This will start the emulator with the specified ROM. The `--scale` switch will scale the size of the window (the original size at 1x scale is 64 x 32): - java -jar emulator-2.0.0-all.jar /path/to/rom/filename --scale 10 + java -jar emulator-2.0.2-all.jar /path/to/rom/filename --scale 10 The command above will scale the window so that it is 10 times the normal size. @@ -129,8 +166,9 @@ size. The `--ticks` switch will limit the number of instructions per second that the emulator is allowed to run. By default, the value is set to 1,000. Minimum values -are 200. Use this switch to adjust the running time of ROMs that execute too quickly. -For simplicity, each instruction is assumed to take the same amount of time. +are 200. Use this switch to adjust the running time of ROMs that execute too quickly. +For Super Chip 8 or XO Chip 8 ROMs, you will probably want to execute more instructions +per second. For simplicity, each instruction is assumed to take the same amount of time. ### Quirks Modes diff --git a/build.gradle b/build.gradle index b498de7..1eccf41 100644 --- a/build.gradle +++ b/build.gradle @@ -8,15 +8,19 @@ plugins { id 'java' id 'jacoco' id 'application' - id 'com.github.johnrengelman.shadow' version '8.1.1' + id 'com.gradleup.shadow' version '9.2.2' } group = 'ca.craigthomas' -version = '2.0.1' +version = '2.0.2' -mainClassName = 'ca.craigthomas.chip8java.emulator.runner.Runner' +java { + sourceCompatibility = JavaVersion.VERSION_17 +} -sourceCompatibility = 1.8 +application { + mainClass.set("ca.craigthomas.chip8java.emulator.runner.Runner") +} repositories { mavenCentral() @@ -24,8 +28,8 @@ repositories { dependencies { implementation 'com.beust:jcommander:1.82' - implementation 'commons-io:commons-io:2.20.0' - testImplementation 'org.mockito:mockito-core:5.+' + implementation 'commons-io:commons-io:2.21.0' + testImplementation 'org.mockito:mockito-core:5.20.0' testImplementation 'junit:junit:4.13.2' } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..033e24c4cdf41af1ab109bc7f253b2b887023340 100644 GIT binary patch delta 43970 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 (Tuz`s8viSjLGg;gZfQ~bvZTM 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%0ARn}>^1RXmKA-mCSv7cCFfx}k2mQ(Yy^aI zj*&|8Z{zx#B6G4VVhs((snGUX6p_l?7rv_|oDAG#HieEvX=gfCWy^P&j_#22=MJmG ztzU-MAX$KT-WbfYKThlz3$~s1AHxV|!~C$z$=Ii!eB56u+}I-Dv@UHPMS`*Ym;PV0 z7Ig+TUGs$_%ejWxXc0fZF16NHlipsdrUq%Ybj^q8$}F7PybzpuTBZHjiq_wsh?0SC z|KDFSF)kiF_}>1+NniS=q~oj=I%m-5l6D)I00HFANQ1^!14ou6^Jle~Els@;d9$_I zOdlCE;^eVhfi#}u?FKk5SE=UNZ^hhD0i93`{afhhe0+M-Bss+{ccSa~63j;aDGv8! z5&gzEL%Wesa0-Q{D8;)e(o(z2(qIGZ0n$k!Hc+@c*D@C+uJB|+c*0U$K{SqN&3jnO z5de2(#+X8_tUujijmYG5g#4=@ZAcq>2O_qf^|1AqKQWEZWk)-z+h$sC$*hcCEj?fk zCF@>E4*JH)1126X$6dZnt+pHjUfg2*pzqLsyIX~bNO_IEtn-{s zhzT2PtjXERU@Jy61P1mH_02%U8k8OAJiVbmU4r45r=M{*P}Gu6cmRGj=PWNF#{w=T zy!7OEDKJ+txw75*GF+6Fj}XV<^ss#CS=-W=)R7$`|CF||uW#~%bg=Hcub}=C6pbI7 z--;`-32P7*TlYB1{6fMS=V?x~M{tCu9W)ysQKYWO-BrHj9v;MeQ2m0W7)<4&_zaQV z+j$Z32?0dV*7WutB(_q+x+`ZzIs(G^+ALn8;RD*NuS zngAg0gi~Dlu)#h5|KTtHcPdLZ*i%rPc)=nKuv1)6LL2#V$K6^+$EFF3l@nV7ZGev_ zE`y#9#iGnGWa`tvT%OFh!uZWwa2x&mVc|stC1eoO?}uR0?Pkm5Pg#hGgsZF#XTRh6 z%iP{xKhU(HgcvX;C!UWnoMjA&R;k1I1;+~tI za0wZwV-lv8&2z|F1gD`r1^=sO50@i5tA;ysQ-6P6#mfWhep@@~YSekcm3|H?ZlVEM zy?K^5vL;7WrejRdKCMWau}xCBq1oLBkcnx>fHS0~n6RN@pG`b&CVJ?8KrxUDJjX-Fr5C-rgqja1$7o@C za+zH8jKeQ&jYDP?Rt7yc#$=@^6*&u_nR!AQ!}KHR5Va1T6h2bE+wA}0jhHQ+mESn` z2hTz}kdd0MaECi8WOfLt;t;kI5aw%h&(?w1veh@Yjt772*mpde5}aj$mdoUnI$3}k@Ao@tO;nvz=N&MYeQulF~=47>zyKQup=*GaA=f6OfgTNhp# z-2hQJY5)A|av_=bEfDPOY(MG`)1PADUu_s71PNwrma7D-)A^pNJht<{yAo>l zfd+F)*XhL>0nme%T;y2HkKnXMU}tY?{pjIlS z+S}6!P7rk8^5Ra+CR)09;SlfpZVdn3!ibtKl`A($pRQW6SC)7TSHj=HCE*2e(&%c= zKLN6l(-}lx$6747pT-d|d$iZ~35J?oH#ml@gF0)Z+d}@(Id`X@=>3xaY_U!t@A8Ek zQ0jSz=sgO7Xgv>Uprq^UVf)M?o)p)k*hDW%;d%m^5F(Mqka_oF>NyNcE?ksG*FUEH zenVH8P>{ts${>$+Svj>TFCz|50xqO2%mQM6;n*8%_H_YuG?nVgjG!mroCDIUx^Cp^ z&7oIlTPyt1jOtQ#Dz?nicnFUDy2}EzOR2dnpN2X zR1AA4L)Z+Y`}Y@lwb3+ZxyTe10@m7VoMJn~-H>L#v{^*bN481ZLtjdMR}gOere#+f z`%{8svVh+)B)U~l>z(`rBT^WPMxzh4<~C2tC0VIpMRwxJfl`nbLyP?HYmQkwjH{ZJ z%&AZ>a`k^HWohJpCljx@yuiPP%M79$?YM(L5dLSla$qi+miWo*0t(}c*XYXU@e}cX zek&M$7OzZv=a&K;jyoo4gNZ34M>a`LC=ccm;n>JUK~YdaeCgDrI(c;4Tp<+3?xDUg zl7WO%2>4$YIlAc}*(Qo4PG3z<``k}WUVXgYe^B~!^PP$d%4H8W#jr()&=)fm?&HwG zH}bHdg;2pVr}o?J^49Lw0KMU$36`-MCN|zlTlub5s+s{@E+6Y4qKdO&TYpNY3eG!k zQ3h0dwraOjG%b{9g_n%5G~IkH%u0JsgMYu29EZsTOm({wbcp=MUhCG0v#EyZf1~;T|qjA(;^$VL4fZo1E;o zT#6~z@CnN9Cckrc&ec2k(yv0>9kBBK_Yx?O#X1pjLC3xhVe!R zfX!0g8Vy$w(AYZDzdXZOSlkAEX}}Sk&A5h54>{Xw{BV+Yz1YVvL`hak5HQ3x zHek8e;-OpI3t@IwEkQ^@aU~w&mjTJ-7F%gUf=wBhAYT+!_AWu|k$hJHvX;d_ zAhO1bAG5=fsrU63=0S`gGJA$(H5$jRWYR| z3Qj_jLQSAhle3n3;7F3!(sdiVN_naMGnSdE-z8KKK354yWbRq3p~9%Xo%Iwv%6#s5 zb~W$y@%}>oL!$2TU?LI9fC=yUy@ypN#}4Cxp6&9>i*1m>b4abLX|xKL;mC?)vNwi5hfgHoNO&H8Qe01Wk^rGKRerQ+4aGr6zRTocUhhzK zQaX1F7&Z7vj|nz3ugUfvYN0>rLNl zWVhkeB&X5o={f2jkQ6{pXX7zhx0Yxk4yL{YPsdp&`ZjphgN(|L)UaO^plpgY-+OPa z`7s0Q0w~s$qyxsEFB+$veJIY7JJPjc6Nt?K?bl6fSvB+AOM{I3^~+%xLW(WpND}Et zGt;_%03;DckgBEA4`AjGaPfcG8wS%Q-VKHdistjxsquvt^aPajgjCp0e&AG>t^GPF zJi|um%H~hJqDHZP16{c5Q`o;1vLK5`9q{gGQlo)FL2NvgF^TRMNvFB zg;(B0WWFi)cc_PAV7gKTK)+g;=IbsD{>e+c0`N3ON4`6 z=N-&0#_#yV=1V+LHB>}gGti0 zB=ygM19>Trj@T0Fys-M~|J<^M@_uSy-&?lrTdHLFzfvXpB{CrS*Us;GCA3ckYBX49 z|BXd%bYxB}+@)^pC<+vLxl!}LwSjGh**b>9TSxk1RUA751a?ev*jM8X+O z$CADG+1FVcpP%>lnEs$mcBaaW@uKvxBOGTQ#zrF|L2=%@(u`ixqih)?V2!v@y8YHO ziC4S-O#fCO8vg}2m(0Tg`voz^7jD_CBue$AsJbv|T+{?nkSQati(J%JFpW;`Cfpd6 zOf0GfN8PjYuerAjS&*HIc*$HJRXszMGQt=^Q%TYBeWSXBP?mAKS#PDedg4q<38@uh zc&AWBwqY5Gu=9tt58-0!P)5-*Ln!jIUNl^CC#_gYFZTeB=51P{#BrekT}W?U+kCRu z)N$0KxZDkOva42fN1n@bl6F3RGG$+g8HUe6&g?EbUayOs=1g|{^2iu>V3oHtwpXn> z7~0|&`L;&6b*+=OeCxfJc<|GkMq*r=ewV@Pd%HDkvN3@cXznxMv5OTmHuNgN-^Oywx|gR8rT^fYGXd3 z{~mFswB;J(g-|k9J44u!P;2%T+8;Yo}6=8E5*-K2O z&{9>r8dAL)zL|`UTI|Du{qilDqc@p$RcRa=w);378}#suhyUAq;V`8MpU5K-44sT? z0Ly8=dBWH@B9Z(5=G#oQGZ!&Xe*Cbd{_%t2zjqWwVxBYBc0RBtHo@s zf#1+}7xX-Zxux##m%tBfS&o$Yc*IFfuLKE#nXq)^7A}#te&iUW7(-N$0K-tQz;;vE zfHnEHew5KGl+~#QqqQJ@e|TcsA0s1vAKRI8lPB2W?@I29?rN@Tu1hORinaLOPe}e+ zcd7(DxAoSa01fuum3oX^%ad!LgS62A1(p|-WFYp2@`TMZ=o-Zl`M);(+ z$3A#{b3PX%%u9GH!Dt$hFXWOVSYu0rg(h7dAA7%g*_U3>#dBix3f{;Krm!lo^UWn* z&Cp!qL3*Q>iLcaa}A=#`zu^>W(;( z-`J%eq{4WK(=5p(8&oVYu&OzCFf<;(v1e3|W%*R4;PhsdkLj{!m9|tpPWTi*gY?p= z_F`H!05m08!6#7g4yDdKz{ac0v1`Xvdg*?-(XZ62sh7=Z`El!b9^>hqnH4h}kJI$B zDWT?svYj<(FTWh}HMglJQUoXyhNsn=?Hcmg4};Sy^YTm|q&ZaJ~#TP_Jmr2BujuF#HOO zUN^qIWg>rByJuo1W9*}V7K(@ zm`@?616^cGh790pakbkd z6I-Vg3OuB;fWGhM)sU{pk2f(#OfoE?)F-5)rLnxKRW=&TBE=TR_P13FSY$Q3JOcSa zE8Ke#H-mAQG_6~6+Su$GNt#ZAgxbu#N(AC>-T{@>+bYASI0*$@wBw{bR?_MyI{<+k ze-Ked6x*Q^<|8@TtZl)<7_RHnG&~Ko$(EcEnu{6jwG)Xw#2H3mqN|!{W~$X{+ob== zsSHF&=7^q%F8B=;jLq6KTAe0)yHcI?>cs%h;20>iNSFf%l|Cl6RGJle5LkOitv$5% z)VmF?JzQrv_Etjnm_fFHLQ82uAOHpv0R?#mEQ^9w7|6^AI7e;Vb!d{~94dho+-kfUW+=I*ePfEC zV354efs^wwBVJ7IL*M9GJUxzkDnng&?kYG!TmwGcp^L~(lPjBguj+u!3Ls%lC4bmu z^cw7Y74w&&Z_!q;L*lN9E=WO$V`mDE^WFV0hxMU*x4(2uJOhkDy9 z9|;^Vk3|1r&wL4@qF>O%bLj%6(_Nh?g0`&{dApcydfmqwo>{Ik&|2MDEssAPER0Lv ztiI@GcNRF)6#xmwK=ms}3vgi{uZ>rtY`|OmE4>`@`!E0xpY^PCR`3N`phSR*{v3Cw zIfBEqT9yS|sI!t*JQ}lN_zfdbrf=rC{M?l$tPN?%=stvWg^Cm0W`qvhravzHW|hQF z-=$bt0R1%dFmGEl1wF7S!s@Sgo1zjQ+66*FUlVhY{CazkOBt|L7cdpK5^dvJ+Q!Si zW-q1bhJ_MeMy%(=j7JR~tSj%)w7k@yJ!IDwq87!f(Oz5; z<(LbhJ9cI(PKObV4RDH9@p}K;1QnvAHVk#yp0t~ z`l3CI&z4TP0i1`Bz|GvD91t5(0;S!fbb?%hu`nLopYZ?kb!|t3?vS3-?eXVgvBYop zjE4+I2WW_w;X8>0R(cM3KIAC!2zMX~ z{tzpTg(~(7#`mEcr9eKKSgSkMWCZ2D5+fP97>R!VA^JHf608WNxtbWm;G;ni`XPFJ zzIqIxX4Y-_Q$t5JYef%>;pM=}furaXtvE%Bt-jAcz){V_S$~rEP|0GM(|JmRifB$8 z<>?}^NjUj)0&zIdM_>k5WiVWSejwca*}cVZc?FOS2N|q*BazF>M~DAlN@y=&A-D;S zZgA|$f>$@=^N^aGwoU#B1L@!ARiJq+KvJk+%6y@oXdb79#L3d=@I8qAVae?5+t=33 z!Cxo?aEz##?;C2Gp(z~W&M$fpbJhF{rj}Q6KGG?e+1}ubWi~#G*qBe4S*p{Cj<6hP zra*Og?}&XwJ|n`P$`g1i;jGdBTGQt>fm-huMNjQYs}1W0=G{`B>OdFolZ2k!mK21$ z)ibvWVz3Yhd3qywO@Lnr)&F=o;ZVgX1pyxvpVDg+v~DYXi^_K1{z_|5NCjRrKR1kCvR-l44 zB}t$k66o#i`V)35sjzJDYiAOA@sI3U#d6&ms9=&1n?MF;tn z5S`~n|JH5H!BG4m-?sk%oc!?`-?hzY26ki3-x1X1>INozNfqs-oLgZ&a2@7zWnLmn zY}sy#{!(l!W>z25M$T2adp$BvvcqVZ#FEc7;ZaNW{rt4G3@`q2uN||@GphUyWQt)yKVGuHQzq4$A1+KH zw(P#SR)oIQlB1>jxo=A%>5p>>7$&IMnWzu_c>XuS$%kGzyUA&3EHLEp8o#oM*xi0% zb?`uJ;P7MkXO!j1$mmf647a~>^r0`+U)X-sn+KyN!`7}EiIBkF{xt31W`8y!>pKtY z{afqGF!$XG^9c7d(a(d2eVqtPLA$xEI2B0D{>bhndNbEAW8OUOp`qw100N~kgw_7& z)YV}o+W2soAyY@7S7XeAydSoY?(rwfStMFT47pT@pWpHnq2b=Vs<xWNXqhd9gfy4(aB8ZcU3eHlB20=Yc5AR ziR*4h!YnCPJwm>Bmu*J(1N;T87}WaYtvf2_bP_d^N_Evgh>qrIK2_Y%SI*K&TqTQg zP_&jj>~b!6KlcRaN*EGqY8rbG7eeP{kx!T7r))RfZOzRX6>3+1i-$#&QY!a7@yQvY z$cdw#)gjP23T!+=8H2X$gFNJ6YZ#L*7^0fku@Vep@I}MkuB=8F0KSj*ksW`ogU>Al zADN>eH5~V78l$#MHFlAr<~fwJO{EAnLv@p)ESL{rXa~WZkPjQvA3Rk4^n>6%Gby%UKdr zaNfxst1dY1nSqeE03?@i6J|fL7(VOfDeXt+9X<=y2o35}Vke)In^&u~($xuW!m|Ud zi~Z5c2I_QQyvyO(bVt+!Qog`kCeG6Fw-;*msUedwm)0`B;ko@RE&o6hs+G9XU2FKa zSi=|~^H8HjlwcrAOiV#eHBe8oY|e;|XVUT=rSu377(37eplb~{gO14^{DpuwwHqY@ zQ$2YP=QQzTkw06l`q{#UHjl>|Oj|=@8W+Y(wWolItijBYQ!gHt+G3NnQFU|l!<;>d zQ=OpV_F&l~vP(P%GJRZpTdTPz!c-wAK1g74x({g69rd=O_Fxo~S3eIy998SWR3<_E zOPq0f)BQaN&=8=R)Bg+PW0&$sey@DW)L@{EEB3f6;J7E=qU0f4eu^@GmV4^{WknY5 zfr|f^W(PJTJ>4TK>gx?1y+Tet|H2HmEAZDY_q5W3)yd*b7VvltX6qKb1Yf!F4bg-o z9bp%IgS>slfw#Zzy@Jp=a{|$jz_B&OgReLJrv2{^00xJ8iGMp{lEy=BPCcZFBvYoDg4U2FqK<^ZrX!30RicQ%&Pd=VUbIzQ3&hPpC?)~5A-aF4Z_kaKQA3<$?oE;o+P27@Zr(az;*{JuO zjF&I@t2eN+#WY-gZ}TeK5|fBWleSk*g;(8)NjZ{bpCWF5}qxpzc{^Di`CSy zr!PyApt<1*gJM=*Y8?54(7l&)vcD2gxb|^UesX;Wt-d{)5;T2AHlmgolyA9PF= zre_2#X9Q&-V$*U(nZ@1pWm+YkPRVPX6qlZ-KI<_P(@MI(;N>O67i725*CsmtZPpYk z*?H>mBbz1hd#Z)6$Y(l98?>#tcA1HJ-(Ix1WhZLCPaTOhuHEW!wmR_C#nUO5h)+XU zG5j%xxZe9AAS>(>@&cBhD^RRg%7QOEPq*K<^TdKce8|hVu zNw3fDijkwchhjH3=G-GvLmwP6v)B}W@;eD%dLYRlPWLald}Wz$eo}p>BstXW62->Q z&^f&+NKg{fQ&i>}#Aqt<7&+SKr{~+>X4KS9RK*Z#i*y}Y zlHEGH^P_!Ruv-FVHAv%74jJ-_Kn=f{n> z)Rp_@JM8WBjt%$u`fNc%TvJM0fRFS?zk$jv9RpcRL2}d)D{;dvm*^+%i%AC!({0qP zEgQ$54vv4uUKd?CemN;~+mrKO#9d2^zjv1Z?rMbp|CMSdSFN*XW7KRm_xpKE-J$-T zLXY4_iT-w3k-VDJ?Jgs<`fhrsxpBGow2R9d&B*^UTT|V-xy1+0x^2Ag%E{onODDhQ zB|01<9%^NGtYZ~tlqx+s)}`&a*+i51S7mbwm6p7;aLJ3CRvGlGVJEy?&lCpzo~XOs zpKrU#v_OACF+4$%g%yXD=y+8*ylMUQ=H1*1r}q0%vWFq>nNt^+#d*E1{UdL(=0N-f z_F!|vTj8H8BTiQ$i-}H&*Yn5%jAXykgF3-F!eB}Dj_3j;)oNg<24alu-dy{ZfdA!@^VJ3&~_;!68 zKV^X49@O|gXRt&m9jS1N)$T6|*htv?=MMR*cr3WTo(bS0Ntth}&x&{`ng1A!Z%#}z=pSkLguE*rsD{2pGTcl1P z$YF%HB{1$W1yrssIHk~nYzB`4iWNj8QUkOmuLdW0OF)-G!+hRONzYKBAzX#s4Od}p zp`EiIk-%#Slza|Kl~}sn4dxU9YmU>2yinbjuVG{vhoOEL7ChuJ@5>E*1_7=r~ab2V7ld26qe0 z5A4;wI!G-CSoNxUZbvU2QF6dJtxX`mS2bL&Kp^Qb1mM6Yna+SZGCE=v4PLIH0;bFe zvW`HYE(QgPWqJ_!MV|sXWJJW2i-MhSS!cFR1r^&*hZ7)y4i5HdWBO?>(hg1=C!GC$ zJd|$SuMVpF3^5W_+|Xq>S#?goQDE&k~4da1E_ilsI zem%tVB)shbNOJ7do8MteAh_U4dz*@u#*&+0O8c<8C{wP7?9V`NH_B-k+fFR42~i=wDx) zt3`8=jIsNJAKrRU4~hJ7j?yxyVfZ13)xtT8IzGWUNay5Y=vX6gjwYND{z6n@_cs}1 zv&zrV0h<^JJJ}6KFZv%!=j>R$;Hlso4>*Zb1SKZW2ca=HG!Z*!q{UU*WJ@&l=-#st~ lSPc7UxK#`{Iwq8RG$J(4o1qSSQkB$oBZ2Y>q(cdT@Gs8lg6seQ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 48c0a02..2a84e18 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index af6708f..fcb6fca 100755 --- a/gradlew +++ b/gradlew @@ -1,78 +1,126 @@ -#!/usr/bin/env sh +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m"' +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. 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" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,92 +129,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 0f8d593..6689b85 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,4 +1,20 @@ -@if "%DEBUG%" == "" @echo off +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -9,19 +25,23 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +55,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,38 +65,26 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal