From 357b2dde3521ab13de99c6d1d047f2adee6509d7 Mon Sep 17 00:00:00 2001 From: Peter Niederwieser Date: Sat, 14 Jul 2012 07:33:41 +0200 Subject: [PATCH] updated gradle to 1.0 updated all builds to latest library versions renamed specs to end in 'Spec' (easiest solution until we have a plugin for Maven 3.0) --- build.gradle | 18 +-- build.xml | 19 ++- gradle/wrapper/gradle-wrapper.jar | Bin 13031 -> 39752 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 108 +++++++++--------- gradlew.bat | 52 +++++---- pom.xml | 45 +++----- ...ataDriven.groovy => DataDrivenSpec.groovy} | 12 +- ...riven.groovy => DatabaseDrivenSpec.groovy} | 2 +- ...ers.groovy => HamcrestMatchersSpec.groovy} | 2 +- ...elloSpock.groovy => HelloSpockSpec.groovy} | 2 +- ...ovy => IncludeExcludeExtensionSpec.groovy} | 2 +- ....groovy => OrderedInteractionsSpec.groovy} | 2 +- ....groovy => PublisherSubscriberSpec.groovy} | 0 ...ance.groovy => SpecInheritanceSpec.groovy} | 0 .../{Stacks.groovy => StackSpec.groovy} | 6 +- ...on.groovy => StepwiseExtensionSpec.groovy} | 2 +- ...ules.groovy => UsingJUnitRulesSpec.groovy} | 2 +- 18 files changed, 132 insertions(+), 146 deletions(-) rename src/test/groovy/{DataDriven.groovy => DataDrivenSpec.groovy} (88%) rename src/test/groovy/{DatabaseDriven.groovy => DatabaseDrivenSpec.groovy} (95%) rename src/test/groovy/{HamcrestMatchers.groovy => HamcrestMatchersSpec.groovy} (95%) rename src/test/groovy/{HelloSpock.groovy => HelloSpockSpec.groovy} (93%) rename src/test/groovy/{IncludeExcludeExtension.groovy => IncludeExcludeExtensionSpec.groovy} (97%) rename src/test/groovy/{OrderedInteractions.groovy => OrderedInteractionsSpec.groovy} (96%) rename src/test/groovy/{PublisherSubscriber.groovy => PublisherSubscriberSpec.groovy} (100%) rename src/test/groovy/{SpecInheritance.groovy => SpecInheritanceSpec.groovy} (100%) rename src/test/groovy/{Stacks.groovy => StackSpec.groovy} (92%) rename src/test/groovy/{StepwiseExtension.groovy => StepwiseExtensionSpec.groovy} (96%) rename src/test/groovy/{UsingJUnitRules.groovy => UsingJUnitRulesSpec.groovy} (94%) diff --git a/build.gradle b/build.gradle index f5944b2..14b0571 100755 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ apply plugin: "groovy" -version = "0.6" +version = "0.7-SNAPSHOT" description = "Spock Framework - Example Project" // Spock works with Java 1.5 and above @@ -9,22 +9,22 @@ sourceCompatibility = 1.5 repositories { // Spock releases are available from Maven Central mavenCentral() - // Spock development snapshots are available from Spock's Maven repo - maven { url "http://m2repo.spockframework.org/snapshots" } + // Spock snapshots are available from the Sonatype OSS snapshot repository + maven { url "http://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { // mandatory dependencies for using Spock - groovy "org.codehaus.groovy:groovy-all:1.8.6" - testCompile "org.spockframework:spock-core:0.6-groovy-1.8" + groovy "org.codehaus.groovy:groovy-all:2.0.0" + testCompile "org.spockframework:spock-core:0.7-groovy-2.0-SNAPSHOT" // optional dependencies for using Spock - testCompile "org.hamcrest:hamcrest-core:1.2" // only necessary if Hamcrest matchers are used - testRuntime "cglib:cglib-nodep:2.2" // allows mocking of classes (in addition to interfaces) + testCompile "org.hamcrest:hamcrest-core:1.3" // only necessary if Hamcrest matchers are used + testRuntime "cglib:cglib-nodep:2.2.2" // allows mocking of classes (in addition to interfaces) testRuntime "org.objenesis:objenesis:1.2" // allows mocking of classes without default constructor (together with CGLIB) // dependencies used by examples in this project - testRuntime "com.h2database:h2:1.3.164" + testRuntime "com.h2database:h2:1.3.168" } // the remaining configuration is specific to this project, and is not required for using Spock @@ -37,6 +37,6 @@ task collectJars(type: Copy) { } task wrapper(type: Wrapper) { - gradleVersion = "1.0-milestone-9" + gradleVersion = "1.0" } diff --git a/build.xml b/build.xml index d999af2..d35ea0b 100644 --- a/build.xml +++ b/build.xml @@ -27,13 +27,13 @@ + version="0.7-groovy-2.0-SNAPSHOT" /> + version="2.2.2" /> + version="4.0" /> - - + version="1.3" /> + version="1.3.168" /> + url="http://oss.sonatype.org/content/repositories/snapshots/" /> diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 723d373fbbb80ac6bc61e8552ab4280732760287..ce16961d3a715d4129c7a8fc022e26054a31b230 100644 GIT binary patch literal 39752 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≶u<#T!km4*qyfrARIWEtG7iU_xqh7ht zN;_|^zDcrhNVRYdrNXpU%sq9wde(w!5xS2#Iz@$#XL&6F&qw90=vSxt{sv6XX$MF$k;oeg#cJ_rmjZDLrEYP#y)9@* z3S100*E7S)K#DdqxlzUyw%}(i+XOGeNWBbG3nhzYaf$^hrT{vVqYWbui9l*Lqxpo4 z%05alNn3JO?quymmuke2yB_k~F``!S!e*m!T=#mwnM1dDY5366+$namQl;=2+nS)c zMH3TvP%*t0I#lS()0YOb=;@?i4aphB0Y#KLn?30=dE(}CywTI-*@!gF8w=At?2(Zn zLWKy|BSkKuZf??Uo*_AnX6pU$1If)YkIpmm>$YJ1B#)TexX3(cGgNHHXs?q-n=|Q` z7c>vp*)}v+y72`nyaV~)rG&qi2qA(6?iy{L(IJrk`Z zJ(>R6o)g(7MwBa_87^gRdcWh-e^Vu@l{qq`MTD>{5ko%C?4BMBUKlk)T5=A4$%yx} ze-6F83EYF|CbrYp4g z(!dd~#Uy>CQ;J?9)3=?Q1I25tnFHFju_)xF9Q zcW#=4Zr0!nR&?XMby`o{E}rFYvQRI%$zVil;FWliuO5WDd*Mn0)rcSaFeuy}rH z>WUcW!{qUIbdRp%rhU$EV2dR_dwh!h&J<4*#r3)Z^31yqP?}|ry0%4sByxue2^NyY z92`6{L~B-SvqVbNrVeFH_twjtU=OAW&TjgeqZ=H`)I5CYxC-eoDBm$)%8?$rJpf@rx1e(^4s**l$YQCohnx?n!zy+b$4|dEXR4&H2Y|5a??O#}dhdfSP zl19=LA>(+Rd0`XT8kHVnUg8vKSt4fLC?SQlWa=I@JJkk>-l;hFBU!c^_Ibdev5yat z2^MvcQ`9!q7|PkX4mA;M0-0|v0f9lh-Wn}ZIb2!)081Plbc!ZRz#m+=%K%7Xg12+{ z)CplHEt}GX%lKylvWQB0djQJqfA+o|)>L76P z_hoJRv`z+A+x)lbC3r^EA^qSOE`tIjX2XwXLp184Avq`bhs<#MzhHw3$cb~vN%%(~ z7dd5#j1Y@fGg^Z7H(}|NL$06r*p%X(6zVw8Z%$uzUYmLWVayx1h2;#9-SN{G$JPh& z_Z_+*X&fEY4PLLrm|P=1c~ZEEso1jDN+M9Aw`|s_Z6qgTYB}Noj3_Cg?o+Yt zL~hibmaS(C7Kb<+iF$fyy1Ni*ZOaOwxa^bifr*?Yt&1hv?%x70u1m+Tso_oK4o=a{ z&rQ{_O$DjfcKLFOn_!UQA~CL_%3VB4@2J%cNuja+ir7t0TUyk37gd)*uGH=nItNd-W}0Er0WHu zZ3~2hBsORxL`N~kkG5CAf!Xd5?1}1X8(`a(U3h}9(L2_N;l9fz4`{8&Aus~Ub!6fT zdzBhuEbRkT^@lvgJTHdemDTeIZrN4p0C_!u=9PcF1`AzvZR6KoWjI{zyA2=U3{qQN zv8k-|!HwxZDv2PAq;v>NqdF_F3*X8f&5r37D`c&hIRryPrwcc(==UDuWF@u6ZsNQ5mO~5-?C>$T<|^$ePEp%#!9Y^ONX!hujl1#!gS#ARUf(bjG^;)QCTyNJoNOCUxsO0E-EAs;qE<~MHynadH%v4cf(Ig90h+6g zVZ3zci*}ucuZW%lWO5}_+id6Bz3&FU)pk4r4eJ#>`@T9a92S@^fovmJZ|(sPR8asN zU|aytA3etlr4#;`&3r^Q-_LL4M=lw0WeqZW1zw`^A@5d~hjo?km2=9x_S|>MQ5`pO z?xGwx1`yCN;S5$@BWXifQoWKDt@W4f*WB^a-;0@kv_xr%z+~vMvrP)B)eSlDCH;=~ zpz7i<5|&CS)srGvhmnO}Ry10HxpzGCG9sIMN~XRZ#vr{j?xMC|Q6XJzgd2*E1kFUB zmyv+pVw?^3SlnX8I<1bgi zf2`-)>$W_FKa(-)Q$O$@CF7rY_$Mp%uN9Aq&gY>S+6Q30-wjrhp{ZWG%EB=dj)ZL7hLU-quvlT3`_(y+ClMLG1ZV#N;5h*AkY=S=)Mk@ z{zCL^3_fz*)_D8VB(r-6$+@HFbfsy9-FD&oNS!ujEzS&DE~BWGybNQ}&k{N}?`(hr zqQ^jiYy;gJWXW>#Q>ETk{-8}h=jlz`RaOo9r#35(ugP|IiT2X7-`L|$LG@?MI{O;E zy;i@4c8QWRH=bQ9Y30bqeQ;(igiEPMBNZ>h*G*jtxu)*CYZW+v_O4HwfP#&jjpU}g zmz~OansUf9Q!tyS=m2;Tn+YSy6g)gt5tcBzS2a9*X4_aCUP#Y2OLd9^+eW`FJnSfQ zT?D|>1bxG>>L8MBb%+%_WC< zr<~tUQn-wYcHA5m#ubFs}d|UqDJx&8%#CGe^iF(#R$=2O(y7L*?sVr_U`e z%0Li=Cxo!A>p&~~z_Q99xkD4+SBN+73FRON#9F?xv`v%{{($TqU5u!h1CNwy7l?aA-tRo6OpTpE<>?tXqp%SN~aS%yX)}BRj!YqU(i{S)f+v11JhF4y))d5zO zllcTQV*8;_tLMo{NuL7|lOE@6j@4;~nd*Yr$b7UFz;FelqaRPM_8MkDGL@;*=2U-J za+USr&T60ly_O87L`_bEu3CBj)JaZ(A@jb&Ockt!ZmOX@89A;H;y1hfN{m?&_%y04 zyhLsBaOLWKFXsgeg4z&GNUF=M^%ixs4 zlv#1q)3+Cfxa4!HcC&@E*EiKOQQK8@hoJ@p&GpeW7;B6`_L(C-jdY!{)~Vfog+xd( zHAFI;lIHB`Eu8!I)9&Yo`H}9^pvPV}M^R9-CYdCusrIU!8^#1|sw)lggQ}izDqh1| z3I9;j9Y7msZxJs`8~&8-ezQDWHB}bSH->$iqf_FlTq|=P@N})h8vcFuf%2ZFe{Qsw z|Lu3ljDdgZc|4bMGHQYHBik!j?vw-DoXVbG#^SI%Z1`{Jf~#Rh6YsH$%txz`@-5WX6+yq0wY^p%~@MVs@HWsIK%7~eP`LV>iiaH&l!b8BR>XY@_YLr0NgALSfZ`!Bi;}KcFIe${uwMj6q!N0Fk{(gup^(IGZu6Oms=UsJ8u2JC$U~I z;5b||>m*h^sbI65pm$jUIAhY+jAJ+ShtCV0o2%<46qAOV2G0G#aod@+BFnZ}s zDd3uyIp~@IOgc*3KnQ2F#3H;P@#3hwH0|~<9(4<1R|E1oNn?HoW8?j9b>ye zvsdR*?*)%kfogE|9w7gfS2cw%M(uVF|{28qE&y5gYGhewM@+bl2LWy1WN5cp0m&O9oaR zMTQ|n-jmsqU~oa}p>JuKN|bocIuM4@`K|P}siE5|)pP7KTW07a(&QvE zTASSI`sDW&SuG6)m`M2=>3zoVJm($je!rY!v0~Y@#PqwJzw>(%jG`icZLuKZSUhj7 z@!BjGL?|B1r#DY%9p^7OZNvwXD*UQ6mHI&R@}`0*4wyE9sCI|e63vkBHMmEs@{0Mf zMK!-2|16C;z^A?V8*Fd}DR-BDIAPQbMXSF=3HNiN9jwsw7-F^YER+1P)T9xN4C9F_E-I-YdR9>;^-7_WF2Ky#f&Nq>zC=-) zH3eGfrz?7c1E2?u-^E>B92i|Viqr4qZ`ajbEAY(*p9#DFISTwo$6|kGtdP5*lj)y3 zpT8W7Rjca#(TDMYCWV;lC{o!js)Jb>=7*@)Qx6xRSZAMQ7o_xQ)U3UjMD+@;MD}aHQadML?CMw@! zR;HdGrPNfaJzZyC1b-UGZ#XV@@7)H>xtqopOPx2>`FknP>ZP|vP8 zSP;jqL(a|AK))^+g6(CgqDpm3S78^i?7$yil}yO zIKqYQUXsGhbehB{DP#TU*u+GxZ;+{5aFC$&MEwhZT z3Qq(H`A*dkr~_x9dA+1%=9^a-cZv%`cuK|#u-vlS_P&7G+S%-J3~a#OS2bRhg6mpj z#-&i9pJUMGANn2_;rsFRW5&|DktO9~yIpy!O)z0CSv-0&wCx8!QsmgSAie+yXDcqv5Z+!$?4q0myNoCm~SKAgS!F)7HA~jF`rb8fYQ-0(9+-qxn zc4}1r#M-~?wf`T14FlEZVQKHORdHI zW~=|lHM~)ZFcp2!L&=!uZI1#1g~0c(+dvMmBkZ^<4q?49&ioX@#12^o5yvYsOr=|m zq#z2)d!5aD6DHC|rz9tQKEnqh4OufboWis4ScjTl0twrghv2N66=8Is2`Tb+n{=w`(tnT5S4h(YggEzBSRNY zZ1#7ophNqb2ZKdCGJR$0vXFlscx0_DktV3j#hR6Qxfi5OvsGV*dIv;tX)=6JLwPb? zP(yVR-pQG()@lgf`}SY|6a2^Qc57|ep!@myCq5hH|H!XE*woD4$yD6Z$=OB4)#zU# z`g4dIQeRg_6++@mq=ln}1p`Avj~*q{5C&?;>;j@D)`)IBSwLB8%Q#o=#JR?J10r~X zt)2%d?&{JyEPX;w;nPY2f(}nn>#@0V$-U&-WLaR@_ValHBaC@vUYpfW$o0dzIN669 zk3&j97Ayi*f^!%gG>9XiHyB_xiE_xQ9H1OYi*l45wHWk_364_N-Dw+jOwV8PtXk&_ zg4={GNe(xqb)~Bun%ClEH$HNzsBg)`S&Oh*%}6G^E3!M876Ysbnm+l73U#Xo%Ya=m zOR^kg4A0V{$vkgVm~E~fS6P`DNqu(IvU_>tn(@9f0p%#TEN})MFA7ezlZ5(Zv01FQ>e`(pkr^(y zg79G*Xt*M!fe5&VZT(2q%v`OQs{MQUVXkU@Y?Ds98jPVha343odK%!jng(fQoY#2! z<%V{cWJ}kYT#12Vw9x7tSpA0-X${QJS!SFXxuwm*PyiMlqIXM-FHfYm`>|lTgDq;)jcN<3-N3kd^Cz8tzUW zkH*$qW4)Mbw%6BveDENSLM}MpA=XX2yNOoK<_QB~#*=D5A1DBDSJNRH$-kn;c^SW) z1MaC*5%)Wf550BRDz&dQ7g~?1Dbtx+&8YxvCNvbo9a1c`Ahh){W&w!1?z- zd;dRxH2z;e`k>W%x{-yNF5IOP(i|3s;pcDTL39gB-8s`?9Ni=*)hP5kSs(gOG_B~a z5Sbj}8p}MM;*#R$-`)b=0cx>Q3`haC1!adjQ8jFY(E~|V!FO_%&s*W30FxGB5&@ZF zLcBJ^msQ$oEU!&Y3H>P_0aYw*M=~TPnYX|(qF~c!lN*wAK{+OJ72Ny4;1V3+NMH`; zmU2E+bFdoDCNWtYnaWFN$t_jIIO-5{tq2ATYi?;Tf=u5OHZP51A&3qKVj`M{|1A?D z-VK@4O>vGOL|jXY8o$g-)QhdX#J7nz5ZszoZyluRJJ%^Cu+&w-euVzTPgxiGtM4G5bExma-0D3;Er7Gx(OG@K zm-Uci+?B#Q9x(czajp)g?ahMh@f4#a2-lymp+geK#Ssfi4+X4~YZZ$>&}(N(zbka# zDHq|tfW8z~Op}L@lPU+3dGqqHTy>|{e_ka#!}bzY;NNK8D)wq4pW(CDja_FLN9O-x zQdV*sjH_I#!Q22`N(0)>iVmLj=2MOmEk;~WNcXIDT9^$RBG+l>BMkG`x{$w$V!|%M z>ZFIO*6MefQHr06j900Pkm1^6jt4!;7%E#*rXja|D@kIF)+{QQ#j2qIQpmHiT7dNy zcQM9t+oQBOAw{mRE=HVf9Vz<>$D*BWeNX6MCOUFm6jQPgg#xAxUz}A&Kf(@*=~lUr zk8tJ&t1q*i9>W`bet{Z;28GtyG zOEa)^wcs=6Cyr;jlJTSBdyCa`pt?8$O;{QNQ{WBH* zi@5(^%B}6EJrImvX5qBar|n^iUXDb7eFl%}9GvaujzdB#qwb>~u$lf-4s4bB@! znuVfN)VAy!)d$o*Eu^x|1iHvxYIbJ2`LXGzMc22tmmBn6O#HDE@uI{O9cJOM(Xc%? zB&LmcM$+Ay*+Emu&qrEv0!lcU$XK;MEf^Z$b{uUtB92v1S)!&sk)mGV(5yMPnAP50 zja96+xiiB$aik8IZS2VBxrK`j?cV)Hf-qE!txNuqKorL!lSM=dX1#a;(wbu(0wdKS zOLAqA(%7?qQbJ^ykU#S7c9A$wly)=7*p^&r(K2NV&={!9T+@-Owh-5v;z_YfV!2Of zGrz0n*1&>(#OkecC2IGUV081~ciO7b7VD{sWWg#EiT*6DcY6tej9#R&RB6Le!H_V_ zX{KSUkNYK~jQd#Qu*MUN?$Hn<0xPn`1_-yrb+iLXr9sK$N01p*^K>7AkD)5*KN^Uu z#Oe<)$@$<-zw&HoFVU@!X~0TY0eXgwu2eS#8#*(F6iU}*nfyMqi`^dRYgw!Zz?GgY z|4(UG8xzG5hWE5p0)NP92>8Jnw5jz2!Pu*z3SOmW@p?kQ&nnhXDu^pONn{>%?2if;| z-kI5*ot@eDdAm|Nf`5$8?e-o?n3pxQXLCQpBR4Z{B@@1ryHZ+!L9(K81_f5t6)TN+Hr zFxQ*Sb+e9r{9HPh9Q=D=MUBHeZ1^QN#-HiyuG{JO)>gghrNQ4Yr!>P@W;$Lqx#_bH zhNPPf#Xn`Qe!H>v%Imv@?P>QC0=Jz5B{uJc{_{;+vz(QXnklvI_R`**)?j>dzGv|@ zOKW4z25)Nq;pXS*X^Bl04RdeJ9F6rBCH^(mm_L-cKQ=pk!tfz)QEMnZP-QSB8w+FZ zb)tapOV5%*@++>{u$y2fl6w#x@;~JEF6Z%bd;KbrJ;Q{l6JsSQCPs3>pcr^1xJJh} z7#EW*UJ6>|ul6t3S{CN4u`bH9sm(4zn89>7APM%V@{wfoyXA+Q_hxp>nj9;H-lf{D zEJ6h$hWRJ5$;5l$`%Y(xiW6HvPz__zLM*~HsA&kPj~K%)wINYEq-l z6La~)?+(Fl*;m4>04U0^io6>x{NP$s_Y=5Fo`t)l-2BSsclW`6wE*#W2d4G+Ra#uT z9iTB(`W;oT!i>*eY}|DgXr92HqR_#o-<<@tFJR13$`F3w!FXdc+LkW`@2epL!a^0^ zM3|fr;E^l{@N~Pqw8RBETc80ahTi*Iz-Iub&H!|p3fcpA5&<->ldnMGu}sl*#E#d_ zK9Vs4E^n1?Vd6X0gXO`8UOkgY!**sY(ToJ;bT~C|VVC69TlziT*G& z&HzTC+u^(xK$BKe=L5s2I1>g%eFxLZ0@PLFycif43u{x{NuLUFRZSI1W*f8AAfac< z(q|U3XkQpuNR`4pfI$%H<4Hdu?B`kk19t$_j7(KU5Rk+0SVxV*uY@s1WO&jNTB>T83JcXx zD!W|=Rk+fkRTq{Tp(L+zb&zNakKhtvMF>iEHD8O2T@b^VIFOrS7HrVMBn=XV4*$U{ zT3{9&WlULSY~onP(fF8SjEO_$D5h^KkEuU^4)fqpFUnJ}jpJdi2vS430>3aPjuE1q zKNm&k6n9tn1vQHKeR*`uIsEHt*lGOI5hWOL>L6fyDRBw#DoZGhL;8@a`^!cnLnAr(Bg$cTnN0BL#gIhYf(kHm*V9K3VW_b3zl3C z8jBUU0C-B3G8G@@nDF45skpIuaDCwi fbxM?3|9(gp>9IY}_TePiU;+G8!1(PZm`Kup*3VR? literal 13031 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
~{a%g1jfVUyv^+n-8w>;9 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 Oe)^ywAdp%9`1L=}r=0r$ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 20d3a7e..cd7f8d3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Apr 30 21:41:20 CEST 2011 +#Sat Jul 14 07:10:41 CEST 2012 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.0-milestone-9-bin.zip +distributionUrl=http\://services.gradle.org/distributions/gradle-1.0-bin.zip diff --git a/gradlew b/gradlew index d8809f1..ae91ed9 100755 --- a/gradlew +++ b/gradlew @@ -1,16 +1,16 @@ #!/bin/bash ############################################################################## -## ## -## Gradle wrapper script for UN*X ## -## ## +## +## Gradle start up script for UN*X +## ############################################################################## -# Uncomment those lines to set JVM options. GRADLE_OPTS and JAVA_OPTS can be used together. -# GRADLE_OPTS="$GRADLE_OPTS -Xmx512m" -# JAVA_OPTS="$JAVA_OPTS -Xmx512m" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" -GRADLE_APP_NAME=Gradle +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -42,54 +42,51 @@ case "`uname`" in ;; esac -# Attempt to set JAVA_HOME if it's not already set. -if [ -z "$JAVA_HOME" ] ; then - if $darwin ; then - [ -z "$JAVA_HOME" -a -d "/Library/Java/Home" ] && export JAVA_HOME="/Library/Java/Home" - [ -z "$JAVA_HOME" -a -d "/System/Library/Frameworks/JavaVM.framework/Home" ] && export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home" - else - javaExecutable="`which javac`" - [ -z "$javaExecutable" -o "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ] && die "JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME." - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - [ `expr "$readLink" : '\([^ ]*\)'` = "no" ] && die "JAVA_HOME not set and readlink not available, please set JAVA_HOME." - javaExecutable="`readlink -f \"$javaExecutable\"`" - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - export JAVA_HOME="$javaHome" - fi -fi - # For Cygwin, ensure paths are in UNIX format before anything is touched. if $cygwin ; then - [ -n "$JAVACMD" ] && JAVACMD=`cygpath --unix "$JAVACMD"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` fi -STARTER_MAIN_CLASS=org.gradle.wrapper.GradleWrapperMain -CLASSPATH=`dirname "$0"`/gradle/wrapper/gradle-wrapper.jar -WRAPPER_PROPERTIES=`dirname "$0"`/gradle/wrapper/gradle-wrapper.properties +# 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 +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" +APP_HOME="`pwd -P`" +cd "$SAVED" + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. -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 +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" + JAVACMD="$JAVA_HOME/bin/java" fi -fi -if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + 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" + which java >/dev/null 2>&1 || 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 -if [ -z "$JAVA_HOME" ] ; then - warn "JAVA_HOME environment variable is not set" fi # Increase the maximum file descriptors if we can. @@ -108,15 +105,14 @@ if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then fi fi -# For Darwin, add GRADLE_APP_NAME to the JAVA_OPTS as -Xdock:name +# For Darwin, add options to specify how the application appears in the dock if $darwin; then - JAVA_OPTS="$JAVA_OPTS -Xdock:name=$GRADLE_APP_NAME" -# we may also want to set -Xdock:image + JAVA_OPTS="$JAVA_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi # For Cygwin, switch paths to Windows format before running java if $cygwin ; then - JAVA_HOME=`cygpath --path --mixed "$JAVA_HOME"` + APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` # We build the pattern for arguments to be converted via cygpath @@ -143,7 +139,7 @@ if $cygwin ; then eval `echo args$i`="\"$arg\"" fi i=$((i+1)) - done + done case $i in (0) set -- ;; (1) set -- "$args0" ;; @@ -158,11 +154,11 @@ if $cygwin ; then esac fi -GRADLE_APP_BASE_NAME=`basename "$0"` +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" -exec "$JAVACMD" $JAVA_OPTS $GRADLE_OPTS \ - -classpath "$CLASSPATH" \ - -Dorg.gradle.appname="$GRADLE_APP_BASE_NAME" \ - -Dorg.gradle.wrapper.properties="$WRAPPER_PROPERTIES" \ - $STARTER_MAIN_CLASS \ - "$@" +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat index 479fddd..8a0b282 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,24 +1,37 @@ @if "%DEBUG%" == "" @echo off @rem ########################################################################## -@rem ## -@rem Gradle startup script for Windows ## -@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 -@rem Uncomment those lines to set JVM options. GRADLE_OPTS and JAVA_OPTS can be used together. -@rem set GRADLE_OPTS=%GRADLE_OPTS% -Xmx512m -@rem set JAVA_OPTS=%JAVA_OPTS% -Xmx512m +@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= set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=.\ +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% @rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + set JAVA_EXE=java.exe -if not defined JAVA_HOME goto init +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +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 @@ -29,14 +42,14 @@ 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. -echo. -goto end + +goto fail :init @rem Get command-line arguments, handling Windowz variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%eval[2+2]" == "4" goto 4NT_args +if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -56,27 +69,22 @@ set CMD_LINE_ARGS=%$ :execute @rem Setup the command line -set STARTER_MAIN_CLASS=org.gradle.wrapper.GradleWrapperMain -set CLASSPATH=%DIRNAME%\gradle\wrapper\gradle-wrapper.jar -set WRAPPER_PROPERTIES=%DIRNAME%\gradle\wrapper\gradle-wrapper.properties - -set GRADLE_OPTS=%JAVA_OPTS% %GRADLE_OPTS% -Dorg.gradle.wrapper.properties="%WRAPPER_PROPERTIES%" +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %GRADLE_OPTS% -classpath "%CLASSPATH%" %STARTER_MAIN_CLASS% %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% :end @rem End local scope for the variables with windows NT shell if "%ERRORLEVEL%"=="0" goto mainEnd -if not "%OS%"=="Windows_NT" echo 1 > nul | choice /n /c:1 - +: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 "%ERRORLEVEL%" -exit /b "%ERRORLEVEL%" +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 :mainEnd if "%OS%"=="Windows_NT" endlocal -:omega \ No newline at end of file +:omega diff --git a/pom.xml b/pom.xml index 0051cdd..4d048bd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 org.spockframework spock-example - 0.6 + 0.7-SNAPSHOT jar Spock Framework - Example Project @@ -19,9 +19,9 @@ org.codehaus.gmaven gmaven-plugin - 1.3 + 1.4 - 1.7 + 2.0 @@ -34,8 +34,8 @@ org.codehaus.gmaven.runtime - gmaven-runtime-1.7 - 1.3 + gmaven-runtime-2.0 + 1.4 org.codehaus.groovy @@ -46,33 +46,20 @@ org.codehaus.groovy groovy-all - 1.8.6 + 2.0.0 - - - org.spockframework - spock-maven - 0.6-groovy-1.8 - - - - find-specs - - - - - + maven-surefire-plugin 2.6 false + + **/*Spec.java + @@ -91,14 +78,14 @@ org.spockframework spock-core - 0.6-groovy-1.8 + 0.7-groovy-2.0-SNAPSHOT test cglib cglib-nodep - 2.2 + 2.2.2 test @@ -110,14 +97,14 @@ org.hamcrest hamcrest-core - 1.2 + 1.3 test com.h2database h2 - 1.3.164 + 1.3.168 @@ -125,7 +112,7 @@ spock-snapshots - http://m2repo.spockframework.org/snapshots + http://oss.sonatype.org/content/repositories/snapshots/ true @@ -136,7 +123,7 @@ spock-snapshots - http://m2repo.spockframework.org/snapshots + http://oss.sonatype.org/content/repositories/snapshots/ true diff --git a/src/test/groovy/DataDriven.groovy b/src/test/groovy/DataDrivenSpec.groovy similarity index 88% rename from src/test/groovy/DataDriven.groovy rename to src/test/groovy/DataDrivenSpec.groovy index dcf733a..3f73724 100644 --- a/src/test/groovy/DataDriven.groovy +++ b/src/test/groovy/DataDrivenSpec.groovy @@ -17,7 +17,7 @@ import spock.lang.* @Unroll -class DataDriven extends Specification { +class DataDrivenSpec extends Specification { def "maximum of two numbers"() { expect: Math.max(a, b) == c @@ -48,11 +48,11 @@ class DataDriven extends Specification { new Person(name: "Fred") || "Male" new Person(name: "Wilma") || "Female" } -} -private class Person { - String name - String getSex() { - name == "Fred" ? "Male" : "Female" + static class Person { + String name + String getSex() { + name == "Fred" ? "Male" : "Female" + } } } \ No newline at end of file diff --git a/src/test/groovy/DatabaseDriven.groovy b/src/test/groovy/DatabaseDrivenSpec.groovy similarity index 95% rename from src/test/groovy/DatabaseDriven.groovy rename to src/test/groovy/DatabaseDrivenSpec.groovy index b1ac630..8a99aaf 100644 --- a/src/test/groovy/DatabaseDriven.groovy +++ b/src/test/groovy/DatabaseDrivenSpec.groovy @@ -18,7 +18,7 @@ import groovy.sql.Sql import spock.lang.Shared import spock.lang.Specification -class DatabaseDriven extends Specification { +class DatabaseDrivenSpec extends Specification { @Shared sql = Sql.newInstance("jdbc:h2:mem:", "org.h2.Driver") // insert data (usually the database would already contain the data) diff --git a/src/test/groovy/HamcrestMatchers.groovy b/src/test/groovy/HamcrestMatchersSpec.groovy similarity index 95% rename from src/test/groovy/HamcrestMatchers.groovy rename to src/test/groovy/HamcrestMatchersSpec.groovy index 9d356e4..afdbf07 100644 --- a/src/test/groovy/HamcrestMatchers.groovy +++ b/src/test/groovy/HamcrestMatchersSpec.groovy @@ -25,7 +25,7 @@ import static spock.util.matcher.HamcrestMatchers.closeTo * @author Peter Niederwiser * @since 0.5 */ -class HamcrestMatchers extends Specification { +class HamcrestMatchersSpec extends Specification { def "comparing two decimal numbers"() { def myPi = 3.14 diff --git a/src/test/groovy/HelloSpock.groovy b/src/test/groovy/HelloSpockSpec.groovy similarity index 93% rename from src/test/groovy/HelloSpock.groovy rename to src/test/groovy/HelloSpockSpec.groovy index 759f44c..7cc6c22 100644 --- a/src/test/groovy/HelloSpock.groovy +++ b/src/test/groovy/HelloSpockSpec.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -class HelloSpock extends spock.lang.Specification { +class HelloSpockSpec extends spock.lang.Specification { def "length of Spock's and his friends' names"() { expect: name.size() == length diff --git a/src/test/groovy/IncludeExcludeExtension.groovy b/src/test/groovy/IncludeExcludeExtensionSpec.groovy similarity index 97% rename from src/test/groovy/IncludeExcludeExtension.groovy rename to src/test/groovy/IncludeExcludeExtensionSpec.groovy index 6b2c8f8..11d66d0 100644 --- a/src/test/groovy/IncludeExcludeExtension.groovy +++ b/src/test/groovy/IncludeExcludeExtensionSpec.groovy @@ -37,7 +37,7 @@ import spock.lang.Specification * * @since 0.4 */ -class IncludeExcludeExtension extends Specification { +class IncludeExcludeExtensionSpec extends Specification { static { System.setProperty "spock.configuration", "IncludeFastConfig.groovy" diff --git a/src/test/groovy/OrderedInteractions.groovy b/src/test/groovy/OrderedInteractionsSpec.groovy similarity index 96% rename from src/test/groovy/OrderedInteractions.groovy rename to src/test/groovy/OrderedInteractionsSpec.groovy index adf7a99..430b230 100644 --- a/src/test/groovy/OrderedInteractions.groovy +++ b/src/test/groovy/OrderedInteractionsSpec.groovy @@ -22,7 +22,7 @@ import spock.lang.* * * @since 0.4 */ -class OrderedInteractions extends Specification { +class OrderedInteractionsSpec extends Specification { def "collaborators must be invoked in order"() { def coll1 = Mock(Collaborator) def coll2 = Mock(Collaborator) diff --git a/src/test/groovy/PublisherSubscriber.groovy b/src/test/groovy/PublisherSubscriberSpec.groovy similarity index 100% rename from src/test/groovy/PublisherSubscriber.groovy rename to src/test/groovy/PublisherSubscriberSpec.groovy diff --git a/src/test/groovy/SpecInheritance.groovy b/src/test/groovy/SpecInheritanceSpec.groovy similarity index 100% rename from src/test/groovy/SpecInheritance.groovy rename to src/test/groovy/SpecInheritanceSpec.groovy diff --git a/src/test/groovy/Stacks.groovy b/src/test/groovy/StackSpec.groovy similarity index 92% rename from src/test/groovy/Stacks.groovy rename to src/test/groovy/StackSpec.groovy index c2bc0a0..bf17b19 100644 --- a/src/test/groovy/Stacks.groovy +++ b/src/test/groovy/StackSpec.groovy @@ -16,7 +16,7 @@ import spock.lang.Specification -class EmptyStack extends Specification { +class EmptyStackSpec extends Specification { def stack = new Stack() def "size"() { @@ -43,7 +43,7 @@ class EmptyStack extends Specification { } } -class StackWithOneElement extends Specification { +class StackWithOneElementSpec extends Specification { def stack = new Stack() def setup() { @@ -82,7 +82,7 @@ class StackWithOneElement extends Specification { } } -class StackWithThreeElements extends Specification { +class StackWithThreeElementsSpec extends Specification { def stack = new Stack() def setup() { diff --git a/src/test/groovy/StepwiseExtension.groovy b/src/test/groovy/StepwiseExtensionSpec.groovy similarity index 96% rename from src/test/groovy/StepwiseExtension.groovy rename to src/test/groovy/StepwiseExtensionSpec.groovy index 63ebac8..79849d8 100644 --- a/src/test/groovy/StepwiseExtension.groovy +++ b/src/test/groovy/StepwiseExtensionSpec.groovy @@ -27,7 +27,7 @@ import spock.lang.* * @since 0.4 */ @Stepwise -class StepwiseExtension extends Specification { +class StepwiseExtensionSpec extends Specification { def "step 1"() { expect: true // try to change this to 'false' } diff --git a/src/test/groovy/UsingJUnitRules.groovy b/src/test/groovy/UsingJUnitRulesSpec.groovy similarity index 94% rename from src/test/groovy/UsingJUnitRules.groovy rename to src/test/groovy/UsingJUnitRulesSpec.groovy index e33128e..0d7a5f3 100644 --- a/src/test/groovy/UsingJUnitRules.groovy +++ b/src/test/groovy/UsingJUnitRulesSpec.groovy @@ -16,7 +16,7 @@ import org.junit.Rule import org.junit.rules.TestName import spock.lang.Specification -class UsingJUnitRules extends Specification { +class UsingJUnitRulesSpec extends Specification { @Rule TestName name def "retrieve test name at runtime"() {