From 9cb6ce21ef9865e7c4cb30de2049f8031a6fec24 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 8 Feb 2024 14:25:04 +0100 Subject: [PATCH] Gradle conversion --- .gradle/8.4/checksums/checksums.lock | Bin 0 -> 17 bytes .../dependencies-accessors.lock | Bin 0 -> 17 bytes .../8.4/dependencies-accessors/gc.properties | 0 .../8.4/executionHistory/executionHistory.bin | Bin 0 -> 32284 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .gradle/8.4/fileChanges/last-build.bin | Bin 0 -> 1 bytes .gradle/8.4/fileHashes/fileHashes.bin | Bin 0 -> 19547 bytes .gradle/8.4/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../8.4/fileHashes/resourceHashesCache.bin | Bin 0 -> 18735 bytes .gradle/8.4/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .gradle/buildOutputCleanup/cache.properties | 2 + .gradle/buildOutputCleanup/outputFiles.bin | Bin 0 -> 18929 bytes .gradle/file-system.probe | Bin 0 -> 8 bytes .gradle/vcs-1/gc.properties | 0 .mvn/wrapper/maven-wrapper.properties | 1 - app/.settings/org.eclipse.jdt.core.prefs | 13 + app/bin/main/etsf20/App.class | Bin 0 -> 646 bytes app/bin/main/launch/Main.class | Bin 0 -> 6280 bytes app/bin/main/model/HelloJspViewModel.class | Bin 0 -> 673 bytes app/bin/main/servlet/Database.class | Bin 0 -> 3739 bytes app/bin/main/servlet/FormGenerator.class | Bin 0 -> 2262 bytes app/bin/main/servlet/HelloJsp.class | Bin 0 -> 1656 bytes app/bin/main/servlet/Survey.class | Bin 0 -> 4922 bytes .../bin/main}/webapp/jsp/example.jsp | 0 .../bin/main}/webapp/static/css/pure-min.css | 0 .../bin/main}/webapp/static/index.html | 0 app/bin/test/etsf20/AppTest.class | Bin 0 -> 718 bytes app/build.gradle.kts | 61 +++++ app/build/classes/java/main/etsf20/App.class | Bin 0 -> 646 bytes app/build/classes/java/main/launch/Main.class | Bin 0 -> 6262 bytes .../java/main/model/HelloJspViewModel.class | Bin 0 -> 673 bytes .../classes/java/main/servlet/Database.class | Bin 0 -> 3691 bytes .../java/main/servlet/FormGenerator.class | Bin 0 -> 2211 bytes .../classes/java/main/servlet/HelloJsp.class | Bin 0 -> 1656 bytes .../classes/java/main/servlet/Survey.class | Bin 0 -> 4867 bytes .../resources/main/webapp/jsp/example.jsp | 16 ++ .../main/webapp/static/css/pure-min.css | 11 + .../resources/main/webapp/static/index.html | 27 ++ .../compileJava/previous-compilation-data.bin | Bin 0 -> 17397 bytes app/src/main/java/etsf20/App.java | 14 + {src => app/src}/main/java/launch/Main.java | 0 .../main/java/model/HelloJspViewModel.java | 0 .../src}/main/java/servlet/Database.java | 0 .../src}/main/java/servlet/FormGenerator.java | 0 .../src}/main/java/servlet/HelloJsp.java | 0 .../src}/main/java/servlet/Survey.java | 0 app/src/main/resources/webapp/jsp/example.jsp | 16 ++ .../resources/webapp/static/css/pure-min.css | 11 + .../main/resources/webapp/static/index.html | 27 ++ app/src/test/java/etsf20/AppTest.java | 17 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 249 ++++++++++++++++++ gradlew.bat | 92 +++++++ mvnw | 227 ---------------- mvnw.cmd | 145 ---------- pom.xml | 94 ------- settings.gradle.kts | 14 + 59 files changed, 577 insertions(+), 467 deletions(-) create mode 100644 .gradle/8.4/checksums/checksums.lock create mode 100644 .gradle/8.4/dependencies-accessors/dependencies-accessors.lock create mode 100644 .gradle/8.4/dependencies-accessors/gc.properties create mode 100644 .gradle/8.4/executionHistory/executionHistory.bin create mode 100644 .gradle/8.4/executionHistory/executionHistory.lock create mode 100644 .gradle/8.4/fileChanges/last-build.bin create mode 100644 .gradle/8.4/fileHashes/fileHashes.bin create mode 100644 .gradle/8.4/fileHashes/fileHashes.lock create mode 100644 .gradle/8.4/fileHashes/resourceHashesCache.bin create mode 100644 .gradle/8.4/gc.properties create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 .gradle/buildOutputCleanup/cache.properties create mode 100644 .gradle/buildOutputCleanup/outputFiles.bin create mode 100644 .gradle/file-system.probe create mode 100644 .gradle/vcs-1/gc.properties delete mode 100755 .mvn/wrapper/maven-wrapper.properties create mode 100644 app/.settings/org.eclipse.jdt.core.prefs create mode 100644 app/bin/main/etsf20/App.class create mode 100644 app/bin/main/launch/Main.class create mode 100644 app/bin/main/model/HelloJspViewModel.class create mode 100644 app/bin/main/servlet/Database.class create mode 100644 app/bin/main/servlet/FormGenerator.class create mode 100644 app/bin/main/servlet/HelloJsp.class create mode 100644 app/bin/main/servlet/Survey.class rename {src/main/resources => app/bin/main}/webapp/jsp/example.jsp (100%) rename {src/main/resources => app/bin/main}/webapp/static/css/pure-min.css (100%) rename {src/main/resources => app/bin/main}/webapp/static/index.html (100%) create mode 100644 app/bin/test/etsf20/AppTest.class create mode 100644 app/build.gradle.kts create mode 100644 app/build/classes/java/main/etsf20/App.class create mode 100644 app/build/classes/java/main/launch/Main.class create mode 100644 app/build/classes/java/main/model/HelloJspViewModel.class create mode 100644 app/build/classes/java/main/servlet/Database.class create mode 100644 app/build/classes/java/main/servlet/FormGenerator.class create mode 100644 app/build/classes/java/main/servlet/HelloJsp.class create mode 100644 app/build/classes/java/main/servlet/Survey.class create mode 100644 app/build/resources/main/webapp/jsp/example.jsp create mode 100644 app/build/resources/main/webapp/static/css/pure-min.css create mode 100644 app/build/resources/main/webapp/static/index.html create mode 100644 app/build/tmp/compileJava/previous-compilation-data.bin create mode 100644 app/src/main/java/etsf20/App.java rename {src => app/src}/main/java/launch/Main.java (100%) rename {src => app/src}/main/java/model/HelloJspViewModel.java (100%) rename {src => app/src}/main/java/servlet/Database.java (100%) rename {src => app/src}/main/java/servlet/FormGenerator.java (100%) rename {src => app/src}/main/java/servlet/HelloJsp.java (100%) rename {src => app/src}/main/java/servlet/Survey.java (100%) create mode 100644 app/src/main/resources/webapp/jsp/example.jsp create mode 100644 app/src/main/resources/webapp/static/css/pure-min.css create mode 100644 app/src/main/resources/webapp/static/index.html create mode 100644 app/src/test/java/etsf20/AppTest.java create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat delete mode 100755 mvnw delete mode 100755 mvnw.cmd delete mode 100644 pom.xml create mode 100644 settings.gradle.kts diff --git a/.gradle/8.4/checksums/checksums.lock b/.gradle/8.4/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..9f10e10e86b6625f72d7048415de61b89ada820f GIT binary patch literal 17 TcmZP$_k@sX1g9HU6 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 literal 0 HcmV?d00001 diff --git a/.gradle/8.4/executionHistory/executionHistory.lock b/.gradle/8.4/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..a0f076dd24a7cfd6e7cd5ba3d25400c46b230802 GIT binary patch literal 17 UcmZSH*~TrDxoMd^0|c-D04ZAoL;wH) literal 0 HcmV?d00001 diff --git a/.gradle/8.4/fileChanges/last-build.bin b/.gradle/8.4/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/8.4/fileHashes/fileHashes.bin b/.gradle/8.4/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..3a995db2c75d22392e8c1ef2b2c13dc34a5802cf GIT binary patch literal 19547 zcmeI3T})F~0LO1H!U~cK0uDvlzz1bxP@{-J#|F%g7PC1cI-?V)qzK4FQL70;w**8x zqRXZM7e8vjp(wBw1}frkK~UfUr$YQdS4C8`R^22nXm>8>oVa;?@O8`oCT(wi_x$cX z=hyN?&PRga@8x8N@Z#`$af&k(Kmim$0Te(16hHwKKmim$0Te(16hHwKKmim$0Te)i z|4V@cvJelt82?aFIvHUQ1hpqQ@iXQRo0zj>%V~O9vzPz>U|UDyonz;#w=$l|`F7D# zsr@ni1Io1}oSPrb%vc_$m`izlGUtcmY-h`@!?l#piQ(M3YejFz_>^aC{I{I9W&N;3 zU+CM&?*EMQ%U65XJKt8A*!X77e|J4{@WNr^=WKig=gw7ryL6py)s)Za;#?7;sjbi4 zx}V)=fOC(&%NySf7{|wFbMEEY8F}E)ygh7uIOo9w%8{A7I_Q%w=t-Lg=x-;(YjLGZpJH`*p%FFA8;YMu9iapv47Yn!OyyiE;-tK7&`ts4{7Z_ODy zSdd!2|Hg0Bm{Cj(pObP!*X=m9u)eu>-|jWP?riP;S~BvJzNx2%a-H0mA79l{l3lSc zJ+i8Ons{#0kP$daO%1oDa^vPhr#WG7e!x#%vCj?Ld&w>ZY2|z!F4As*ms={_EvNolZ6T zhJW#gI_HDQsxN}hF(Z~e!z?%S+NbjyH8r*%ZH3)ldg(o8q)@}hMQ&)sPaW!r7=zmK zW$?t*3zhL%rH_zl_58#E*9*6ggtESIQxCf z$C0K`W_(8tH)$`#OLd#HNunlu@NR?K@$w35-E3yqs1f(4+-T8u>DA{`r->(Q-ACQK z$e#iEl^C9~U!pilZm0^rioK{j64bXM(cl|$Z_1FdrZS5@PmR}|6*27poYmj#S|Duz literal 0 HcmV?d00001 diff --git a/.gradle/8.4/fileHashes/fileHashes.lock b/.gradle/8.4/fileHashes/fileHashes.lock new file mode 100644 index 0000000000000000000000000000000000000000..dc1b26bd6db17a8c507dc71d4a688d54eb3b6936 GIT binary patch literal 17 UcmZQhJLq-mQcKHh1_)3906S0wTll$bFC?<-D#6lvYP)fO!EM{SnTd~3v zl9YxhN@5mf!Dco{vXdIlbk0dS{{i2(-t+!?-e>cEw#Ot0I_;Odgr61vGcqB700Iag zfB*srAb%FWsO3p8o{9`3!VtMmWiUqSx$@8wR`}XGDJ#v3T z$(vta3?nx+?Q;IC@L@vccv@UjgZ;T!sP9~OJl)M!;`D%M%{=> UyI!m+5&UD06z!Y8b~xDh1_f`WL;wH) literal 0 HcmV?d00001 diff --git a/.gradle/8.4/gc.properties b/.gradle/8.4/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000000000000000000000000000000000000..cf8467c14a5bb704293ac93502737c9a1e9d2cb3 GIT binary patch literal 17 TcmZR!R18r66#P_%0Rp4}B@hEP literal 0 HcmV?d00001 diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..347cc2b --- /dev/null +++ b/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Thu Feb 08 14:24:23 CET 2024 +gradle.version=8.4 diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000000000000000000000000000000000000..745d3ca16cdd63e06a16babbd89c8c7ef3da2806 GIT binary patch literal 18929 zcmeI%Pe_w-7{KwjAxM94F;rHFL{gU&A|VJW7zj>GN4QYl#iAnhQd$y=E}aymTOyi^ z1@=eQ5FtnCBpoEXXyNb>T~b*GH57zKx7It}=SjLo9*XY^@4Fx0_qS*KKG)S4hWlVn zE@S5^*;%qe009ILKmY**5I_I{1Q0*~0R#|0009ILKmdXNMc|TkkbU-H+?9^}!WlA* zlLxGY`(esFetN#S(0*N4sQ(`f422?hE=0HO?!BS?Wy@ICO7?M3dY|^h%H)-7x%p0d zMtd@P?Dgl`)S}Ekq_4I1X_`kek%?#0-)ncReR>;htSXYeti9A93&jS{tl8b$q`mB{>+b48_pI#i z)_#8ZhvQW+J0<(W+CAoT(|37eSbF+b?{D}pviT?>b9~zC?gd@JL`8x0F73X)xsGJG zxKifKYWK&T!=9z_QrSPPJ@9enX-P8KApM;7w#Dy(sjXA>(ywa2nHk?m^&Gw?^F!J@ z(`MDJiR%^8$F$#GpH5GHiR_o2)vlk0;kanO5 NyLXB|oBUV5^%L34Q!fAj literal 0 HcmV?d00001 diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe new file mode 100644 index 0000000000000000000000000000000000000000..a7799bb88d61f8e7c084daae64ca5226642084a5 GIT binary patch literal 8 PcmZQzVC?O9!si132m=CD literal 0 HcmV?d00001 diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties deleted file mode 100755 index a447c9f..0000000 --- a/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip \ No newline at end of file diff --git a/app/.settings/org.eclipse.jdt.core.prefs b/app/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..12b4a91 --- /dev/null +++ b/app/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,13 @@ +# +#Thu Feb 08 14:14:29 CET 2024 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.source=21 +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.debug.sourceFile=generate diff --git a/app/bin/main/etsf20/App.class b/app/bin/main/etsf20/App.class new file mode 100644 index 0000000000000000000000000000000000000000..9a234afa94ca282401f39b660f508c94f94777c3 GIT binary patch literal 646 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 literal 0 HcmV?d00001 diff --git a/app/bin/main/servlet/FormGenerator.class b/app/bin/main/servlet/FormGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..2e4f59b0e90e6dfd55b1657fa97689bd7edd2bb6 GIT binary patch literal 2262 zcma)7U3U{j7=9*6yW3JMECmDvmQpZH3#A1WXsJSJp_sNv5G)mSn@pP}o87QGDfZqQ zFTC*1Th8(5t={N4JqLe)|G~e4J~P>4Q%}dIbiHekhll^>rCP^wt9@;1r{>7d-M}U!PMjr>cG;aJ1Of`Lw{k4MsB`$hr*a z^?bg#8%jyVez-Y3+6g&K>)-$!4AOMntI4@2EPLv)ud3W7$_o{pW*c6t!|Jfe=tHkA zAIRrTnJ7(%z)-%69~*BA9JwDzFOe<-l(D-VHDgz6+c+-JW9EP19%IA4tJ+? zV5bGHcFCnPmabmUF!)WW9At3H#t7+G@@r+|JaF^=)+RdoIy*G06hK|Sh@JVyM z?$g-??n`FxAcs6%S5-YAAB{NDHFDciUK@oLrUVYHbvm+eWlx2*p4G zL_Z3>z~xrggBO;`?^UvpOitRkE^tgsDp{_EK8tLx+>DW%vcYN{(sF5lZc?twN;9CT zkBrD=8@CurNqO6{;zpsn-mH*j8@J8%6&nizYcq}6^u@g-kxAmJs&xH&BZ^s9W$8v6 z2HA*$AbP<9bvL{+8!2(~lNTm0jk_nE-*9QCiR8ntnkq?($Ua@a?w9Q5kN z(u<9}gFa1k-&Wd0EaIWHE|dxgpT9+c{Y<7@Tk;yF-z=;M^p{woWx3#+rrgu)7j-L; zfm>0e5*2$5vQ>>LNk2Zr6AP;XBfHJwhg(riPPCq@)nE%I(`{XOYXU#CS6(XJGI-Yu zD}hW#icwT+Hl{mkq7B)j_;9-+yNI__&>B#Crb23B&I^K)ujKS#FCN?Yf{!{ZhHZQ$ za8U47-5Fh5rg?7&8|$P>xOKyTK34=>Beu-$zV34Vv9(>rh;E2fY1YPuVBZ^K?e|+= z(4-jet9)Q{Pm9k4=f{66>Cxd*Qea>)w~zFUlZV+~W)< zQkLTq>|xF;)|+6t0TcWRetQbP!~T_<4Enk1Yl7Ivbs*gjV86NNd?TWjrzxG`*BaZw z0pJ&Ny{q15)Q_}8Xhy437>6)K1N%n~!-*Z71oXi*hvC-Y zEDr_eoPpkLK?MVi8|b2jcEdQ%Jopd6#2v;rM2m-UiB9Kmv@NvxG_)*kk&aeqTFT@o zuCW($wDObn3X`kZo>#cMnsweQt>&B$N?cRmng*r`^rXNI4SYzTHwA8LV6IduI`d28 z1?P?lcoEQtR*v_0$j<(Zk@2yUQ`xB$VV!%{ zyx=Tf2{=s#TxNR)c?{zk&f+eyMU2qWIjrJ5Hh5FRC|;m|Z@K>-8>ZX;#my YWwXi-eA6I)dRwCn{SO-;L<7hE0eH<5?*IS* literal 0 HcmV?d00001 diff --git a/app/bin/main/servlet/HelloJsp.class b/app/bin/main/servlet/HelloJsp.class new file mode 100644 index 0000000000000000000000000000000000000000..34a22ef9c7a15e4ffdde0ae2987347086035d014 GIT binary patch literal 1656 zcmbVM*-{fh6g`~;CM3fac10Ey2}>9^+=9p!AQ*xLRw&D-NoYe;!%UdzV1CAr@I^qY z`~W}7^3G%kByp+oq1Su+p3`^x@$>6<0LyrzAi&V&aQoEYQrqN)VQo1j1tEr!BmGpb zXqU1>DNEWWO?y>khSmjP3c1J-j8EklLaWvRk06LP6)k9G=*$R{XUoTVZok#@24{$6 ztb%UjbX&M*|1u;Gh2zRDkuF&z8Cnjk4K5jW;Ig8MS=P3I1{0y@}vH z9x8Z1f$#$5eK$>UC~{lHBRnQMr@B$*J0B=!@pRP%RXATQ8O0MkQ}C3b!?RJA!q76p zkt&|!1w+81x5jnqKGA0C|99h)s^KOhNMOM&s+W|2KJb-vDi_5oEGt-I7_E;+Q$$s) zV3m9z%z{xqpb#uo&0UqbpH%+K#(Jtrua!~I<|h=(h7|upB2Z0-Z0?j88iAW1_!tyR zLU615dP0vk;5B`fkRp3l*)H&P;r5>P%eFG-`iNm@w`@vr%yYsK)Qpx*(~`Q^3@E7^ zjO#U_w$Jmv6WsRX~w(19q; zYE^;Ob~=UVwv&u>d0GKc49vGLfQ3rqwt6Px*l#Jli0 zG=)YhjTRaq8t0flL(`HYNw+jMk*1#qutjzPc#RCL9i+8QBl{lA!Okx^F3r>c literal 0 HcmV?d00001 diff --git a/app/bin/main/servlet/Survey.class b/app/bin/main/servlet/Survey.class new file mode 100644 index 0000000000000000000000000000000000000000..f291222405cc268e1208466493b6719fa96d95d5 GIT binary patch literal 4922 zcmb7HeRLdE75}~LCbQX{Y|?EuWg9C~D3ETN#zGB{#MmTF=|Y->Zb)gX&`EZhY_r+f z?##9gD&GR4$d?F_PZ1140jrQUtx`n<1Vlju(Idw{yT5ziomc*Q^f>^X_=AEnfuLn%_oWQGIiAbzGbR;y1wOe)-=`mFF3gPC zcBXkVA8}VypoUXPJvC%xt)!X0B(_mNTqsc0ZKf?-PuoL!Drb~)7x@zcm3=)u8!zwc z+|onAn8z8#5@&E=YyX8k-Gi5J>>TWr6Evx6x0#)|z(^Ze-8QoV%X$lzY$}~-6R2oU zrjvGufTv;gkbt+_Oc;K65LU4SAqC3>!V9kTqYmLp2rO4ojT(XK-elV7%S{X$*+G3c zWe9|N%@H0^=Rw)e4|?sfq{Z_WEpkzlrlj==qkmlBtcK#`M%~tjb<1e$m4G&<^z>+R z+|DM`qiw5q_;8v4{8)uE6`VnxC(Ecf3k_6k?9J&ZZW?YVQPV%X#~87x#*Zl0C}?z@ z;&`&Kt%@eB6;SjS<9^Qu7Y6_G)1AHgU3k)vW>YiqCmTl#^4a;`1`zSFhL)IB>k^ugm z10zPpCMPWgpZO4x<1T-TLJB@Bu+%wP(rk|P7bhgB;Q+d@Q9-xB8B*k*F+Bvo95ULu&Z`i%V!=SiYI4lw3y zL#i22aWS?EsI;NeCewym?PR$7Re1v~OEBX&W-S8(f5%>4E{qMt-8rhg~wj$Lxtz zhaba8C>Sa6R*9$z1G~xdj9i@}>hmI{aNZ#w#sto7A2aksN4uT0Q$~ljsk3jeGd>vW z*0%L@X`KTDy|M1j!B~Hv*52%jv^P5oeApwc88#D>9X_N;>m0*HQY5XyM8?H@K+iH> zoMU|)=6SRH%t2Wdr$X~#opfPN#Xiuxsx{Ar%qk}wlV4jhQb-3wGO!jT>gh=N5c-6KyJNzM~B&nshA5ifiLQERTv;#HcSmvH@t9V!rmye`O zizAQVy9ypHu-~zEa4c)?mp7A&X*|XR%q$YKlIE?qc$Ra@i$XT1LusLtu?0T< z3drYn?qn5Gsym(5a;%l>1tME>X*)S#3?;23$g;jl+I9Nq47?>LU0Sbd1lW) zuYz~;m;B}p{=5r}~ zUDU>k6E)GpsEr;&-S)#c(b7LS^Hc8LaMDagfsu*OjzbyXDA*P|Jq za<;6;I-KnsMa4N-Pd%Teo=SMCHi!@4mnUJ)&)ael1YSt`MX0$)7wF@pJn78$;u>nBZ2vi0?&oMkD1B-wgInLE|P?#5W7ugYp(7 z;*UOq$P5lp;j}n~JABdE!5zKQ87(UaIbHnA(-QEssGgQ8PfJj0%bUEa)z=uh#@)5L zF?5~Vs%Z>;*=;Rp4BhCqLXqm15GrVOw#NP5mZg#EBlt>7AhJZh)JRCasv@n-1f9#}Dy4x=F-D zFP=b9yf6MqKbDI*G3PinQWn9J`N(*WBnG(_B+Hgz1B1DX)a>EM-zI*)ZRTh%Tm9IA z0SvOd-^se;04~9`7{ZOL%J0CXxF6f`5Nq*+oPC-l_6#n=^Vo%-L&qB!!CS15|AgK6 zJ4W$umceC6lIMFw9mYjHtJx^hqKReGdh8W#$ciplA_iOZAtx?oHF^!M5I3-zyAxN6 z2XU2n0#}QtaE&;`V(tj86EEOq@g{B&@8VYR9&Quw+I@!R-6TF>otq?EcS>}aG zesn#^6CY+$d3p_Ulb<2bd{@`RNP>YuuqNwgz8M~C?p2nAgV zb|`qn`HL#p%o>4-_XC`-V0eysE3mMXf>m5R45=!(n2^*@kvVc;=|`#&{83}^Pp(;s z+W%_}4Oj4lcg+T|ZjMQO5xa{fX{h+HdZ3p;{0II{z5;+Qq0S6kO}ogyu^2qR=mvr=k0{B e@C&@+jFsWn9DBog{szD0n5@Iz#_vd|$o~N5t+ONm literal 0 HcmV?d00001 diff --git a/src/main/resources/webapp/jsp/example.jsp b/app/bin/main/webapp/jsp/example.jsp similarity index 100% rename from src/main/resources/webapp/jsp/example.jsp rename to app/bin/main/webapp/jsp/example.jsp diff --git a/src/main/resources/webapp/static/css/pure-min.css b/app/bin/main/webapp/static/css/pure-min.css similarity index 100% rename from src/main/resources/webapp/static/css/pure-min.css rename to app/bin/main/webapp/static/css/pure-min.css diff --git a/src/main/resources/webapp/static/index.html b/app/bin/main/webapp/static/index.html similarity index 100% rename from src/main/resources/webapp/static/index.html rename to app/bin/main/webapp/static/index.html diff --git a/app/bin/test/etsf20/AppTest.class b/app/bin/test/etsf20/AppTest.class new file mode 100644 index 0000000000000000000000000000000000000000..60847807523f1c97281c16d016e05776928a759b GIT binary patch literal 718 zcmZ`%ZBNud5PtSJ=}}67iYSO$-{PSOC44<%(m>P?&6x;Z;>W$awYQhDZMs|jmtTZv z;t$|Q5oUW$?o2ez&g{(WJoC&oSi*{jdst>zPoxt4>S8F$b3V)jLy+Vno(*^@ zt=%}=W+F8eNdB(cBLH3$pSX@cmO>b*Qih!`l``@|45XHX5G$1%Ze*?qAWZTyjiwcG zB3Vcy%7_;-I+fa18x!E(f1cPbdk*e1xN{ON0<2iE?cpIFF|4M-%&Ba3_mlZd&P+)J zdmZdD>=NxzPx2}ohZBA&LLR0~2QK#T)WH*C`){(b)}pK%^6(5H!y2zW{oM4cEMs`n zU8p+SL~p^<@UZ*vM;YaQRbv`I^~c~XOqhn@p5;|J5+9`9jMwb?z_x@Cv{d>bfEFEE zCfN?%BGSxy-d>^eqYk?yZ5UXk5AbFWNUxCv_!Mnnoo+7a4bq!*ELfjx3m^PO@a+m) q$-AF;5bRvz@f_K&Y53?6!X{?K88cy$N%zofbV literal 0 HcmV?d00001 diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..4e97f77 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,61 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * This generated file contains a sample Java application project to get you started. + * For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.4/userguide/building_java_projects.html in the Gradle documentation. + */ + +plugins { + // Apply the application plugin to add support for building a CLI application in Java. + application + eclipse + idea +} + +repositories { + // Use Maven Central for resolving dependencies. + mavenCentral() +} + +val tomcatVersion = "9.0.85" + +dependencies { + // Use JUnit Jupiter for testing. + testImplementation("org.junit.jupiter:junit-jupiter:5.9.3") + + testRuntimeOnly("org.junit.platform:junit-platform-launcher") + + // This dependency is used by the application. + implementation("com.google.guava:guava:32.1.1-jre") + + // Tomcat + implementation("org.apache.tomcat.embed:tomcat-embed-core:$tomcatVersion") + implementation("org.apache.tomcat.embed:tomcat-embed-jasper:$tomcatVersion") + implementation("org.apache.tomcat:tomcat-jasper:$tomcatVersion") + implementation("org.apache.tomcat:tomcat-jasper-el:$tomcatVersion") + implementation("org.apache.tomcat:tomcat-jsp-api:$tomcatVersion") + + // MySQL + implementation("com.mysql:mysql-connector-j:8.3.0") + + // SQLite + implementation("org.xerial:sqlite-jdbc:3.45.1.0") + +} + +// Apply a specific Java toolchain to ease working on different environments. +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(21)) + } +} + +application { + // Define the main class for the application. + mainClass.set("launch.Main") +} + +tasks.named("test") { + // Use JUnit Platform for unit tests. + useJUnitPlatform() +} diff --git a/app/build/classes/java/main/etsf20/App.class b/app/build/classes/java/main/etsf20/App.class new file mode 100644 index 0000000000000000000000000000000000000000..3ad3956079df706073c62a53fd8a971dec9b3609 GIT binary patch literal 646 zcmZ`%TT22#6#mAwR<|v0+5MtjHK>hVjY5LzK`Jne=xNl+Ce~e9$Dn^zJror51Nu?X z8510lZ$(Wp4DU)$syzlH zm#;(+VX%*d>-w1sKXB{WC@hSaux*TD?1w=4zO6))cz%au(xtAn^qsRndaA4f!J7pW zaRy7M_Vv!TQ*5;?#9(Mh*%(KfVWc6{Q6PkpUV~vgm;aXOCL|5&7A#C+%EYvd8O$=I z{_tTiTiVt2C`j(NM83ihKJe>;Ay$%}IO#O2A~@$&mpaLkU*m3t2U4$l&9J(WZ5lb-$Yf nNIW6>hS=o`63<9JW1^oyKPv4Wr#I2hk-#!msL!z4wOsoGP2PK* literal 0 HcmV?d00001 diff --git a/app/build/classes/java/main/launch/Main.class b/app/build/classes/java/main/launch/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..b69b4523e7b71fac2125cf782ef7ed6ebc6e2b3d GIT binary patch literal 6262 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 literal 0 HcmV?d00001 diff --git a/app/build/classes/java/main/model/HelloJspViewModel.class b/app/build/classes/java/main/model/HelloJspViewModel.class new file mode 100644 index 0000000000000000000000000000000000000000..6a1bdd8e50884ad48a0efb7f0866a4ed391c7a91 GIT binary patch literal 673 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 J-p1e1@gI(fn`8h0 literal 0 HcmV?d00001 diff --git a/app/build/classes/java/main/servlet/FormGenerator.class b/app/build/classes/java/main/servlet/FormGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..88c49963914c31689a8769be7575264b68d02844 GIT binary patch literal 2211 zcma)7O>-1Q7=C(plNmxVFyw;|Lxvb&vsnlUs7OLoLIS}}Ko-FeQ75~d?2y@+b*49% zyEn^&H_w!%SG{Oes_+N+6Z|P2(5HJxl8`NnOHcRH@B8-ie$JmSw*LU|A;Kc*T?UyK9LnA&^hggzM2up=0_hm)UvyA09^tDb#Ft?Mq$NM4}DeR zE>T{n5`nY%(vF?7iv4hXYIHwjqg$Z=ZXmrxx-wKUcDJHt?1o-l+IT~t!w(xx)rG@2 zV!`RgQT=RRBIC_Ks`2?KuHTfQj6D^_0teT4o(p81mK;z{)9e?x(uT}_E^X-@qtok> z)-vd`aZ(_s&rH#1XiXS zGimC*B#}wts+x5DdLxQiMHT5rYX(`1f*^Xz3Ub%H3KN~U`HAxr7mM!GnvA78;rfZI zD@eW6RiiepF=(cECLI=bpMy>eF=?|=RSNW!{7^16>#H)p@2v(zoKi%0A9%5^&ncKw zHJ`;iP-O^K0GP1OT-K^n^&p7Qpn312`g z2prf<$&pd-N}Kcx9AdyL8;f4U@VBre&{bwXRph*HoZQne7j%a*OV^`FB`WqB%xEpD zCN@5yXTxIH#zTQ4f@yN6b+MSXye4cc)2?vqMqHm)1nXamEz#$zF2@C%)>T^#c}=8B zGd3OzoM;)_eZT1iO^WgU3uesR(;|5t6R%j(0d*KirHq zK?u%L}W4Oh!skw9#x#?N8_~WRK!~I@v~icY0c5bkF!p zP0V^hQ1+E%C3P=^oMW?r=>!W;1kUX9sU1}dtesQ;FUq*K{K9Dt(hLVUI7c{K*%JaE z@HEb^;J2gjJH)TtWcX)*xh9C~+;_JGFpC@Jo|8CLp5j*(42FyG*)m9{f3@x^aA=YU=GJyhZ8&$oHq@0ss)`k&|3yN zqoExdC+G)ogp=B#`@I-MA1i7lkmZvRJ3oFm~Jt^8y?$Jym<$8+SD zvreJBoO6n0t|@Rq0~ZN&q`;&GE)(cXfp;`;rCcsKR~L%~XW9^^kNWV^$HnZ-p!E#r zierP5*~x9pwC=UrL~=ylC-O~J{QS>f)O*GE#iI5-Ycg11mVhC8G=dV&U>RqzhCJ#R z#TE+qmizBf#E&>{Vo{)%HQs$h>8$oQjmiQZV-ZVCR0)qvd@{Jh`yOOopl0E&g}nHi t#t|;D+^k>nVVI)wu|a~z{{=t|5^Vqg literal 0 HcmV?d00001 diff --git a/app/build/classes/java/main/servlet/HelloJsp.class b/app/build/classes/java/main/servlet/HelloJsp.class new file mode 100644 index 0000000000000000000000000000000000000000..2ed076db051d1c901d96ffcec2fc3fa0e9425554 GIT binary patch literal 1656 zcmbW2>r&G|6vzMD7E;=9D|baMD$;U`H&iSlcPJKcz$xSSDJ^SRCQVAS#lDOW;THj& z@d11&$CES^nxf9wncZ~voU`Y*=aT&V_3a0MCA^IwfS`hqiY7EO3?1vIdPTE&>D1s- zJCd@fZPK(~-C$^*7p9O448eFJ6G0d)3L+|^P#HQd%{IAVSX*|Hp)=2=XS-sVl2;_d zNIa3QcT=yC45N*qUprV^o=)woYsYp`;}yM7H24htkD>#e3Sug{(9JOTx1$)k31E+( zl({Wegzw6aR21B0=qp%<+|VxL zo)P@hwzCt#eT*r1pkf?x%7(*Ly>p6^k#{1Yoa#oI?|x+Hji;(1sMAPBF@Z@1Q!1u0 z!_elQQI^8c(!!>61}w5QuA_UPjp+Zk<3ZJ2CL)$r(DSL z(mOqC&`vCE<#Z#XmxQzSHbe4A*pAHKJ4uG7Lu-Rmg!lYVe<&zFU8CAH%wUP1P|5i& z)M( zSXyegCZLn{t#T>H*M$@Q*30ggada65_R6Ld1)dSMpnNQurX_XPD>bkWQ?CiN1D^E= zoD8|m!_ZP|Ju1yGy;7ZD0HlCsnqSaLqbH+h)5ICr7gsz-vm*xD@RDY=s(>WsX%)gN zEYKm2@n^Kq8d#h73MJNhf%X7)CSyIZz6%TlF&P{Fj?wqwbKFyCG}CCJ5u$O9#2GYK zYkG3(0*`~Za^6dPK#UxBqZd8owhyc5cVQ-~4m}uhjn`Oo0oUleu}okp=CDHgL6SKa b31A(YG;h%=fHz3fvyCjaY3zIev$6Xda3s!u literal 0 HcmV?d00001 diff --git a/app/build/classes/java/main/servlet/Survey.class b/app/build/classes/java/main/servlet/Survey.class new file mode 100644 index 0000000000000000000000000000000000000000..46bff9d8bb51c65c6148217d9981e4980fdb3eaf GIT binary patch literal 4867 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 + + +

Hello Jsp, simple data from Servlet: <%=request.getAttribute("simple")%>

+
    + <% + HelloJspViewModel model = (HelloJspViewModel)request.getAttribute("complex"); + for(int el : model.getData()) { %> +
  1. + <%=el%> + <% out.print(":" + el); // or as ordinary java code %> +
  2. + <% } %> +
+ + diff --git a/app/build/resources/main/webapp/static/css/pure-min.css b/app/build/resources/main/webapp/static/css/pure-min.css new file mode 100644 index 0000000..acdc431 --- /dev/null +++ b/app/build/resources/main/webapp/static/css/pure-min.css @@ -0,0 +1,11 @@ +/*! +Pure v3.0.0 +Copyright 2013 Yahoo! +Licensed under the BSD License. +https://github.com/pure-css/pure/blob/master/LICENSE +*/ +/*! +normalize.css v | MIT License | https://necolas.github.io/normalize.css/ +Copyright (c) Nicolas Gallagher and Jonathan Neal +*/ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:sans-serif}.hidden,[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}.pure-g{display:flex;flex-flow:row wrap;align-content:flex-start}.pure-u{display:inline-block;vertical-align:top}.pure-u-1,.pure-u-1-1,.pure-u-1-12,.pure-u-1-2,.pure-u-1-24,.pure-u-1-3,.pure-u-1-4,.pure-u-1-5,.pure-u-1-6,.pure-u-1-8,.pure-u-10-24,.pure-u-11-12,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-2-24,.pure-u-2-3,.pure-u-2-5,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24,.pure-u-3-24,.pure-u-3-4,.pure-u-3-5,.pure-u-3-8,.pure-u-4-24,.pure-u-4-5,.pure-u-5-12,.pure-u-5-24,.pure-u-5-5,.pure-u-5-6,.pure-u-5-8,.pure-u-6-24,.pure-u-7-12,.pure-u-7-24,.pure-u-7-8,.pure-u-8-24,.pure-u-9-24{display:inline-block;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%}.pure-u-1-12,.pure-u-2-24{width:8.3333%}.pure-u-1-8,.pure-u-3-24{width:12.5%}.pure-u-1-6,.pure-u-4-24{width:16.6667%}.pure-u-1-5{width:20%}.pure-u-5-24{width:20.8333%}.pure-u-1-4,.pure-u-6-24{width:25%}.pure-u-7-24{width:29.1667%}.pure-u-1-3,.pure-u-8-24{width:33.3333%}.pure-u-3-8,.pure-u-9-24{width:37.5%}.pure-u-2-5{width:40%}.pure-u-10-24,.pure-u-5-12{width:41.6667%}.pure-u-11-24{width:45.8333%}.pure-u-1-2,.pure-u-12-24{width:50%}.pure-u-13-24{width:54.1667%}.pure-u-14-24,.pure-u-7-12{width:58.3333%}.pure-u-3-5{width:60%}.pure-u-15-24,.pure-u-5-8{width:62.5%}.pure-u-16-24,.pure-u-2-3{width:66.6667%}.pure-u-17-24{width:70.8333%}.pure-u-18-24,.pure-u-3-4{width:75%}.pure-u-19-24{width:79.1667%}.pure-u-4-5{width:80%}.pure-u-20-24,.pure-u-5-6{width:83.3333%}.pure-u-21-24,.pure-u-7-8{width:87.5%}.pure-u-11-12,.pure-u-22-24{width:91.6667%}.pure-u-23-24{width:95.8333%}.pure-u-1,.pure-u-1-1,.pure-u-24-24,.pure-u-5-5{width:100%}.pure-button{display:inline-block;line-height:normal;white-space:nowrap;vertical-align:middle;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;box-sizing:border-box}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-group{letter-spacing:-.31em;text-rendering:optimizespeed}.opera-only :-o-prefocus,.pure-button-group{word-spacing:-0.43em}.pure-button-group .pure-button{letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-button{font-family:inherit;font-size:100%;padding:.5em 1em;color:rgba(0,0,0,.8);border:none transparent;background-color:#e6e6e6;text-decoration:none;border-radius:2px}.pure-button-hover,.pure-button:focus,.pure-button:hover{background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset;border-color:#000}.pure-button-disabled,.pure-button-disabled:active,.pure-button-disabled:focus,.pure-button-disabled:hover,.pure-button[disabled]{border:none;background-image:none;opacity:.4;cursor:not-allowed;box-shadow:none;pointer-events:none}.pure-button-hidden{display:none}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-button-group .pure-button{margin:0;border-radius:0;border-right:1px solid rgba(0,0,0,.2)}.pure-button-group .pure-button:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.pure-button-group .pure-button:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px;border-right:none}.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;vertical-align:middle;box-sizing:border-box}.pure-form input:not([type]){padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;box-sizing:border-box}.pure-form input[type=color]{padding:.2em .5em}.pure-form input[type=color]:focus,.pure-form input[type=date]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=email]:focus,.pure-form input[type=month]:focus,.pure-form input[type=number]:focus,.pure-form input[type=password]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=text]:focus,.pure-form input[type=time]:focus,.pure-form input[type=url]:focus,.pure-form input[type=week]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;border-color:#129fea}.pure-form input:not([type]):focus{outline:0;border-color:#129fea}.pure-form input[type=checkbox]:focus,.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus{outline:thin solid #129FEA;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=color][disabled],.pure-form input[type=date][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=email][disabled],.pure-form input[type=month][disabled],.pure-form input[type=number][disabled],.pure-form input[type=password][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=text][disabled],.pure-form input[type=time][disabled],.pure-form input[type=url][disabled],.pure-form input[type=week][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input:not([type])[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background-color:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form select:focus:invalid,.pure-form textarea:focus:invalid{color:#b94a48;border-color:#e9322d}.pure-form input[type=checkbox]:focus:invalid:focus,.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{height:2.25em;border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=color],.pure-form-stacked input[type=date],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=email],.pure-form-stacked input[type=file],.pure-form-stacked input[type=month],.pure-form-stacked input[type=number],.pure-form-stacked input[type=password],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=text],.pure-form-stacked input[type=time],.pure-form-stacked input[type=url],.pure-form-stacked input[type=week],.pure-form-stacked label,.pure-form-stacked select,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-stacked input:not([type]){display:block;margin:.25em 0}.pure-form-aligned input,.pure-form-aligned select,.pure-form-aligned textarea,.pure-form-message-inline{display:inline-block;vertical-align:middle}.pure-form-aligned textarea{vertical-align:top}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 11em}.pure-form .pure-input-rounded,.pure-form input.pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input,.pure-form .pure-group textarea{display:block;padding:10px;margin:0 0 -1px;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus,.pure-form .pure-group textarea:focus{z-index:3}.pure-form .pure-group input:first-child,.pure-form .pure-group textarea:first-child{top:1px;border-radius:4px 4px 0 0;margin:0}.pure-form .pure-group input:first-child:last-child,.pure-form .pure-group textarea:first-child:last-child{top:1px;border-radius:4px;margin:0}.pure-form .pure-group input:last-child,.pure-form .pure-group textarea:last-child{top:-2px;border-radius:0 0 4px 4px;margin:0}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-3-4{width:75%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:.875em}.pure-form-message{display:block;color:#666;font-size:.875em}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input:not([type]),.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form label{margin-bottom:.3em;display:block}.pure-group input:not([type]),.pure-group input[type=color],.pure-group input[type=date],.pure-group input[type=datetime-local],.pure-group input[type=datetime],.pure-group input[type=email],.pure-group input[type=month],.pure-group input[type=number],.pure-group input[type=password],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=text],.pure-group input[type=time],.pure-group input[type=url],.pure-group input[type=week]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0 0}.pure-form-message,.pure-form-message-inline{display:block;font-size:.75em;padding:.2em 0 .8em}}.pure-menu{box-sizing:border-box}.pure-menu-fixed{position:fixed;left:0;top:0;z-index:3}.pure-menu-item,.pure-menu-list{position:relative}.pure-menu-list{list-style:none;margin:0;padding:0}.pure-menu-item{padding:0;margin:0;height:100%}.pure-menu-heading,.pure-menu-link{display:block;text-decoration:none;white-space:nowrap}.pure-menu-horizontal{width:100%;white-space:nowrap}.pure-menu-horizontal .pure-menu-list{display:inline-block}.pure-menu-horizontal .pure-menu-heading,.pure-menu-horizontal .pure-menu-item,.pure-menu-horizontal .pure-menu-separator{display:inline-block;vertical-align:middle}.pure-menu-item .pure-menu-item{display:block}.pure-menu-children{display:none;position:absolute;left:100%;top:0;margin:0;padding:0;z-index:3}.pure-menu-horizontal .pure-menu-children{left:0;top:auto;width:inherit}.pure-menu-active>.pure-menu-children,.pure-menu-allow-hover:hover>.pure-menu-children{display:block;position:absolute}.pure-menu-has-children>.pure-menu-link:after{padding-left:.5em;content:"\25B8";font-size:small}.pure-menu-horizontal .pure-menu-has-children>.pure-menu-link:after{content:"\25BE"}.pure-menu-scrollable{overflow-y:scroll;overflow-x:hidden}.pure-menu-scrollable .pure-menu-list{display:block}.pure-menu-horizontal.pure-menu-scrollable .pure-menu-list{display:inline-block}.pure-menu-horizontal.pure-menu-scrollable{white-space:nowrap;overflow-y:hidden;overflow-x:auto;padding:.5em 0}.pure-menu-horizontal .pure-menu-children .pure-menu-separator,.pure-menu-separator{background-color:#ccc;height:1px;margin:.3em 0}.pure-menu-horizontal .pure-menu-separator{width:1px;height:1.3em;margin:0 .3em}.pure-menu-horizontal .pure-menu-children .pure-menu-separator{display:block;width:auto}.pure-menu-heading{text-transform:uppercase;color:#565d64}.pure-menu-link{color:#777}.pure-menu-children{background-color:#fff}.pure-menu-heading,.pure-menu-link{padding:.5em 1em}.pure-menu-disabled{opacity:.5}.pure-menu-disabled .pure-menu-link:hover{background-color:transparent;cursor:default}.pure-menu-active>.pure-menu-link,.pure-menu-link:focus,.pure-menu-link:hover{background-color:#eee}.pure-menu-selected>.pure-menu-link,.pure-menu-selected>.pure-menu-link:visited{color:#000}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.pure-table thead{background-color:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child>td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child>td{border-bottom-width:0} \ No newline at end of file diff --git a/app/build/resources/main/webapp/static/index.html b/app/build/resources/main/webapp/static/index.html new file mode 100644 index 0000000..c884673 --- /dev/null +++ b/app/build/resources/main/webapp/static/index.html @@ -0,0 +1,27 @@ + + + + + +the Book Store + + + +
+

the Test Site

+ + Welcome to this Fantastic Web Page. + +

The following services are available today: + +

+
+ + \ No newline at end of file diff --git a/app/build/tmp/compileJava/previous-compilation-data.bin b/app/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..3978512bec8d873536836923b84138c2f78eb487 GIT binary patch literal 17397 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 literal 0 HcmV?d00001 diff --git a/app/src/main/java/etsf20/App.java b/app/src/main/java/etsf20/App.java new file mode 100644 index 0000000..f35252a --- /dev/null +++ b/app/src/main/java/etsf20/App.java @@ -0,0 +1,14 @@ +/* + * This Java source file was generated by the Gradle 'init' task. + */ +package etsf20; + +public class App { + public String getGreeting() { + return "Hello World!"; + } + + public static void main(String[] args) { + System.out.println(new App().getGreeting()); + } +} diff --git a/src/main/java/launch/Main.java b/app/src/main/java/launch/Main.java similarity index 100% rename from src/main/java/launch/Main.java rename to app/src/main/java/launch/Main.java diff --git a/src/main/java/model/HelloJspViewModel.java b/app/src/main/java/model/HelloJspViewModel.java similarity index 100% rename from src/main/java/model/HelloJspViewModel.java rename to app/src/main/java/model/HelloJspViewModel.java diff --git a/src/main/java/servlet/Database.java b/app/src/main/java/servlet/Database.java similarity index 100% rename from src/main/java/servlet/Database.java rename to app/src/main/java/servlet/Database.java diff --git a/src/main/java/servlet/FormGenerator.java b/app/src/main/java/servlet/FormGenerator.java similarity index 100% rename from src/main/java/servlet/FormGenerator.java rename to app/src/main/java/servlet/FormGenerator.java diff --git a/src/main/java/servlet/HelloJsp.java b/app/src/main/java/servlet/HelloJsp.java similarity index 100% rename from src/main/java/servlet/HelloJsp.java rename to app/src/main/java/servlet/HelloJsp.java diff --git a/src/main/java/servlet/Survey.java b/app/src/main/java/servlet/Survey.java similarity index 100% rename from src/main/java/servlet/Survey.java rename to app/src/main/java/servlet/Survey.java diff --git a/app/src/main/resources/webapp/jsp/example.jsp b/app/src/main/resources/webapp/jsp/example.jsp new file mode 100644 index 0000000..c1d2084 --- /dev/null +++ b/app/src/main/resources/webapp/jsp/example.jsp @@ -0,0 +1,16 @@ +<%@ page import="model.HelloJspViewModel" %> + + +

Hello Jsp, simple data from Servlet: <%=request.getAttribute("simple")%>

+
    + <% + HelloJspViewModel model = (HelloJspViewModel)request.getAttribute("complex"); + for(int el : model.getData()) { %> +
  1. + <%=el%> + <% out.print(":" + el); // or as ordinary java code %> +
  2. + <% } %> +
+ + diff --git a/app/src/main/resources/webapp/static/css/pure-min.css b/app/src/main/resources/webapp/static/css/pure-min.css new file mode 100644 index 0000000..acdc431 --- /dev/null +++ b/app/src/main/resources/webapp/static/css/pure-min.css @@ -0,0 +1,11 @@ +/*! +Pure v3.0.0 +Copyright 2013 Yahoo! +Licensed under the BSD License. +https://github.com/pure-css/pure/blob/master/LICENSE +*/ +/*! +normalize.css v | MIT License | https://necolas.github.io/normalize.css/ +Copyright (c) Nicolas Gallagher and Jonathan Neal +*/ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:sans-serif}.hidden,[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}.pure-g{display:flex;flex-flow:row wrap;align-content:flex-start}.pure-u{display:inline-block;vertical-align:top}.pure-u-1,.pure-u-1-1,.pure-u-1-12,.pure-u-1-2,.pure-u-1-24,.pure-u-1-3,.pure-u-1-4,.pure-u-1-5,.pure-u-1-6,.pure-u-1-8,.pure-u-10-24,.pure-u-11-12,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-2-24,.pure-u-2-3,.pure-u-2-5,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24,.pure-u-3-24,.pure-u-3-4,.pure-u-3-5,.pure-u-3-8,.pure-u-4-24,.pure-u-4-5,.pure-u-5-12,.pure-u-5-24,.pure-u-5-5,.pure-u-5-6,.pure-u-5-8,.pure-u-6-24,.pure-u-7-12,.pure-u-7-24,.pure-u-7-8,.pure-u-8-24,.pure-u-9-24{display:inline-block;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%}.pure-u-1-12,.pure-u-2-24{width:8.3333%}.pure-u-1-8,.pure-u-3-24{width:12.5%}.pure-u-1-6,.pure-u-4-24{width:16.6667%}.pure-u-1-5{width:20%}.pure-u-5-24{width:20.8333%}.pure-u-1-4,.pure-u-6-24{width:25%}.pure-u-7-24{width:29.1667%}.pure-u-1-3,.pure-u-8-24{width:33.3333%}.pure-u-3-8,.pure-u-9-24{width:37.5%}.pure-u-2-5{width:40%}.pure-u-10-24,.pure-u-5-12{width:41.6667%}.pure-u-11-24{width:45.8333%}.pure-u-1-2,.pure-u-12-24{width:50%}.pure-u-13-24{width:54.1667%}.pure-u-14-24,.pure-u-7-12{width:58.3333%}.pure-u-3-5{width:60%}.pure-u-15-24,.pure-u-5-8{width:62.5%}.pure-u-16-24,.pure-u-2-3{width:66.6667%}.pure-u-17-24{width:70.8333%}.pure-u-18-24,.pure-u-3-4{width:75%}.pure-u-19-24{width:79.1667%}.pure-u-4-5{width:80%}.pure-u-20-24,.pure-u-5-6{width:83.3333%}.pure-u-21-24,.pure-u-7-8{width:87.5%}.pure-u-11-12,.pure-u-22-24{width:91.6667%}.pure-u-23-24{width:95.8333%}.pure-u-1,.pure-u-1-1,.pure-u-24-24,.pure-u-5-5{width:100%}.pure-button{display:inline-block;line-height:normal;white-space:nowrap;vertical-align:middle;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;box-sizing:border-box}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-group{letter-spacing:-.31em;text-rendering:optimizespeed}.opera-only :-o-prefocus,.pure-button-group{word-spacing:-0.43em}.pure-button-group .pure-button{letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-button{font-family:inherit;font-size:100%;padding:.5em 1em;color:rgba(0,0,0,.8);border:none transparent;background-color:#e6e6e6;text-decoration:none;border-radius:2px}.pure-button-hover,.pure-button:focus,.pure-button:hover{background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset;border-color:#000}.pure-button-disabled,.pure-button-disabled:active,.pure-button-disabled:focus,.pure-button-disabled:hover,.pure-button[disabled]{border:none;background-image:none;opacity:.4;cursor:not-allowed;box-shadow:none;pointer-events:none}.pure-button-hidden{display:none}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-button-group .pure-button{margin:0;border-radius:0;border-right:1px solid rgba(0,0,0,.2)}.pure-button-group .pure-button:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.pure-button-group .pure-button:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px;border-right:none}.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;vertical-align:middle;box-sizing:border-box}.pure-form input:not([type]){padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;box-sizing:border-box}.pure-form input[type=color]{padding:.2em .5em}.pure-form input[type=color]:focus,.pure-form input[type=date]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=email]:focus,.pure-form input[type=month]:focus,.pure-form input[type=number]:focus,.pure-form input[type=password]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=text]:focus,.pure-form input[type=time]:focus,.pure-form input[type=url]:focus,.pure-form input[type=week]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;border-color:#129fea}.pure-form input:not([type]):focus{outline:0;border-color:#129fea}.pure-form input[type=checkbox]:focus,.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus{outline:thin solid #129FEA;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=color][disabled],.pure-form input[type=date][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=email][disabled],.pure-form input[type=month][disabled],.pure-form input[type=number][disabled],.pure-form input[type=password][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=text][disabled],.pure-form input[type=time][disabled],.pure-form input[type=url][disabled],.pure-form input[type=week][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input:not([type])[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background-color:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form select:focus:invalid,.pure-form textarea:focus:invalid{color:#b94a48;border-color:#e9322d}.pure-form input[type=checkbox]:focus:invalid:focus,.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{height:2.25em;border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=color],.pure-form-stacked input[type=date],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=email],.pure-form-stacked input[type=file],.pure-form-stacked input[type=month],.pure-form-stacked input[type=number],.pure-form-stacked input[type=password],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=text],.pure-form-stacked input[type=time],.pure-form-stacked input[type=url],.pure-form-stacked input[type=week],.pure-form-stacked label,.pure-form-stacked select,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-stacked input:not([type]){display:block;margin:.25em 0}.pure-form-aligned input,.pure-form-aligned select,.pure-form-aligned textarea,.pure-form-message-inline{display:inline-block;vertical-align:middle}.pure-form-aligned textarea{vertical-align:top}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 11em}.pure-form .pure-input-rounded,.pure-form input.pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input,.pure-form .pure-group textarea{display:block;padding:10px;margin:0 0 -1px;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus,.pure-form .pure-group textarea:focus{z-index:3}.pure-form .pure-group input:first-child,.pure-form .pure-group textarea:first-child{top:1px;border-radius:4px 4px 0 0;margin:0}.pure-form .pure-group input:first-child:last-child,.pure-form .pure-group textarea:first-child:last-child{top:1px;border-radius:4px;margin:0}.pure-form .pure-group input:last-child,.pure-form .pure-group textarea:last-child{top:-2px;border-radius:0 0 4px 4px;margin:0}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-3-4{width:75%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:.875em}.pure-form-message{display:block;color:#666;font-size:.875em}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input:not([type]),.pure-form input[type=color],.pure-form input[type=date],.pure-form input[type=datetime-local],.pure-form input[type=datetime],.pure-form input[type=email],.pure-form input[type=month],.pure-form input[type=number],.pure-form input[type=password],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=text],.pure-form input[type=time],.pure-form input[type=url],.pure-form input[type=week],.pure-form label{margin-bottom:.3em;display:block}.pure-group input:not([type]),.pure-group input[type=color],.pure-group input[type=date],.pure-group input[type=datetime-local],.pure-group input[type=datetime],.pure-group input[type=email],.pure-group input[type=month],.pure-group input[type=number],.pure-group input[type=password],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=text],.pure-group input[type=time],.pure-group input[type=url],.pure-group input[type=week]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0 0}.pure-form-message,.pure-form-message-inline{display:block;font-size:.75em;padding:.2em 0 .8em}}.pure-menu{box-sizing:border-box}.pure-menu-fixed{position:fixed;left:0;top:0;z-index:3}.pure-menu-item,.pure-menu-list{position:relative}.pure-menu-list{list-style:none;margin:0;padding:0}.pure-menu-item{padding:0;margin:0;height:100%}.pure-menu-heading,.pure-menu-link{display:block;text-decoration:none;white-space:nowrap}.pure-menu-horizontal{width:100%;white-space:nowrap}.pure-menu-horizontal .pure-menu-list{display:inline-block}.pure-menu-horizontal .pure-menu-heading,.pure-menu-horizontal .pure-menu-item,.pure-menu-horizontal .pure-menu-separator{display:inline-block;vertical-align:middle}.pure-menu-item .pure-menu-item{display:block}.pure-menu-children{display:none;position:absolute;left:100%;top:0;margin:0;padding:0;z-index:3}.pure-menu-horizontal .pure-menu-children{left:0;top:auto;width:inherit}.pure-menu-active>.pure-menu-children,.pure-menu-allow-hover:hover>.pure-menu-children{display:block;position:absolute}.pure-menu-has-children>.pure-menu-link:after{padding-left:.5em;content:"\25B8";font-size:small}.pure-menu-horizontal .pure-menu-has-children>.pure-menu-link:after{content:"\25BE"}.pure-menu-scrollable{overflow-y:scroll;overflow-x:hidden}.pure-menu-scrollable .pure-menu-list{display:block}.pure-menu-horizontal.pure-menu-scrollable .pure-menu-list{display:inline-block}.pure-menu-horizontal.pure-menu-scrollable{white-space:nowrap;overflow-y:hidden;overflow-x:auto;padding:.5em 0}.pure-menu-horizontal .pure-menu-children .pure-menu-separator,.pure-menu-separator{background-color:#ccc;height:1px;margin:.3em 0}.pure-menu-horizontal .pure-menu-separator{width:1px;height:1.3em;margin:0 .3em}.pure-menu-horizontal .pure-menu-children .pure-menu-separator{display:block;width:auto}.pure-menu-heading{text-transform:uppercase;color:#565d64}.pure-menu-link{color:#777}.pure-menu-children{background-color:#fff}.pure-menu-heading,.pure-menu-link{padding:.5em 1em}.pure-menu-disabled{opacity:.5}.pure-menu-disabled .pure-menu-link:hover{background-color:transparent;cursor:default}.pure-menu-active>.pure-menu-link,.pure-menu-link:focus,.pure-menu-link:hover{background-color:#eee}.pure-menu-selected>.pure-menu-link,.pure-menu-selected>.pure-menu-link:visited{color:#000}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.pure-table thead{background-color:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child>td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child>td{border-bottom-width:0} \ No newline at end of file diff --git a/app/src/main/resources/webapp/static/index.html b/app/src/main/resources/webapp/static/index.html new file mode 100644 index 0000000..c884673 --- /dev/null +++ b/app/src/main/resources/webapp/static/index.html @@ -0,0 +1,27 @@ + + + + + +the Book Store + + + +
+ + \ No newline at end of file diff --git a/app/src/test/java/etsf20/AppTest.java b/app/src/test/java/etsf20/AppTest.java new file mode 100644 index 0000000..5d92471 --- /dev/null +++ b/app/src/test/java/etsf20/AppTest.java @@ -0,0 +1,17 @@ +/* + * This Java source file was generated by the Gradle 'init' task. + */ +package etsf20; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Disabled; + +class AppTest { + @Disabled + @Test void appHasAGreeting() { + App classUnderTest = new App(); + assertNotNull(classUnderTest.getGreeting(), "app should have a greeting"); + } +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8 GIT binary patch literal 63721 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3fa8f86 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..1aa94a4 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/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 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 +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 + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +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 ;; #( + 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 + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + 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" && ! "$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=SC2039,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=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +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" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + 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 + # 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 +fi + + +# 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, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +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 new file mode 100644 index 0000000..6689b85 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@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 +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +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" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +: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 %* + +:end +@rem End local scope for the variables with windows NT shell +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! +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 + +:omega diff --git a/mvnw b/mvnw deleted file mode 100755 index e96ccd5..0000000 --- a/mvnw +++ /dev/null @@ -1,227 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you 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 -# -# http://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. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - 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; -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 - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - 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 - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -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 "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - 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" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -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="`which java`" - fi -fi - -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." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# 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" - return 1 - fi - - basedir="$1" - wdir="$1" - 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/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -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 "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -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 - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd deleted file mode 100755 index 6a6eec3..0000000 --- a/mvnw.cmd +++ /dev/null @@ -1,145 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -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. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -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. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -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 - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 085a89f..0000000 --- a/pom.xml +++ /dev/null @@ -1,94 +0,0 @@ - - 4.0.0 - se.lth.cs.etsf20 - lab - 1.0-SNAPSHOT - jar - ETSF20 Lab Maven Webapp - http://maven.apache.org - - 9.0.85 - 11 - 11 - - - - org.apache.tomcat.embed - tomcat-embed-core - ${tomcat.version} - - - org.apache.tomcat.embed - tomcat-embed-jasper - ${tomcat.version} - - - org.apache.tomcat - tomcat-jasper - ${tomcat.version} - - - org.apache.tomcat - tomcat-jasper-el - ${tomcat.version} - - - org.apache.tomcat - tomcat-jsp-api - ${tomcat.version} - - - - com.mysql - mysql-connector-j - 8.3.0 - - - - org.xerial - sqlite-jdbc - 3.45.1.0 - - - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - copy-dependencies - prepare-package - - copy-dependencies - - - - ${project.build.directory}/libs - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - true - libs/ - false - - launch.Main - - - - - - - - diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..03dfabf --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,14 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * For more detailed information on multi-project builds, please refer to https://docs.gradle.org/8.4/userguide/building_swift_projects.html in the Gradle documentation. + */ + +plugins { + // Apply the foojay-resolver plugin to allow automatic download of JDKs + id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0" +} + +rootProject.name = "ETSF20-Tomcat-Gradle" +include("app")