From 8c97911720b40557d78672245bc2e7f724917297 Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Mon, 8 Jan 2001 04:36:48 +0000 Subject: [PATCH] Updated to the version on harddisk + added the start of documentation. Major changes include * making convertion API context-sensitive * the simplification of all the interfaces. The simplification is achived by applying IOC. Now AntEngine is responsible for creating and instantiating shared components via a ComponentManager. * Moved most of startup code to AntEngine so that alternate front ends can be added in simply. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268409 13f79535-47bb-0310-9956-ffa450edef68 --- proposal/myrmidon/build.bat | 9 +- proposal/myrmidon/build.xml | 4 +- proposal/myrmidon/lib/ant.jar | Bin 362390 -> 0 bytes proposal/myrmidon/lib/avalonapi.jar | Bin 195012 -> 189495 bytes .../src/java/org/apache/ant/AntEngine.java | 48 ++ .../java/org/apache/ant/DefaultAntEngine.java | 410 ++++++++++++ .../src/java/org/apache/ant/FrontEnd.java | 18 + .../src/java/org/apache/ant/Main.java | 618 +++--------------- .../configuration/ConfigurationBuilder.java | 6 - .../ant/configuration/DefaultConfigurer.java | 29 +- .../apache/ant/convert/AbstractConverter.java | 10 +- .../org/apache/ant/convert/Converter.java | 5 +- .../apache/ant/convert/ConverterEngine.java | 20 +- .../ant/convert/DefaultConverterEngine.java | 84 ++- .../ant/convert/DefaultConverterRegistry.java | 21 +- .../convert/core/StringToByteConverter.java | 3 +- .../convert/core/StringToClassConverter.java | 3 +- .../convert/core/StringToDoubleConverter.java | 3 +- .../convert/core/StringToFileConverter.java | 35 + .../convert/core/StringToFloatConverter.java | 3 +- .../core/StringToIntegerConverter.java | 3 +- .../convert/core/StringToLongConverter.java | 3 +- .../convert/core/StringToShortConverter.java | 3 +- .../convert/core/StringToURLConverter.java | 3 +- .../apache/ant/datatypes/DataTypeEngine.java | 22 +- .../ant/datatypes/DefaultDataTypeEngine.java | 81 ++- .../org/apache/ant/datatypes/Pattern.java | 35 + .../apache/ant/launcher/AntClassLoader.java | 56 ++ .../org/apache/ant/launcher/AntLoader.java | 80 ++- .../apache/ant/project/DefaultProject.java | 58 +- .../ant/project/DefaultProjectBuilder.java | 195 +++--- .../ant/project/DefaultProjectEngine.java | 171 +++-- .../ant/project/DefaultProjectListener.java | 56 +- .../org/apache/ant/project/DefaultTarget.java | 43 +- .../project/LogTargetToListenerAdapter.java | 11 +- .../java/org/apache/ant/project/Project.java | 37 ++ .../apache/ant/project/ProjectBuilder.java | 20 +- .../org/apache/ant/project/ProjectEngine.java | 39 +- .../apache/ant/project/ProjectListener.java | 45 ++ .../ant/project/ProjectListenerSupport.java | 50 ++ .../java/org/apache/ant/project/Target.java | 24 +- .../apache/ant/tasklet/AbstractTasklet.java | 24 +- .../ant/tasklet/DefaultTaskletContext.java | 14 +- .../java/org/apache/ant/tasklet/Tasklet.java | 2 +- .../apache/ant/tasklet/TaskletContext.java | 4 +- .../tasklet/engine/DefaultTaskletEngine.java | 190 ++---- .../tasklet/engine/DefaultTskDeployer.java | 42 +- .../engine/TaskletConverterEngine.java | 29 - .../tasklet/engine/TaskletDataTypeEngine.java | 29 - .../ant/tasklet/engine/TaskletEngine.java | 6 +- .../core/AbstractResourceRegisterer.java | 7 +- .../org/apache/ant/tasks/core/AntCall.java | 5 +- .../org/apache/ant/tasks/core/Property.java | 23 +- .../ant/tasks/core/RegisterConverter.java | 9 +- .../ant/tasks/core/RegisterTasklib.java | 7 +- .../ant/{datatypes => util}/Condition.java | 2 +- proposal/myrmidon/src/script/ant | 4 +- proposal/myrmidon/src/script/ant.bat | 29 +- proposal/myrmidon/src/xdocs/design.html | 224 +++++++ proposal/myrmidon/{ => tools}/bin/ant | 2 +- proposal/myrmidon/{ => tools}/bin/ant.bat | 2 +- proposal/myrmidon/{ => tools}/bin/antRun | 0 proposal/myrmidon/{ => tools}/bin/antRun.bat | 2 +- proposal/myrmidon/{ => tools}/bin/fixPath.awk | 0 proposal/myrmidon/{ => tools}/bin/lcp.bat | 1 + proposal/myrmidon/tools/lib/ant.jar | Bin 0 -> 283428 bytes 66 files changed, 1899 insertions(+), 1122 deletions(-) delete mode 100644 proposal/myrmidon/lib/ant.jar create mode 100644 proposal/myrmidon/src/java/org/apache/ant/AntEngine.java create mode 100644 proposal/myrmidon/src/java/org/apache/ant/DefaultAntEngine.java create mode 100644 proposal/myrmidon/src/java/org/apache/ant/FrontEnd.java create mode 100644 proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToFileConverter.java create mode 100644 proposal/myrmidon/src/java/org/apache/ant/launcher/AntClassLoader.java delete mode 100644 proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletConverterEngine.java delete mode 100644 proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletDataTypeEngine.java rename proposal/myrmidon/src/java/org/apache/ant/{datatypes => util}/Condition.java (98%) create mode 100644 proposal/myrmidon/src/xdocs/design.html rename proposal/myrmidon/{ => tools}/bin/ant (96%) rename proposal/myrmidon/{ => tools}/bin/ant.bat (98%) rename proposal/myrmidon/{ => tools}/bin/antRun (100%) rename proposal/myrmidon/{ => tools}/bin/antRun.bat (92%) rename proposal/myrmidon/{ => tools}/bin/fixPath.awk (100%) rename proposal/myrmidon/{ => tools}/bin/lcp.bat (97%) create mode 100644 proposal/myrmidon/tools/lib/ant.jar diff --git a/proposal/myrmidon/build.bat b/proposal/myrmidon/build.bat index ce02ad3f1..d6eddb22d 100755 --- a/proposal/myrmidon/build.bat +++ b/proposal/myrmidon/build.bat @@ -4,11 +4,14 @@ echo. echo Ant Build System echo ---------------- -set ANT_HOME=. +set ANT_HOME=tools -set CLASSPATH= +set LOCALCLASSPATH= +for %%i in (lib\*.jar) do call tools\bin\lcp.bat %%i +set CLASSPATH=%LOCALCLASSPATH% +set LOCALCLASSPATH= -%ANT_HOME%\bin\ant.bat -emacs %1 %2 %3 %4 %5 %6 %7 %8 +%ANT_HOME%\bin\ant.bat -logger org.apache.tools.ant.NoBannerLogger -emacs %1 %2 %3 %4 %5 %6 %7 %8 goto cleanup :cleanup diff --git a/proposal/myrmidon/build.xml b/proposal/myrmidon/build.xml index 3cb093e72..faeedfce9 100644 --- a/proposal/myrmidon/build.xml +++ b/proposal/myrmidon/build.xml @@ -154,7 +154,9 @@ Legal: destdir="${build.classes}" debug="${debug}" optimize="${optimize}" - deprecation="${deprecation}" /> + deprecation="${deprecation}"> + + G(kF=C5!g2*G!RW zk0m+7h%ReKpoC&hMDR~<}F89189HUVsP|c^YXO@O-GOAx zrV5DV*>D859}uD1EUWhTZ_RJyQ?WKdU(mO zPp9eW+YW1+|C)cj&oH0VUwU#E)3YF?qwZn&`MD-_VR z$I);O=@m5&E?4%eElcb@tl8{Ec?PpNb?@>#$Y1;@tFp8MbkIG-u<`tzV${7sq+)h* zt_6ITVtU?e-n_y65QPssuQ1(o{kKPTowp6fm60#(=MHu6^rs3`n-KY~-B8mxp?Avs zB4l`7zBIi}N&O#U_C0ETo@-P0N}?_vRGVmhvTA-j$MqdL@w!%2oA?18x*(U%sk%bL z8h=3lt`&>qR)W)CQ%O4bf2tM#nWG?UWo+^96;QB>uH%9j8lP2$1_lh0@VrtkaG~MUE>FnuLEZ3uO{N)RtWQcKnaERUQ zPnTRz2N#t)f1a*z(Eup07%^I$CVdU|ef>2UM-yrEM#WL*CYzK8#qhX0>$SBzVh}rZ zuDJnOoaO~l!q(kpEILG)6T1U=pS`Ul2*dVKvRPBm-%zof8N&(jbp`?7QW^JmnLQhx z$NJERbq}xE#lXv}327{x(AsB=_e0_V5RXe@xIJS#MVOok3D|jDsDa+i@(y0vnZmGX2V6VguPqe zM=f)d3ELEdOR*>_L*LI_8s$a;_KWf}mrWMZ7BZZ1OJ)Nn%nHDfa8SOoE z0JTUk%2|j#yfqYa>nwe&?b5OkPP2sp;%+7AxMZ zp;T*K$Tz#f*6@kEdu>pk0P#IIw2gz+J@*;KjM)o-+fBWCe>mxW$@-Y52+43y`3I19 zcS7Nr^%-ibj|2~AM1WZQsol3ocVHBU_ib_N} zSGmKPRtjB6Vo)p=>VdS>wJA9%>@{4Le-Gp%G^=a4P)@j)RP&`2cRp_z;TU?ll^%Y1 z@%{VdVNM&Sl6;}+%&*t?Kch6t|BTY?TulCj&Vtq7Tv1n$KdZ?!t=yUPYn3sDMP$mX zjTbwWGvcsl4NH8GjLhMPqOGf{hU(Rl)rQH75QTt2NvswND4Qt>-I>MY@bK}lq_c&w zjTW!d@_c+Bs2;D{zS6H#)uh(6VKZ|VT`Z2r(_So&-d7!jI<4S{S~uMxL6FJ=An*q` z2{_&Pdto8RtX{$ccR1ZedmA`%&rDY%3?H0VBM|)buQwrtcCUc3Sl9RGE<)ey16}^l zlMzo4)?5}p9FgD)DE*>1kJL?y1$v?_kWIfg(L)vxFFZa~on@Lr2EU~f#9TQEco&!} z5F#)k7ies>OwPdk4Rv?vL1mN=(fF|lFm=v^>6*saxih%t)J>b+ z7dQ6oxk;{JkH~QoCfx}7ZO)E5Ry6F^)n^m>ki<^$$*|8%@jmqjI{#=7- zS@i(BCZ^NMnCfvOE;4P%N#;~+`$q?@7o?ha9v?ZKYJ_x4-G8<{SP5-O|F)foj={l} zQV-Edw-9w<3~{Mz2@*e-RliBOB&Fd9Nr6;jU$!re^0)HTRF}(oTT0z?jm&L}(x)=J z(wqC;-F>M~Y=j>LFFmPdN{b>rB8DP1*j#DMjv~DlPhd4D8@jrVM_tp%VnhdC5SA}= zh{0mAuB}P5QPrAPTfQKH!>&uIy2g5L`Vxb+bf6?cqNc?e;oR6cB7^PS7H&YoLWw}V zsAJPzJ$P~%D;JG*DzvwlQjvsPt!d^AOR8IE-T!sLnGSgN#IwUEN0z({H<6j6c5^up z_baKrd>y5-rmWE)sXqW1vErUKkw>4G%9cb|f=$p1SE`1;ngVhp;{chZuUtqMYx5nI zI;Mk2-oe9L-gDnv#aa->cmn7A{XhNnt?U^MICbT>*gBL^3KO%UkQ<^!+qAz&OWR^f zpQlQ|ilJxNs;-4pM-?rIQBN00TJ}B6au^;ev8%`Hp5hpWUFI%KGS;`oH)X|B(6b7( zXH9q-Sp=g4q$lr7V6kWBkyfm9ei#&5%h6;7$~+gqEbSXw)E#Adhd@|YRqQ1JVq`7+VNkGO1rr$qozhiI`zEB z6OUThBw7xV=`ii-IFd*EVk*-nKvuePwT!iC;(is)Rpg*X8GaN&U|fWEQPf)N~grYPRhsNhn_R zM?}^4>(I*M^Ua%$md&a%I_T22tK+~&*5$h&^MAeE361>@yr0Ol5rhyI$TcB|rrTaY z=9@Rz(}amV^IO*X*#=IdNVY3e#Jp))b#wzY!e9ih{VPupw` zU(ZuIWq0BrCUI8VxE6qcOP}v^Lac_c1bGA~V6>YqC|j0J7-@C~ zXCQniZQ7G&@ZsFqFI82tNvseJPH|k#7U#jvN$YD*p!1GT&}c)^z!e6Yp50T&8n4ip zu9&ynP6}{?C(=t{zw>0dk_JoqJ>V|04~lR=tk;_f*007f3kt>jN#4db4l~tEsf1zIcDj@f+>?+ z81dRV3S9Hta}FCfsY4jya6tQ8k_?s{ZQ&y@6q+H!`G^$*R(PiDWLqg;->P!1ic0!yH}@f^KhdzOCzf~VNwuA9@3 zdIpuPGIE{79b2_(CG>?Tg1M-rM00tD$pQ5RHr<0>GUVulN4JTavjElZ3)Pp z-nGMXKRJdh3F^APrSFv6>AD9%_z0K9Zkud2-7`gB)xXo6n5%Z7l^#i zj3}3!Y#_4A4`8kM5Nl1lYitkh&Jb>|3})52I|~-~@QV<3luoWqbPinH@C5-pUVJ;A zwxKj$3u|v{|MH$NdRJ~<{Svu`NBk$W@SkzI!rwEU{~qT2i%SeCL|$k_sc22tEG7sI z5>?f_zF!nj3IzpfDCmiuAj}+RY{(39F|}T?zARnwP;K+`^+JoSQgyl9`%KtZMZG5x zdtk`#-r$j|VP<=0`)%XR_;#kp_dVR9aku;1H$JQ{S=MhQylyLjPrPnBfsq7W=Y6gO zn`$?85%MZt<@=ctGpb&B`_kw?%bvA{IH;#R6{Bl0*_57Zry{94sfVoeDu-Pd-dBkb z^-}lYsa&KEbdxm#ISw!BEauOGL$+?6V|iD#C1<@Io|<{L7!cPxH6mT85G0Zi;0bf3 zBS5Gii#X|r;?O8q(>SSzn5bUaGKUS|v1QCh_rpRY@#YzWZQ;#k3-*KySu;g-1|Xo| z)fp@I%0)gwym4&Dw)mW=uOae_M~iVP{nFU$Qvz=FNtUbvqPGrS3kl>-$~0PCopeMh zmxsi1k&(ifHIg5psg-dO5%lnP0) zNZ`?bg#`fh55|;6oBF0pNSY6ahebk4=(ADsxy>`MOrLY(k*btd@VvPHn8abE@yw+% z)livCm-0xRNV6>1h&fF#Dnqnn-EBc0U^_|?n&8u1!+}fV!k?{$FHeK=7)hsTu!cv} zS+^Q#i8!R_w+qP=q(mD=)7)|8X~(-QHb%Nai2tf**T_%2&8;l@8KFo8M}?wPSTss) zf5om8(v-^h+f;?}+C@fOL;|qnOhjz&{6x_T3T^#P1~ttn}JIj z?i5>?n|m8KTd*b|BspGSVrr)LB9V8_woHw-o1FCl!>f5b;F($fh#8q^f)u-x!Im!z zqpTFvStVBH*Zi+i;si!zUiw(lvM141S!v!j+xrA@L!c76%eDyBru%FAFwAIoTJ4cZ zp1!J14qC8?HCPL>bULx^asimBSh6Y8#3Ew zY!xlOEQ?A9TgjS3G6ani<`J<*0{5^xpP@1cFgEj(d|D|ts1Q+hkpde@#G*}k4iJXh zsNX4F=K^~pa4q}Hc<*^|YzsUvR0n(*eg?3(oieS+x?8_T_UOy{$P>t_uzte-R3>nC z$PmAyeIIDh;KM7opVIGQ4ovj~x_6SrDmW56Q1}QxC_=9r8ZH0u8GQzG`$kbWKGvS& z4w{-ihJIF^kVZ54fCJhZL)Y5pE6-6E+19d0f8I8*ep%PdQ@Qsep5Xc=-3>A98CLGA zz_zNCavQ53so?h_zsfUuV6uM~uVB`y2?%CN;E{sGoGE|SAqUEOBHE0%s;z7bCCiFs z_3*}~aE*IAK}PEaxn<)g`me0Z$?3OAH?-iHytnc?i9(+MgyfOdH9%iUzP;kS;+=FM zH1aIoLq$8fZ3i@eLqEw5J)}2mW13P-(pZVqSh1k1;$B^tYEfj+=7Qa+?QwuSFWuNx zzlHi$=e#$%_@YZYw6;*m^=p4}x~LwSU|g{IofDTO$fH`&p#f}QH53_7U-?++g0gs3 zQRb%PFkMBO@dZ1bSDbu?zVFu)LLx^>C_N2`xBo0Aw6_oRi8R8!?EN|>qNImJMap`| zbd{$qaxesNtFVndR(6As8V=a{D*k*BTU9OQpI<67^R@QnC(3kkNF zh28ztK4$)-A<=)Plqopa*_${xx&Ny!WNEm2{Y@#eHFZxM3#4WA2MO|nk|bxsU|scV z)Yl9k`Yw$Yxg>d;04HPGKM5{4WJ#k{4~b=a7a#CtJ6urdE`A46&n8uuDf*xpL=z6pCrKz% zM;&3kF8t-R$Os2F@kzS&f-3P*;S^ zuD??XbPyKI5q%SV$BKk^coxI1!;UQ_d^t(7sQfE93|23dH3OWCsG#sd0@|yEHRBH2 zIb_!+exZ51ndLC5!FbPltyvah`i8`>W<18x#3MWNhRvdzzVS}<^*5-mKa_hOrCZ*$ zw=gi$>0(%QUWa6AYJQV?3eou;bmjb+>~i*o)Wi85hU3%?W@qWfYV8JhGxtE#OMc|a z_#Ur%`G)uZ5Oz*Mo&e33pSG=OPusR_+jdXewr$%s{%zZ~ZCg9{?tR?7-&?&_L`6mB z$=^9?vv3DI&#Bw*%=sNQ;oKP|<=jbG$hRknTYIpR$opPwK z9V=9)9V>RjnML50R0)jbA14*yz#hMZw3=U;jw++Ff6`tdh(DtszksHFg!Tk2a)btl z-JdzY67M#(FTR*oNpI?h3OBO;HzqbDQ9^M9KEK9%TfeC&Bwno)IbNM>tPjY+l@hsH z1NGvX8F^2c81G;mK=4;;U@S%%u*TgMMRh0aDFdL|oHtl3+P^bzAjOeds*)bOdKeco zl(4>HOkk;uVkI&d)C7%&W=+4MfWE$ek2pXBzRYU6ODn zb%gswkV&)6Q2h9k;6RRRyJrxSHKwE~=!g=cF(e$XSKSAaZHps0iSn=8hPBz}q@C2}Mo4t@gxT6Vt zj>KmqvL4Co9JZTbPt^2+EL6^{uHbwdXVBdtZh&O5L7QY?yD|~hI>W|zabeBq260d79D2=(^?j&wddpvz;&aJhPRa36 zu4I}~4FWu0l`;`-@iBVXC?XSzcMUD#Rml?(;kyW}Ewm9>*`m}U(z4)iee{o!DTFHOP+5`q{_gGS|c#3|f;e{ukzbI<<~tX)|-f6(~xLhtXYf&VG>A% zr#v_d#N#w1?vS>%aReEgkS1ka+OjcBYW{U~aRxIT}zmu@`rkaM6qA@0I+Ljp4RNMkfe?r!gndoBN zp@f^D)~)RIXZh(mjieGSyLfHED*Ex7;Dlm*xlsdtP`Nuy63A^YWd%&k#vM(ZZU)Pd zx3AJ=#kg6CQaBBJ_ai+^pu zX!jZVL21$HGAj#6Y+C63lZnvw#7ceYmwj@+cNs!4gR46oWyLiZ-zI+0_U{T=BbRKh z)0)jd5sS%o2&oJ1@^+w z%qpJXm&T293zT6#6vl0w`Am|^qs~BGRKCa&k&AO?Y|?rDk%Jgj-j1s@XCn&pDkXPq z%rO>_Plc0%`Ic1S3z7RFyipn$gjbOt@-4ot6e>)xoP+bNDc7Ja53WE&7lP8gLuI`r z?C7bC)3pCqImeJ{_wj7BT~IddSrXg(q-;}Y-KhL7WZoP>Sr2<-E|lN1VPbSAyJhBm zr5U-mxC)4+vS0C1tM0&{0>*>pp4nPqtQaZ6L!w+qzb(3Z z)3g;g2ja99$yP;MoKM5L9bcB0(Dn1zZmn5%yz~B&HtOY@Y+(=wdR} zPHf=0tXw8`cvVBn*O>E?@~^zfbz2coQnWa38XUey`xlEgj-X|JfBxb zEJC*OWmua++dPNeu_|S;;SF3;)t8k+Mx$xDImj^&leIPbX(;hK<36=08<88v^ea=mCa zJaGsw9`Y*a_P{FpNV)xRpc{B;7>@?J^E@)+=X{_Rzt)r9cgv6M945Eq>_7^u+){sC zexxrRB)U0ay2j3)e(V>O;gt*KMeL|aHjVS0{ga^$_Vkqn(ay-B}Zx3I3S`Rci~^@Xn88o?T@ltP{gEasR!5-edmmXaEl_9jJ->zIX$MX<}j*i=39 zlJ7@tb{FKcV;XjEm;kS2vjN-`i7J8un#m!~_=0LD^r;w+;*wb)cy%dZQnkzaZ6B zTC|y%QYW-O94JyIju>7gmFbvEBab_)B1_mErFd){c%J$Gt1a0~YOLq^*OG){{cl>; zf3_IPJ6qfRzko4iEyoRI#BbwB$O%##=|q6Gq%Epi43Q?eJTmh9vh@OIDyc=$Qp2RL3UYpNCI6V}$__uobjT zc{?Qmojz+YS5)eX(Yz|bJ_nX6 zJHo_R=-1z9q$;E=qzhn^xArMxYO~O31Etb6==8BO(61R|H1HiGA)Z$1A-cU-l*kRq zQklr($-^~wqq8((dQBbvJ=Y!mr;~LSJ^%`Z8c-j~KZ>nzo?<)Z@f93I2Jg*? zbF5#G8*@mB$;t|U{jIS#tdTSi$AwIZ8dI#_9G$xNn1h212O5SPX4lZK!9OH_;F{TvXN(h&$^&6et7Z)xe}`dA}x-+B#@*sVR_w&SnaYT!-JKacuF zHL)^wg8bTlU?`PAyl;y;8H;^}o||xL7o`$2tbRs4kh9bsT#^(rQrP{6c#>86QW-(pdvw_P6NI{m`iAb-yemLLz&TP}U(J6X#LI+)sU*{9>xT^E{uQrgw z)V~f0D9wC{+=T?!wZ8{!nV)wCv^7yP4=Kso#_eku+7n1T*gvUN?I`|hHKU$NrR9wL zWxgFC_vVzeTSlio<52zp2U#`o#epTNgl#bt6Y8Iih^Pom5In>%_(deixi+8`D&-+g zV*Mp1@pmk@4l(C#iAShBRKn0`@I7yiTZfSX%z{>N$xkL%$R(4z{jgpvSIWop@JxX(TlsyA_$$?*e&zeWvyLj+ z!Q!U=O~T9m*Tgr<|2PR(G_f(T{-0TRw2HM7w#vV_Eb+!n6BuL)Xp#0}x)6EsYL&`A z(8NpYNs5q=Pt|N|*y`<gn_K)KaMkH+j?+9Z zZ8JP4ZLT)o|5m!_o%VxTa?)PBs*k|o>YW0r3kwV+1{y+C;Pfoj7wT;Cu+3mk>tKtF z997}Ok~z%y2i};awdLoAnEiKDsTwG;l-jZ~aM|>C6Cy~Jnah`tWu*5a7*~?sMunkn zC?5R7wcJ()flXyL6%;VRP^h3?F+@=G_A0__?H2~w+;%|K*s<|55ZyuvEF^XePiJD1 zTVCO3IyN^(=_Y#bSWAAlHyBmMcTLQuMkB@K_FMxDC68!LHdME2timg@JmSr36e`30 zPDLB(Y#3eAo*+*QLPC{r>_Aossz{quxmDmfuK^=b z5V&N^EAFXA|8fHPSVxLafQ_1_8oF@aix;KP0th0j&7u@S8dc03h|$2ix6N0iBLmvF`pOShDTOAkjHP7bCG=VeBHd!1uda(&@_+wQP~CajQgn0 z_>F-v?R%&YpUAr0gewB{yf9*$Sx1dQ?&!(i(UdibX6nQx!h?_0hTwQ7jNzo)qhB%K zzOyf=XHSz*Sg@CS%{^lXH)KlIWBH+g0(55kbAkr@$9JMA@?E9Vi}V_v$HB91QqkvG zY=xopKCw~UUx^I=Qk*cCg^zCwPP(S@QZK!W>Y@{G?XVE&BYvgM{b_a)FTbe|(eV=N z4#EF(N8~ds_Zs|JyK1?xZ!Z-ocPgbwDznoHSe|eFoee6kRdG0VM=HxF@bkbJW$ut& zwoEwg|9i7Qc@FqEEJA_cBdIY+q0GtV6QR@jbkLAf)>rCf{d69}$)X*EVXG@umE9}p z9$p3DCLPROAieuwK4nHs^Y#7TH2Udi9?SB--y-MVH0=M+&HU$euZkviRt84@^Ic@C z|JBD)`KNh4GjwE1NFuiw`}YC|m$)+{OU8iaY3-M~y(E2Hq=1&DZ$DuTn>jfTj$(1KoZ51&mhYV`j>>Riah?J(~WH7C-6u=cUc+ zU~+%I62l9HxEjakegDM@dYk`i8fJF@$O>Lx>X#nmZuhSiu-m|2KG?lC%wAIeKpNfI zTWh$Txmz7LI?LCbkW}W*sy#C-pPD^1xLV8C;1InK#Nh-)cqE0;9K>@G9KT|M#r;Rb zl3iF#+C*p6Xm#2Gwjk0@z95h}vUTY6FF&`(NQj|)cBMhdJ02?WtH6d=E6f}sDb=wQ zQAi}%FdDpmWn$3rB7N%)E*`7!Ttw1Z^Z!vQtW{s zF4rvwuHG=2GdICNcEjP{S3ped0U@s30Wj{&t|abE#50@~>Kz5{&d9%fhS~!$fYeB= zNvvM@O>OYHtzBWvid}h359BAGU3HA_z9H@pdXf%6OHGB4`!%Sh6Cer%Oa}`V$CR#IGa$Z!+Y+ypNDtwNJ27cB9+tV_G5L?WA;k$_KN)30 z>z`s$RRzvn$B9(ge0nuq$(VGa7B87x``ER!oM$|68D6jBwkcXD5t(Tp%kf6DDsoyR z-q@xdY&3YOFp(y4O*7UpAh{}dN;_tZDh8<>vvL{Q?N3I};TY2;M9Ku!ZcqcZ*{BV6 zd(0)Ss6o4?3=m&D6*rDN)%Jh?Q`jk-}`t zl2}L@8f#ih#K)ws)(uz4w=ej!wZMWhrBd;*tkj1wWPTCdpwuQoZtwaAnhx$D?td)bF5lVzbQwgM=U z?SkJ&e$iPQ8NVb_IfO1}{4h)d|76NGQ-rfCoyF9np?*gEsBJ!%Ua3T8XrO^uH-Oyd zVY4&7pdkHX%1zhwt9S?TCQpcyICjX?V-)YWCa~OV+THZNzt&*1i44E8AE;?~{!W?K zfRxywuk_4G=ud@6BcsMb0~^4F%{2LtJY6>JB9&27j&Y!?RJG;_8pWpg;dT5XE1VoZ zCF_Mg1qYk*5rin+OS-uF4K&7RY6TjW}&Vo2zfrwC`R@PGGk1MPll=02qA;h_RSx!lzaVG3c2DPU{HIkon4Ii z7Rb;A)^W_Op@B>Q#J%do%GJJZWP~S63wPM6Qkr6mgtYVq>2ul93G%Jdtr7&BTQO{_ zJ@89C)F!;U>+ynEoJfbjXUttQquEZ-gIby&rM>Ee`P1ApNviS|JJ!d=Uv~C#zca2u z_K<52mJnB4TG?}x#D`pmf-`CkOBBZg$d{E+X!a6FhL9EygkU?TP$PBrkVG(JvI?z3 zjb3e_jqn5GRSo`?{bdH6oqhu)TYoE+nDcZ)#B#ptY)lekQaSbZ6TVU#F~ zWtlWuD8~j={S3MprR zW#*Ob||a))|i_S7ZuH7Gq!^#DGI)X!`Mc-K0B)I#y>+)crg{fw_6i z9CZ(GI+swx+;zZu+n%q{wi3@7d}E|KLWVu#o=|mY$b6_cY|kMphRSUj`^}Z4T5Zom zJCFu|-n!4ZIX##C*bc##=ZF1P-5I{qr*%u%av%Ak`sq*B1>;&~8C6jZkow2jt1w+F zTmj^q4KvUCK`dGEl*x=bH2HZ#0?zwH89mZ?Uc$}?01*d*<&4hsbacxi_2a^cRMG^Z zi@pk#gdHcNhE$c89=hZRj=pqlRwHT}?z}PA16po=xV~K1N6q$3g`J66{51T-Cwm0b zpko`u2<5?}yfvuJmcwB zF-DaO9Wj+n*Zo^PVq4rY^ngE=S|?X)em(I|7v}xgm!oWNOwZ`;>I`J{wCD~t;rIEm zSr96-;dc2G-h}lcd^I9G6%c-KfHH}((*OZ5@z^CWPmBT9>(+Godi4}juV z!P!ChPK@*a7Q0H>dk|RvMY>d={%_^ze~v5vpK_E~*2K}t#Q2}=_0M?sKb%(Ll+6M^ z;>b^ClZzoNTt0lU7rJ5wd$A}Q8)7Ir0fB~p!h8h;Jho>d;5SzT8(JrtcvCX}K9C#v zpqtUWB%C5((#^%x=b`>Wuczln7%8?c{~$kx1s4ui1_U-07InCv+6X?C$)1D>Ls}hR zxeru9dalko*Kdt-QASVAnsH6Qw=X+d*u4-hf%ufmh>AVM6Y?}HvNLpBtx!vbEZI;J zj52Hku%CB*jq?QA8)b)A3Kg4==l8N1s+(AWpnN zAg2`1NDUAmUN4N*iNCzJ5eHhb_@evjn5e+^sH3f>tVu?*3%`p0UxKPx#+1VMKSSs3zqaT9 z-}3xttAL`lh0*_gQ_&hQUP(*Id}I%=-RWL&^oaWWe>w*aNy_pB6d-GV0a^a}Jvd@~ z41<|98I*48_gbNe8gE&zwGm?DU8^kVie?f}P|#A)(tNXi-qO*}3~ZA%89{GZVHZiqM&?#X+tk?U zBCRiT7Z~SEW>4XVli+rp46aXQDLusau7-Wtwfo3|$J|fm?C!%-3#U|h*RjD=lOeTF z=JamL0bPw2IjirCT+7p3ll_Z=8yh~AIUb)3iI)i5m+*iOlV>1}yS%C|4E&`zAs^GzmE$5WEPnF2Og-b^2ZTkXB< z5uiY9;UzDR>D`C34{$yH9VRy*T((z1kG|bVW5ayr$kQD-n<6tfUBMn^w>EO~f?O=G z@Z0rOqg&DU=)Tl>1lX84GH_di+CF>sDV@iHJ}8f=-Rei9K&3~vK-bw0a6Pfw-=7+s zrnfTtBeM0jsq(G!u5jB#cv}RSzWzR@x4Q83n91>O?Afdf$*K(r617pL(wR;hI&Dtz z#%iwAHmbu$7Lj8rER_E{;VK`2ng4$o)R zIEZmbfh$(r3Uc)d`BTXAXiA4ki^Ro79$5=@&cLCXp% zWLZsaoQ3Cufm9ykETtrAe47!5`_)3XZ1DRhlcK|N6vOzxbHBsTkg(!bnPdsnHrEKi zBDu5>9|}IB6W++~GmQn5;=_Tb+ozQsJOMh4rRKV|lA`^p)amk>xjND-<*70?l(bE( z$&>i|8l`a*c+nO@Rg`6-NSV%x^^r0`o6^G4Bo{S`$@J|N;?d%HU(L`K9r>B%MXck@ zozIjDm)lmrbp0t%A*C)Gm+fn^d=Tc^9Wrrju#>o2YHP+op-gw?CWIC$Et$!IIIV}%-U1P-yAb;oSwLp7TO*=JbmOCc^+nLy5Dj#CX{JocixLqM+Wk`)m?6|=`Ahdo1>Sk5F$D^(fKbZHM!4{2 z4;%{Z`q>U^?l+x|$!Y-96(&r#@q7jPLJ13Ia+ztN#6pdT5^7*I6gDPUm*ATHQwv$5 zY7ur2qXU-Y0O{bk1$(6hMy8I0lq~;U_JX_<;bwBFHTPT=2G;gp_@z}ojq^Iy@|Dc% zD8-1&>w2_Q5&1CHJ<6UbjY{zCGEBCiv;^{iJ*KNy8dPUUbq^tFsB|r+J@#W3$570% zFo4?7FX~tv9uGPXspsdlpoos;cfoz0WA4NacVhNvvVZB}eJs#Beb$n~ z`{`wvI+izV()D!;V*kRN_kP#%2gTP~DAR0$7OqK`4rJDQQ-G7N*f5zq^-@PI4-Hbs z7@$fCPvQRMtRq&GT)*84|M`cOo67JkCmyT(H7t=~TzzQyds*TVu zX{^e_yY1vcqXmw97f~fko;7S7K$k2|K(6eQ%LStD7`Dqq^EHD_x{}Z`RhxeIj|Bnk z#1F>^9Xh%1n~kFH<*i)v2P;zE>{AwI%LzgwYERghG->mkk4dhiicX&oYSS6tJ}yV1 z+=>?`ZVgP05`!T&PD)MFL>0m?F}&-Sm*uO*4mgWS%;!_8JALHT=Tka8d=Ye9jc_7- zZMjWS(jx>^%i0J3;U0snns0Y}X3+i}&q%WPk2HWFC{9x{b=59*wip*Sv6;|;E&slB zDP1hl#HyF)XQQ@u3ANW8Q#LYVCt)gS7AGhJs;I{wycg=InSc%j3|sjZf63jhm~qxK2H^v zJHxn;5{PV5$rK{nn$Tvs+!B0%sq|;^@6HZ$`gD;8;k`omCo*t_un(}pmyB%B#Ffl6A4Qc%F+Fs&V&7R=6c#=1RLSBy%-faT>MRZu~(vZr_z zF$+sA=M>tD!iSi07Q9axdzV|vm}>i`u82|!{4QfVkgzNa>YjIY-l|{`LMDbs_G&jI zY~12C>pZTH(|~~{L4bzlm-u$<9`U;^NwkYmDi7GRoYSQlF9ed}a|d2fEiW~X67zl| zv6NbMg-^UFPVsq5FS}iVx6?PnYm-gx08Xw^!OatdJ4AaV+Lq-zo|%(#Ll}0Qoq4N#q{J`MyG1$8 zEm(PV_sG^0`Jw%a*ePUt^Y)13D`=JCepC&Yy-9&B-APt1s4cCn#A?UFE0E2?Vw5bo zGk*W=yfk`akQ<8>E%V7#1FYJ%tL10bh@IS#Ea{FH3k6S9B*!2z2a)SMyIW zV4ppCd3DuJVTxcpk4rEU*hE9}X+EfTkjUxneEopAfwZ*+9Y&-DU)&Uu{!i4A7hLq- zUkl_Nex}`Xt8IygSJRAtarctj)d46CaP|R2i>PQ>4(k$U(px(+sPabE@7MIy1!66!zklP7LeXFI)l#LDOheDIPvRshpEb; zI?;6tH#s+0X>XQ2zB@NrdY520pejJqeMsq!;_V7UOe-3l2KuDVAXvLosQtj#JPVTS zul~?OuItb4s)ivsfuLb=3$Cm-`RSX@q9plvr>KG{T>kxqfWc}GjV8(;ev1yKJ&XDX ztwM+z@yRIGN}Gne7?=^g{t$Z159Y{k@N$IP zH!hkIU;b~9s@J&X*&ju&qSnG2f%U5rxl`J#=|aF`j_7z7Y^NLM$(xk&A$H!5F+$gr z?zKJ%#qV9(n)D1g(_2A{@pYRT^&`!dq92!{{3 zo$ebCK6zcG+XjYF$tsMzLM8TMQpa;1mik_y2K}~ zl%4g)Sdk!~h;{4qTW!`2FM1tE$m~vi(K;^Wf!%Vb%K$i-%l_UzCv1jT@}SBU7~o>y zg}v?OX;*uBfa!$r{xQer_f0U#Gs$%J>pGLn4V@?Oo8xh&&=<&&&K~YMPtyZ}4&XZX zlXDTTQFuxOU-r3foU4VWz&m|}LEc6tiR#Rw3!uGU(8Ce7D6TEfdYE_HR98|iah|v7 zMt8s}2ATZcuE!gf9(S5=j!PgpcropfJ z3*$5tGRv|smz?j4qmzlFV|4XmRbHlDkIxgr|27n;cev6waN(c7qJX)@Z*;mIkUf0t zid9*Ixn_agb#d7=yEcX~uE?ZJ29EtL5_CBY?A+bSiLW=rTWrJibsh94YQ#0Huf3&j zbrMm49b<&J-6I0R=|W!z>hv5-a79Lzzm~R!ibq`yy1fNH|8HvHMaDkwGwgCRLc2%k zY_r;%I^hqB)y2LPq7L0LJWjF3Ym2jLN{u=>B8dtu9a<_gN0PlwZhhOyUE6c98{^vC zR|DRg&%6}OoCsx)6PtsSfCSiJmRZAY)Z}<-EF|$InTW8BoY^Vo>9sF?(}KEN9Z+nm zRGg+YGp0A>7tZ5@8xhSg+D=qA+Sk!3QD=C|ui=GXKNqji?MPp;k8FiK$s1?1F|%sy zk_Zh@kZaOAyEI@3Q6O*Zc)ungagubXZ%UZAHSs|}3Egrw^CWZa1x7LS4}Si8 z(IABh71A%HU%z4r|2I|TKM#_X6r@GmO#Vk$$<~DOQa(b;b+>K2F?j%>14EqzAohnK zDhR^`82$oF@biyR*e_3XeI_>8ZKntc_+;;XzP_-C^DG>Xn$ zcy*8VEx3ch`cXc}wfJ<5_RYVG#Of)!o51QRxU0naQ9RJI`1~8KxA5v5?OS+o|nMMeOStaSAi@q;2CV2 z8%he5Ci(%!eU{JZF)pNZ<`-%@F90MLnS>AdER=p1<%bXDrkaL;Ht)nqy*ncEZzM#v zpNj#z%Z>dJF0V&k0QIPZP?tN_lnb+mG4HKVMmL5<=Xnb2A<|nZ_*xA4nj9*+Q2Wp0 z*`+Fsa^?)wLs4MqA=GOtG9FLJ8M=*nT!_b+x{Z8kjp->?=gOlj)q~Q#Ga-0`HfQXi zxBSY#{2Hk5`#7uqo+$sL4XNc#4*n78*E8Pki=yD0YVm`Z;)_0?{ur;15A&MpCnvnv zV{(!U{TeI&HYs$na3c66808I%MGvK)7K66xr?Q%)qrV4imAe&S0qkTx6dd3VN`)k_T23|@Q01=}6kV|mMo)T7($4a|Cn9N06#0?yZq2JWlZ z8>nq_Yx<16IW7avH(3a~J$-`t38{wtNuFza3xCEtoD6=m9}dnpEd=KiF!H-IQ;q>3 z!_S3)A#Z9IdV94O4}Nom1b&0k{l$17vF9lX3Gs>?hycBV@QM?dyJrF3LqTmD{@Ti6 zam&>?x$9~Ycyn(Y=sPn2>mz5{Nw*47aK;Ci+x2zm-Hk2!sJD98rPaWQG7~D&0CL#g=#d z={m8a&O;ziY`V-BBq7ET36KoK$eH zqCDQX5fg@3a1PSk%nv=9rUtqR6e~4NCET1DrxscmStXqR^E_`2HI=2LpJm`=2sqv? zZ!XLmK~tmJrwb=rMMbC5ORSr{*&IXqRhlTJds?ODdW!!N~3t z;LQ8U0qOqbWTR_(5il7eqBW^bXgo}2tX-C2PHb2r`vcHMcF+x7H!t*FGTviiDxJ~_ zm_;-1P3H+uFE`384qr7kcfWpH6@4#S^n#j6)jbj+JZj=rjDbOGBvdl`7YyxdnsZq+ z`I@le{GFI&%78F4ve`ywfbA^U!a*8Sfoahs6j{0102*tmNJ#}$Q87CZZkLM^5rmwG z_*PxHTPfC_fi5E&u+)vIG+lcKW|VIt&K)O@0++$Q$1-<(EHCIFTi|$*#yeyROKewx z6^GzGH3mq2+cz~NPc%D^5N#B3I|x%>01k5(&?C$k&skE>FK}dDkAn;%>`rTA#*8p9 zpH6zXIDQw5FEOv;(5D*(Y=M-94jk|Eud=O;cdk)lFWB!IE_X{;aTL#=F8D(93)1zgImX>kKo^fGf>h(noK` z5%Ie_4jm+*2$yjq>Gwh{c-F#Jn825#I*@((>m^)w5P#r=u-Cwjs*^QBo~E{fo@R1A z7h9Vk9UGk}tcB2$B;jb~6A1^OKo}C(*B%@owb3c90K+`|~>stK~89YA)TZMjWyWY#0HWCq0Z+Gu*G7{tM6GeEByk2*Zgi(IGl>NTL0u zuys^OJ$|pTV-ffnN&NK`LQvwaUFl#O7E(=}Wg%`eq5(jWP}yaZn%v5rW9Y1gYmxBZh`D{<%y1P2<|>SW#Hg!Ov3g>M-96awF#0tNVV&TE!D*9+k*^7BSCj>=F;!U%8Avj9;Z={3S;;JhW+0?`%j^MZD*yQM_`ZE* zDwq0%P?ARBG5xdj>{BIC4%!#jqh=p;@vFwaZ#h_3nuNPfM>L3vDQDCOaZ<6hz=#$1 zso)e^rWoMq>rN?P>Gw=F_V&{We@ObVdgu}L66#vl$kfu~7?nih{Wh>zi6W0=JNn6i z?6D7DP){HM12HpCb&2Ol%>4>wW#WhAg2-o4=rv(z^pQnputjrD$XwxyMEEOjWAf|| zUU1wB^+2}A#4|!rehDW<;~*vDKjqp6SRZ^CRMJMW^4djSR^b0wE^NimRAuU0cuU~d zsT$bbR`gO*etMhui0jV-&uew>f;W$ob_XhWB(c_iY1=H)lLku3J2k%B!t zp*$o}6~o;#bScsK6P0)I{(ok^zgfho=cNfb{yw6}7x8N%7Qu;O@r%hQoy#0$c)N|a zqxF}xK^oIGk$y9>w(6-lU1kE=WqV9SxSgVnKLJG`2zi$re^dg|V_DYi*8@F~rP$vZ>9^hMVGhPZ04O`^?`4oD zL`&n>-00U;XOh%V2K5EPO|0!Www->;m>z@~&@ucd{&mR-QIqddro)0^VU~)|hmylX z1vVBXkr5NbT@pDCbdD)YDaFf+S$bv`;KA$=1jNn zrJ5ry>Tbmt%`a7(hWCN&mPwl~U4)=e6xf5EJfXOCZE%nLhQG$OQt)aAN>%n~Bc%ebb*ZjdSSsVorF znWJh7;!%s|lJe@C5{4I^oZz>FF=nlmrCJw69&sntLor_rhCvpEnK*zfLb}jQ==B0q zj%LWGSx@wF!K{D2n0@kp61JL55U#HC-q5ZVXJupc5wbJfsi#lMlX4o1o}0}$6~U-N z2<(3!$j;eV}(Yh;I+>y}8O0u{Itz=Mr%#SviGoMB$Oe;sJWI##~2` z{o9lN74xXEi;nAYQ<@I5S0?qB;FjUk$6cgl6r(&&w?OyNA>_OZH$M1K0sK~y`XHg_ zTOTjT5vQVq-+Or?4$zp5j6K>s(PPJUWv4?SX251$xhge*x-MS&O7mf0Ot&@I6q@4) z*Og%{?8@a0Q{;>-{t|0b`qW#yE!9fD)XIrMW#F`Nt=r`&Yr^GS-F<&s&vpd`FmHIJ z)bLWF%GR`%d3wHnOtGYMN_8bp+7bs#hWLuRD}%l1KW?AfV#iLzX`~K73j2}RdNuO; zDe(D(f;;hDaQ~!`5#Xf3+dkhK1 zQi?R`F`SBhx=supl<`NU^5V{LmV%^x;=;hI3!|X%iS6b*F=w>eGnId$%^nR(2ZXxr zGHTY?7f^^?51=f-r%*7XMpp3EP6#@YpLk!NzH< z7cuF;J|)CF@T|r6D%0e5(HZ>fSp~9adcr5eatj4hmFqNtRTIQ1n&%+Xxmww$^S4~; zLyHqab=iP>$Ad+N{Dx#bSV0U+so8KAu&1o#m~6>@qQQA)?wD%rr0MEX`I=9KfOwY5 z6{WMgSoqM!SvOek#L#TO$Bd*=Rf4cq*7pFj8=p+W3iTObLm)a%l9IhMm$wm- zg_iq1?b#m8b@2z<{YEOp40+JS$l3KdFl-f%@PYLg_-g;Mi>42siUBTPx1@dVI(){0 zfFqZA4hsqywQ6G3~}G48r#hQ)`01x?*cGv?zX6>MxftSgx30L|bYL9&0Em;efw=tSo33svHK> z*16lbS5Cz%CZ5IF*Q>!^_I@+Rj;G9(aIG#}T922qBZv9$*l17w9Zx4=I;3!TW)G&o)+=wKm;izD>inL}Uk6P+hS#P6` zesm~W99Si0Why@gTzPZ}zM%TacmO{mc1duKvQy{W(mtz}Qf=k6y{M`PpY7O{kalQZ zOl>IxZm_(Y%aLcY0d6G;GqO9}3!EMDoq<<N+~y<4`9(7!%t=G0lv_F zYMnXV#eBi8+$kCg9a$YnZdnw*Y!A*z2M5lDLAdgK`<33PyDo&gPr}xHQbs%2*lSfa zL7hFipM>q|~}m|!VCFtbgUpgT4tPQ)Cv*>RiTJl71U?0Exud~ubsVDR(O@}FkaFtxTW z3zmC14w5iEUJzWWQ5Id>F8HvF?-Ex7jFreUsB&vA5J(9wSEU{Lqmv^5D>X#P6Xs-CZUp99i}a&MYRp?R#Yj=*}w z^32z!HMFbyq#_deZX*eWPr{;9g+3A$6FWajr7;CmMg_2{Ve*_3ds&1rg`E8L%3uo1 z6Ak9`G6R{MK`NC;k2Ot5Q0R(TM=4&LcEv1IB{C8j#Y2+r|1u>vQ5Vl4Z+l2`24yP@ z%{iq${ZW(=ON6{<)0NyECkwVs<-Ztrt2hfe;_56!(2H?pxH#N$z=);F7jq}xbfPQE z1An2Q7hQ2uBptOO{Lh)_3)6*HSy+YM+}pZ74W39}%zd5H3xKJat%bUCi(Kv1Rk5 z*e%URI=Fi=BYOj@Y@k<5s6$`UttevGNWClzpPwx$M1OPPhOXKUhp(l1Vp6_(c~FgF zNPV*KXQy!cG9=wd?iFgX*zo*P5M*Sc;0EnzUFs8h#tgwvhLoLd(l9L90VQm9VZNl59#$*n+*T!`V z5c3Wet;I9>$3`Ae^G3a)$XG05E!JZfr<9x@G!Ezeu$X_u8tv|&q_hchlBF6OSLz~5 z{CPc;6ZAxWC6hm~U5#uW>eWoZ-wnSGub3)aI@Qx@Egr=`Xy9q!a~}mD1I5p9rOBWrgPP__A7(Wc#d@i2b@CDg?GQ?H*#=dwRvVB!q zYuE`c&hXTQa(kU8X)W%p)NO`UJlzgcIT?H0rFYY=85c76N#NbZ)eTU-!&*&Jb-`4k zYctDN`N5v}lC3TbeEpjpaxVdspC9eV4-EQ$HJASHaXJ5-OOwdiia0vj{Rf{_K}!l- z5ap9><=oa#)1_0{3lRjGisTNMCNKpeq)?;@L@0+WgRx4-tZ&@f;!DK`3F-p=S}elM z8UNR-{?U&2(QB3+2YYk(S6&1jn_xK~oKT4VX8%*!-Z1K=bvBCmQs*uK6rt#vCKRIP%wJdrAEd`+@ z3#}AkeJFfY2|Np?ql41>M}N30rN%-W*CF3*h^ArjYuk-{^Z`KK!1(G9|{q z%i0n}IXF4(NsP2PXED`_%|I?YYL*yyU?57@I=zoK_v>MyN2gx^`9TpXw9T%+(HtEi`$K~JEtZK#D_h=7J3D#8< z_d;s8`W9`1Lljc<_Pc(IICcIdm4p4ib-Dh>->U3rVC!UH$Af$@cRspkAgXw>OkRnAIOr2Ip!T`9NHaM@v_fyBwp|V*gai81x z3ny#Z1Q7$6nx^jUPn$yzQL<;9!&SX|sV z=l47#IRG-QoXfiwY0V2j@wY-q^iL=10;E$ z=vlBo(K4+GgdWoGCTMy@S!*$7x2tB~a7oCvVA665=xSlqL=wO-4=ei;+J0O=T9Z8L z;Y->N->QO&dEy}(zf(0Xj>khE;TS){KVFFkX=S)}WZOe);dL1nm&9k*0LIZ|+}@;Z zdaQ9H8Q81NTQ`s^iNHXDQbATa=`hC4v27cX2uy2|_FBs@sc)*I_Dl^24xVlQZmr=H}XBS8hHLfAKV{a2iH9R46?QWk>2_`6h1M6DKOJDqM6V&V#y*%d(Yo-joVjA zU!PvI(61(xw2EHTwE_NEB?CKo<1+~D7bw{d6Wz@<#dLTN2BnfJ)G{xMDm05_oQ=dM z#%Tc9I2fkd3`GzIU5#|DFI(MjE%9LWb6v8)*NHSzcJE_jw4ZdUiGN0v16p{L0Q$K2 zZka>!;unab4OvamBXgq(HQ`jAc=OCcii3U&(R$)a$6TR)0FH|xB+Z7{xcN)idmR&Q z(LhJt+>2wabvW7~TOy%G3LRWw0}h>13@ohwsSa0zwb%ZK8}@T^?69$L zjm(6Wc1?b5LQaE5k(Ks$Q4yB-s-&U0W|VCm{fL#@Q%JMjnt;gr9zd^0PZRZL5(>p2 z)yi^_JW32gW8d~MM_v%~X*5TEH1R1%?8A2upiI*VSlT%E(dM_a{%GB+%j?PbwVOQW z7w6)R2W}7-+;NKnK!ywMv_%6z%f*+!w}v&uf-`d+9~#EWlebe6D)t>?ah)1!XYmc- zDF~H-EoR|C>_f7K%asieXhINLM(QK#APz1RqC-IvZI7=se3zZ+q7KG#4!>C-Y8Nfa zT2K$A)2NjZT@!Bk!TsyT_P35!(BLr|J#XDEFH)V_c@=V1GHMEEPu-kyG_W7+48H4q9yP>xxirfw| zSXWqPz?IQJ&m7V*rh;_TjhuXbou-|4IQEL;6d^o8hz0`-}w4Y}ou6F`~- z`GfLKF~p=cbh0zzBcjCw;Krdkbm3YmW2daHIbDF1mizqp*?H*im7Th%Y8t*PE|}?5 zsocSvAeAB8*LV)&a!?zp8+WOwj*|h|ydar|ErOhu|L<9fsZvy;4nH+C~HLSaQMBhg9Ev($PG`>UufTKtvgRkKl^;h`^d*^w6VXyrCo4AT4Jqd z4o{-k2?_W^3;L$HV!w=VY5wE_x9&dpKWs@-zvo^ z|AO>rEs|_gWcEN!HP+H}r0`E+U*P5TvkW3taN9*Dv;L?c5^MV!g#<~$1tqhMsrDiR zBU2w}hto%^AW$^Rn2!@n{IK@eShYN7d|iDag>Tyl{rGGT4l6hW((5%IY$O#}C&fY^ z6J%dpl*xH%ILi^z}DhpOxJT@zF(G7hVk%g9T3Vb z`gEV}`#jr(ZmDKjNH}n78jE#2Ch(N=1!h0{0!PNxtWE-J$c$p!m=Q{n)6ir8Qb$ZR zWhP0YWetc_gF0On7PN&C909*@(fjw6eL?$OE>AM*9)zO=W8+X7%kQ`kS2~PWWUb=+ zZ^egMIFYpuhSg`YZdCGduwr^XSL~En9S#Vs5H*Yza4%hfmmC%Vys%AN1j|SoxUC_1 zbTU*Nfsr>FKgyU^fMXBR)dw$g;RH}e_sMhenO-EG-1)Z6fcS9j*&z415*x4z@V6@x zHd2YItulMCvHBPG)VDYyNPUpQqlsPDwVnuP8K}ga3NT$+;WE;3_+%q?s)yvRB^*P9 zL8lJBp+cJxUg-lNJ~44dA0Tv>BzBp7ePlZxEYSwNB*~8<)MPccEGCso>f8}Esm-Bd zqvSPZRxqqG6CT>X0ZGO;{bpaf>dKfjt1KeOJ08{~Q3nny2KyPe>PrW5OV-%^J1*qc zrh|t?MTJC)zX7Yl7${w@2vvI80kBDpNyYbQGL6Rx5Dzka$59NW2aPa}3Q>Gu`J8!4 zOR5JBD!)<`Oz`Y3*5p-Ow^sOZd;1t08kF$`RSI66r6}^`1mli9I&N~~Nw^|Je0Itp zE8^YP`$-K%{s7iU{fY+h2l~yxhicMSbooL^bq^<)MvR0F>JK(e`|n@LPPK;IlbO3% zUyEui7S9}1FBm(5`Gq29^Q-y;|HjU#%XtQFNi1HXaIcWpWO|ckbYpOLabS0;z9VEX zhQQt8Cc5ltoEwBBoPR3L-tKtd3_!QQ@|$VBLO-T<8yme);|x|~K8W~s8^pb6@ko5K z)Tj1cEz@=lbfe!u`NpZ;fWK$#eQldGV)&^d-lDn-R`xoT{q$2v*{ME->d33wf2Mku z(TP!8fO{8y*amUCm1{))Qq*v*2<$Fy0XC%R$;qwi-FrqsT$T*}#AtR}@@irCb4CE9 z&H*@HDegXy?&!^`be_TZ#XGE8#Hs0RdiTct(@o)Rw+U@y@(v!!HkeWlK$PkP| z%TqHPKB0Z#b74nRUxM+`{89rpgMcADnzPMD*My_pErX zAM$6r=yJ}^5PUY66roPxp`Xg zef*n2ap>&bYUDdB1Lt2R$NztjIa!$5N*eq}8>y<{jBJAP`DvS0pwu%=1rcPuVH6Mu zq&i9_6<}E_`P<}=>|BFI(YUmKpno9HC=nDD1wm9@`F22}@YK&Z&+C@%m(zB;uGj6G zO^tLcq`|QDFS@Uf!_Oz*7qhOfvq#+he5fVT5~MyPA|y>xbEH+0U!)CE;S$I3H4=Sj zkZU9zR0cW0>?GPZJ2Lo>Z}vT5{d^r4{oH&wH#;TpS6~b%^}ratMB$v)e=tHheWUx7 ztQSEUkmSG_aGZeMF&?ZZ_a^REn*E*7Zx2OivJGle2a(`t9um}tOo5AO&1wUIse#== zVsPA(2c2lr)hi6Ak6v0Qth)&Ek!fibN0y;RU#4nJZFmID>SB z<9eoN>q6mN60jo6Bg{)im<%J1tphCf7h}xDFI0&yG>2y&S}+xnRfkVc7RRT(JIkeH z8itG@Z45gRWn3*Fqv~#@#?nDUli&ojF)ycy7SHR@0!C-wa-6^Vk4V>6S%P|mG@8w5 zEt4!=Cnw!&Qhsa19~B2eNosLue`7h+(|^nFnP&JaFO)twmlsiPn=Ldr3nNpMGM(Ts z@*12*xWn5q8_hJSXA1pPMb@+mvs?xv=lD_8%exmXla9D3qj+akW(5*?IDo`h9($Tv z-OM!EM~hgw<{R3x4R(4FX{@HstXgW|E6uQ$DSCLRS0fl#a$~v>?$8Cz#O4Kz4ZDGt zAYc(&s}!cy$j01YABEIsrrky-p&!tgoer2IPzi<~A#36NX^ zi}{~F@#%v_6Cy2DeU|6p@)5-uzN_wjROglYZg7};6y%J%$~g)HTFdt3+7!(0H55%rG7oIgNDpD~=y!I@vu z0VD83lmQa(0~Br8pGO`5YaQiRr^y|_;Z+>mA?{5&)8M(WK+Z5UT_MK}L!{C%5tLo5* zA!h}zTlqe5ek>*U^<3=Z+jD+{Z=IOzdM;G-8v)Of4fh`Nb~2nk_lSjHX7;@FE zh(96~dakHvp`K;Ts>9YF>e_W(mVz!lXLRUWsXKGdUEX(ope53wEC!pr3Olzud zMlmi)j0guB|GuaIi2kXo|C!U5r*i$4_pPK_8V0qsp9irdLjdlW`Mj)GeXFEprj7j}>kb z_65-0S???pPSJ@MCl{-PxH-TF4t8R!g>75LKJCt+kQFoVg^(+ilohO}OO8^>7*LVQ zO3Ga@jY?dS-k#^jHGNAg-|?DSM9NT2W&YY`w@ij&rm}-Xbm4D_uGp_ z_v$c0>P1L;(^@*njSspRV)`ODyi>64lFtO?47%o#FiSZs?=h7tC@a})4Ae9l@-!)_ zcpTS7Na+#WbH}>SS)5V)0npG^w?LBmeEMJL$W>^Y?ZLabwmw(f=tV&K<>8la4&J7y zt@k0bD0cgX>hp z)fuUn8j3(rX9AzaN4apBjR~dMx0jlfb?E3As3pIN(BtV&l* z1UFKGFOs64X}eZnrl~9RS&jv`tPH+#a4(KaSIG9A4hOg_47SDBf7CPWG%36_ADVx$ zqTAMICA?$*V|2#S0#9K14Ih?(`&Sdu{~l=j?_rYvh?V>g_;8HUnk=#cicXj=*lD7p z8Wq8&6g14=UC`^FiV5kW;UW-!%!@8^acP(*?xSCaekOYOJ@werk$xqWQgx`9C zoS5Fu>rF2jpZGRD9**A0g;M)9Ap{240a%Bu7+7d5G?wbK*8=^*uw#to7?;8@#9f#% zgweGaulB5=5LF`6oxppGB|8LYUcs&LZMWQJ>e7E7#`G%wW}0?sy$CLiJp4bygs|zCcV&KGrz1S zm3z2jP1t~)sC4%F9I3i08o;F}cNRpn_F`C%@{c9ycA>UERc8xHG;XD^&JY=c!WxR! zoxq)s*6j8j89OZOV&SfEaK@emloA=*~UCx##maOAzaKf0!X& z)J>EPDU)fS4-&NX+gxbPhUl02RA#Q9-No3}mQ1jlTnUSG7UZwi!y17sRgeH2|K5Knw~zQP0)qnpsM861u@34B!kL#@IA!p>ab|@HRM!C zTjGy@!#LnYf%+}iRVIG_Ld`R}*4o&7(C!3Ng!!Ul%_jE+!;^hQ2P z`r@~`jvloCr61nw&tXF{Mz#YLMyMZ~`b?lNEi+4EWMK_P5|j74#-eG-HvMwNbgf}+ zn!3PZ#5N8D!V#+(l2>TU zb^DAAK_ChM{@Z@Fbj=8hzjW;b%RhZB49h=zZ3N3dckKlGRj!aES|*w<%8DhkAiiXt zE@}|7Xwe{+FB|j9f~9EDDY;bIAXpefWus_OFIh=tqhL`kxm4aDQ+PquSlS?5Xq)s{ z=A0n;ro39M7$*s?e5!KtSF#$ykW&|R0E$pXC_RLxCrfa=Uk_9vObuKiZfW?uQ7|}! z26dL80IoWrzB(nQ8|{`|aKK&-Hh~?YRcjbKGqI7 zbr&z~qu$&%YPeHnxYH4^78t&JQFlY%=Ou-byE`WxbkkGg4G z_)f8jD_J;NX3|Q2otLb*pgXbQrIF)|Sde-+fRrw7%uyL2cas=D1@V#@KLz~~7+($b z(k9z;#|3&VLa4VW(aY|V9=LU^9HV!Ng2I&5I1NL{Y+{7=DOJ4k+#uWdTp{apO__DL zOPW`xnxlo50Q;}OPiJV z94ss2u34OF&9axk)wnIiRr%+j(Os~Z^*L15O5{$Kr*zKNHFRXj*%JMY>pEDr8R9DG zIY<_)D_==F88Y@~8WVQUlQULgA?ZFuSLK|-ia3-+RA9yWA;icYCr}8aQt~K1;dD#g zMxhr(J+_)F4r44PtpqXeavgt4<7`mI=<-WulJyDe9w+zMxyX1^eGskaP&huDmSaTEls=j_T|>O8_Q!Ma9|6 z&4&YV78@zhlFa443EcHe`4GN|aB}RP&SjMNLX3pVkyDy??2|O{!DXd+$NE$xrA>O` z_Tzhx|CzZB>CL9YdtS`N-Z{ms-eN2ysFZ7iGD^;0h>fx`b3!e?VxXM!*c(tOEPA`5vH1m6q+O&f?EwA}$E0>Qc2%^^jK&Y7RO^#4^6CAjE^V|df&E)o zgp*KeNh$TmH_xOYVJ784MIk1kx^bJyLgTLAwK8isW}T|G(7B%V{JCe4tZR3wOuZ2Z zX>9r38ipfcYv;id5SKWy8EKg&#kgokRM|7VLoNqOAEr%!W4XHF`>|VP!v?pMSiQcj zv4|<$aZOHk>s(10gtFkOTsUr960evFQnj}yc4;nt=;}=KzF#|4{^K(A#Fp*4*du6g zC#WoH0=*^)Bb-5`855tyeGZ~+nJL}dzT7!68AJmsyNjtRh;KonM70TVw{v}3!#@H0 zB0UJIjlV}yPe2UH*d3Zpl49_iV$*o7Aq6kkaT0>Y4U#naMnhw8wx)BY(sq}d2ezmxx4YLq*Ka^$JEm3E4M!BbWTL6 zWt+k=Dr5qsP zC0L^(ji8=u1=DEyzUl-|(h1Qs{5b1~Ych3Z-NBCZ=P8q-VmI2`03~Z!J9vvCjaHu# zCpZ)DBb@MhMJ*2hfpvAFN4*L3HfaIHgQGl=woVs~pNRex)n66NW|;DplcBcKtT97* zcV<90sCM6NdTdT*QqES&D4v_6=?GEEf)j@oyaxyS(!t@l!4Mm>ZDI629e)@zz?IIV z^|&>zd`?!U@AgMhP$EmFc5zk>7>&{?p9a;Ez^rLLFlAWjA1+(yS10Afh72s$3AaWm zWQuk7zM3eVh6W<{)~VFGW4as^W8~9nkmdJP_8l#_Zd)0+(U*|-(ZDRxSOqyrSERm! z68>DsJ;ofpozI-B=l8z*+bM{V$hmX!@yWM{N>gjhn$WbQ-+i)08)^7c{%;5nOdFSk zP0i+aHOqP^H@0QX*R_^y%y0~4xabTRY5&3Z!YvSjaH^N0LyaVF{dQtMxbH80yHO|q zEr2a9(mQ5M;-$p}(0J)9-_`HY0fproSS;`iue%XVHLNFPereQlK?63WU*m6-TMo^z z3Cd~@73qj}qd;?o-OCD!1E+9EW6ME{zKbp`ET8&VJ1eXnUi}x->zdmQ-Fr|@3VkE; z$CSUlF-SRazIyL#6>k_Y;sMU1DA19;5(PE(vkc9><6m%1Oi>0j*nT6CA?IFV1- zw&FOZ=Y(~U;Hy_R8zWdpKbd_6oN%-n6KRX-jh2iFpP+K%Sn^})-z$~R_^SEC@Yr2# zOSLCT?%K=BJ+wLjE~AvvaYL3#RvLFYPzzMGwVpQhdO@5xy9zCCA1aQQ?k_ivw)ZLD(eVLW=ZcruGKw(SZ*{buBYzV zoOk)3)FoRulrQFl!-E;K#YIQaQ# zaI!s#gNikYJoT>F| zvTLe%J95JAE#Zv4sP8V>&Ah)@`{L@}Lmx?b=a`>ad15UPHY)wW_JIL#cIKlqX4?n-qJmOR*K2VLpY#x31=0(SvSZiLSV;xKG{6%Q@-Mi%(m(tw38#}747bD-v8 zc%ZLWxY~lu&I{gcPY%Me4;qi%cVKqO8TfZq?ZP*l1XX#qKQTBaNb3^5>@LIYbziT7 z99I)y>PXO+T+v`Hq&xU1k~%4OakIQ{hv-&I1~>q&wpmq9W@vV@1G1S|{f$+H?hw=#tSO$T*#^Viy%RfkncQ-+rrDX}JhTV67$)*JT-P1`%yGP* zz?H(;9P8TT4Ae+5;!L8`YCTO#>bT~-A%%51Q=RU32T1ksNXjRe2K=1-=RI@s}YFSKy51=F+k`n80c+!v! zo2Y+518Ly}D)}95?jG=|T5Et3y}U0n>n`C|P%{TqA-vJH!R?hNov-rhE?H?T zS&>aI9Q0u*l-235$1Jgqw}p~TyNuUE`?*fNzx})EIDRGUJE-u-4=J2~)$56TcYSt_ zX7mR321e#4^v-s6)=u;Ww$Aj<22NJSCZWT>RzC(I#yL@hDoJ$Xt_@|R6z!Mu^+e5jzk_2>ABJK- zk!P6+iX-~An8tg$J{M}X6gh4>({ga)soX-5#^hB5vM=cgv(?c;rQn|g_aP!+Bk+^R znFoCSyWsyA2bD}X@6LR$kkhxC>i>zu`>*{n@BjW9{(JLWsk-5Wtb+2jacDGGGmWIl zC%K@EFq>TCFV6>M4oeHN1|*|JOXZ$nJx80dQPY0%ql<})>2)`suSBkEH@YA;OEAZM zJ5JHh?VGD~5wyJW9RkkzyeCEM&yaNci+jOQGOQ&*;y?ij8*xB-a#86lR1CG7<Q9zkp#aG~NDR}OZ|tdy(Wu90*|a}qrnVKmYq+LVm%w9HFFB`e0XK{2|%;PQ??G0$JuNQW$ia}Ss`GDX0J*NcmF|qPxr4cJtvM2xR-gjr0ag0s0I-ql1oH%qw!ie%tJ*1u=xIN&P4GDD1 zH%2p`RS%OcWw7${OXsQ46pQeDL@LqRf1>i5spB}{tfi|7ZQr87*7hWK!M%6fR7e4( zYu;LVyHVK=-Bi{YB|}A3p$E5jSUb zFqLjH_=izzgC5%FoxDdcGFHu%i;q`cBjdJSBh$gW2VQP+J<6Eo5N1^77c0H}1h4ng zUu!+?GRO6@m{tK~+s!ayjCLEk;kM&7Md%)A0q>-#r*Lx8vkLg)NW#!d$MT~9jLAl9e=VvmIwv67W44q1w zz61V?PaD6({6xT2bCKI8$&Xbxlv=w3`p$NIX$o%QErBhIxn->($pX9rs~(84i8!RC zYLep(1v}pZPJ~gzcIr#9CJoYltQ);NF$REBY%|kbD_lskO4>H%w@?`zkfS!6rx=Cu z^_kD|_qku?{i2hcVj&wD#HbF_5QR|qsna4Qo1YX|5#!1znhtT+an1gZ;>ce7$G+}+ zkVyBPN&CMpj*9=ki=&a9t&{WjBgp>ySwt`V&kOnQ3lUpq$A6MzzbmF4%6G+tZQrm+ z0hOc-nazvBZ_x<`H?Jh-yd~gDSR!ql~DyPuZY!xSXS?PgOyFr-Y&` zRo+2+5E3;(kY#U^Kodk0G#RP^k_K6wZknz}=&$f!CH=x4qIL9vU8eP|U{ZGiad(Dr z&}E8y!hkRn7bOS>Ys6*5J_Bo51Dt+Bo|tTeY!NpI@*87_V&h8|HtK7UHY6xbVx1A< z)nK$S3sW|>KsUr3NMtVAZb{gD^bIJ5?bQE)0Q zHr`5Vvvu{1wAF<}_o+r2twPewS*iJ`u|*Hkgr*0${Y;J8G?hm#%(zk-roFkM*=4oa zP%C1yR$PxHUn?*CUxpM?#LUekcO%2vpu26*&e%me)(SN>#oc!H=2~0RJK3446cp;p z8OsK!Voq&=gNQyS^{e_PppGvM-;uZ@4WD7lJCop`yJjZ=B4%WKJK znyLy)#dsxZS|#|bwscKM!^<4H*hL?}cywO4F=3-VdsVQYu9;@`aE(+QtD%K9YX6Sx z-9)C`m>^L4ThpXUIu1$uT}@O5Yg!=Ac8O^ef-yyB86LWJpG$1vEo{qH?L3>-^=Bn5 zS`8-Hel;7$r`9W}OtUW)V&ODIx=O}jBbD~8p-kTzmJ%f1mN@Yx$)#dS2^vx9ZPH(< zQt=nu7%NMpxxcT4yNFOl2LY-ri+?f zOj7l{wz1T!`$Aj}tbb*$1Yc6rG|jDVy}q#wZ>P_!L73u&BeDT@oz=y_k$9K|i7Hp; z7A7+klTnh2~S7pw-Z=t&Br8JZ{;sBf3Xgk7af$*CV_Cb2trbe70o2^gr!KSi{7|Kl1rKAyJHUuL0+I-6>z8uQ4cZ<3X?X-cO>l! zKxUy3qqrs4B<@m0Zje^|ZAsq^MM_rc2--bG;-c6Tsm%`-Att54vw)N_k~u=T%wUKm|Le*w{eM{5|ItSX%S+gr+Wqqsto$Z7Cy(+;XWfuE zYSa-*0EdXXr?8brK((im2Ha1~ICN}sCfe9ge*r=EsgOP_&cgV4j&H)#jBT{DLr*g{ z$=iIy{Y}1Uzj(QO0?@M<0$DMU8T0(PQ6DM`E(rF3ghoOmrIAoi{!1-CT`nM`oXTfF z$1W_|9cT(eVcv^ci>r(&{ zh$w^+)dGf@Wk}2=wCdUX6nJYdeej~A>9V~jD+ex63+BV&!`ZnibqtfvKsTaf?~qk@ zI}KO(4i|9CV*8dp)fuNjd}JZp%Z{6&rMXCf;i@{u(R75ICm>I&u~IQ(+WWXMHGmm= z)>guUK)=L_Ym@z^-3%>~Gm7o)rWp*_E6(_oE8Z~cjUYp)M@%fmyEw`M*YC8tq%-W3yYs>r$p zGUbUpNX-$=rJ|FjUHm71kvRK5?(u1s3UBkO9PW2RAA62cqH^s_?9$C_67l~kr;rKi znB4+ngz#oz6vcH-p1%1eJO3(?HathzAh+@n0>SfCC@Dp)T#Vd>!~-LjRYO&;EaA9C zo;`!$9v~$YfwcJz#&nQZ`CIf>>X@^1S~fe? zyJp&unghdx9$p-tBwtO#2-TiCV&M9{Kd#Cz+S>!5#_@vY=6OdLmgcG0gwjmcl+Zob z;20U=4BAjBJXktTMvtYPg?CjynJXF^==);BfutnU!f0_HS}`EL6dm(jFr4bPMF*C6 zJrJFE83I&^_IWwu%K#rN1O6rNW<+%qS*Hg3V?jNVM}Q;9w|b0 z){`)M%Xu<`d?H=Ni8pTg#IKaj<0b-Y`?fYG6?6P%{`&=fWQie0-C117${xyQCzI@| zs(SH0B&oe9S%t>uAatv#gbi$Y2AK5%fyoRKL}(L;qX<<4gf_)|GdcP)_pSZ<;t%zzncsr-ou1qt~waRmr9O+00P z)K8Pmxe}I#RQwKsBea5UZIeZD2HQqg41V~DVibhK&F-&gjZ!BueE4H@n$$QdzVc_H zQAYfQkS@9as4EBq_7S9;?+;RUpC5$hG(tb@5UT0o7j&3nB6ByGF5r3u;_Q<-=BYm) zBGf(vJ8&VtEg5!jyGku2;b+%P1XTbLp+`s$B?NFrjDaIYgaP#H0D`Vysh}22bnqM2 zfuI)DQUY6KTlL`!p-Tiu^J)3z~?BM4*#(rcZHUe{Q-Xaq(CSNcT3q5`H~XOLMJ(AI~JrkvR9&`%S|H} zv-F{;cBWGGytrL^Ri4C%L1LST+@I8_69a!D$SUnJijF9QExB&XDsiZrAF_Gp*Q^R# z+9XsHO1s3J8CEy!M3_d5d2l1hn0`yM_!z`3WWgsEh9l+tp{&72%=qM5o;If5sZ%i^}C7$HeG-Bi6cTQ=u?#luq0oLs{O1AE@2 zsFl~g$Agy5B8NKa)N>+kT*2qVZ1Q5;NuyVo%Kq{&nbi;+?5Mi47pRI&}gKVz&-DA*X z)j)|}E{D|$=jCLx$eu8dg{B5}2wbz|Ij6TK+qM2U(NQA~d_`1fo&%JmCn>I`*apQs zPzL>_i{l`pbv0!8yZv#!c|oc&zN;%py^~h2by}>;rrhuTkp!3OYGwWiK91H?u4Aso1q&8kkhGux1h!UK<+*MWyxVpAH?R)5-7_jI^9tBVgN|Ii+tI0`EywAbcaP#9m@sR zNq}1ec6K&Q`@N?%I&j022~{r4Ei1-@1w5+Mf;a_1*TOyRW_+X>$j+EF#;*F9ZyI1U zds=sSt;@lMg$DSLYeU6hrmtuN_)rik#&B`|8n4J>2oV%YCGi@O@OIKLzo&wYhMqAl}} zLieVYa7B)P$W~wrmduPjBpF;W$Z`X1#g+*}z~?)7Eyz@vHA2Me!to1d#!w^VH6UH( z@v9k9Zbr>r^RXa?#yrPAHVr-w->A0G@8;hx#Wl8|UllAOq~B;c;*ARv`~I5z8;bDl zX~c}{qjk?m-r88FUDbq6=cNUoA*fY`HxkT8WQ)yv{&5%*gNVZJN$Q_~d7lS-t;&A& zRPsMqdk5#-!(~}`#kOtRwr$(C?X1|gZQHh;728f$bhG!lsB`MxU3I?w{RwZq&u_Y? zr>DmfEFNpGma^^owVMMVJ4$fjox{ujKS^=$=$AcgnRaN!sl0AZMCZyknq7c`ksHl6IvrGEtgO<3+NZ z*`-?3GRHITs-^s#Z=yWE*jiXVoT1XeIeF#C&*fuib2uX`3NUWtuJ|`GT1&)d( zi>xA!xuR9QX7wOv&6OgS3x1{z+BScOL*fj`UXOGQzmp!x$=)n2PKf}ytEG5%nSKLQ z5if5xX5a&ZZrT6>TCiU?Hn<5axCtw`3kUwviT~WKB)@tDVPIVxJ~bhDB*Xw>pu7;g zC4zzra6t|~Gkll`u;Dr}|3@FlzAsuBSPA$L+?@l=(6-WSs3TaIBUV^32fwhRzxxx_ zENBq_D|oO3J|u*&KR+;pFoOU&0XT1mbI50Q@ZUweROI#d|L`v|YB%v(Twb~lg5S&C+@V}n^Z1`-`e zCT)>6_hqg%E2{gPXvbC!7mwPdP0950H-nuncD}emNnvl5>=7%&%-*Jr{SDl;*RISg zn9Bx&-PUSS)ln*&m6f*azSd1zxn=dI2lMEQrf~0uS>4nDZ&`GLwXSE%TJ;wThFfDb z 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 z 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 P_^x;3!iPn0$0_dtGCzVH diff --git a/proposal/myrmidon/lib/avalonapi.jar b/proposal/myrmidon/lib/avalonapi.jar index 8a8f6ad5cca1ffaebc8e02daec8dff8eb780d4d7..10eaa04e4e6d8e063fc83878515778623c1cd3b1 100644 GIT binary patch delta 55992 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
+

Myrmidon: The Ant2.0 Proposal

+ by Peter Donald <donaldp@apache.org> +
+ +
+ +
+ + + + +
+ Myrmidon is a proposal for Ant 2.0, a + java based build tool. Unlike other proposals it was specifically designed as + both a tool a an API library that can be reused in other domains. +
+
+ +
+ +

To do and what not to do

+ +
+

+ There is a number of issues that this proposal addresses and a number of issues that + have been deliberately elided. The focus is currently at the lower levels - namely + the task execution engine, the notion of contexts/scopes, loading of tasklets, + datatypes and converters etc. While it does implement a Project engine API is still + being discussed on ant-dev and this proposal just adopts Ant1.x's model until a better + understanding is gained of what is required. +

+ +

+ Neither this document nor the proposal is intended to be a vision statement. Rather it + is a description of how it could be implemented based on commonly accepted needs + requested on ant lists and discussed by ant-dev. The vision statement is more + strongly associated with the Project API and extentions (CJAN, import project trees, + preprocessing via xslt/css/whatever, templating etc). And thus is not addressed here. +

+
+ +

The Prime Directive: Execute tasks

+ +
+

+ One of the primary concerns of ant is providing a task execution environment (TEE). + The TEE provides a number of services to tasks. The TEE manages the lifecycle of + the tasks. This includes providing the tasks with a logger instance, context + information and access to peer components. The lifecycle also involves executing + init(), run() and dispose() methods at appropriate times. +

+ +

+ Instead of reinventing the wheel this proposal instead reuses the Avalon framework + that already provides facilities for many of the concepts required. It already has + interfaces/classes to model concepts of context, logger, containers etc. +

+ +

+ One of the requirements identified was the need for dynamic interpretation and + instantiation of tasks. To implement this there needs to be an abstraction layer + between task object instances and the objects that are manipulated by projects + and tools outside tasklet API. This abstraction has the same requirements as + Configuration objects in Avalon and thus the task proxies are represented by + Avalons Configuration object. +

+
+ +

SOC, IOC and the alphabet soup

+ +
+

+ The design of Myrmidon follows many of the design patterns found in Avalon. The strongest + influence cna be seen from the meta-patterns; Separation of Concerns (SOC) and Inversion of + Control (IOC). +

+ +

+ SOC essentially is a design pattern used to separate the system accroding to relevent + dimensions. (SOC is often called multi-dimensional SOC). The definition of "relevent" + is domain specific and in our case there is a number of dimensions. For instance you + will notice that there is a separation between project, tasklet, conversion and datatype + functionality. Where in Ant1.x these were only partially separated or tightly coupled + there is now decoupling. This separation allows easy reuse of parts in other projects. ie + It is now extremely easy to reuse the tasklet api in other tools (such as Installshield + type apps or Cron-like deamons etc). +

+ +

+ Another dimension in which myrmidon is separated is by users. For instance there is + a separation between engine code and client code. The client code is the code used by + those who implement the components. For instance tasklet developers only have to + look at client code for tasklets and never look at implementation of engine. +

+ +

+ Inversion of Control (IOC) aka the Holywood Principle (Don't call us - we'll call you) is + another pattern applied within Myrmidon. In this pattern it is the container that provides + facilities and executes lifecycle by calling methods of child components. So instead of the + component calling methods to lookup or create peer components or method managing it's + own lifecycle the container is responsible for these functions. +

+ +

+ These approach should be familiar to a servlet or EJB developer as they are also based on + SOC and IOC except they do it at a lower resolution. For more detailed explanation of + these design approaches have a look at + http://java.apache.org/framework/developer/index.html. +

+ +

+ The result of these design choices is a more flexable and reusable components. +

+
+ +

Enough theory - give me Nuts and Bolts

+ +
+

+ The code is separated into 5 different sections. These are the project, tastlet, + converter, datatype and frontend APIs. The project API is concerned with building + and representing a project. The tasklet API is concerned with executing tasks in a + particular environment. The converter API is concerned with converting instances of one + type into another type. The datatype API is used to register, load and instantiate + instances of named datatypes. The frontend API involves instantiating and managing + all the other components and making it easy to build different frontends (CLI, GUI, + Servlet). +

+ +

+ When Myrmidon is started it interacts with FrontEnd API. It aquires a ProjectBuilder + instance from FrontEnd API and uses it to build a project. It then aquires a + ProjectEngine instance from FrontEnd again and uses it to execute the created project. + This project will first execute the implicit target (which includes all of properties + outside target element). And then execute the default or specified target. Each target + executes it's dependencies first and then checks it's condition to see if it should + execute itself. Each target contains a list of tasks (in the form of Configuraiton + objects). These are passed to the tasklet API that instantiates and executes the tasks. + The tasklet API instantiates the relevent task and then applies rules to use the + Configuration object to configure the task. In some cases this involves resolving + properties and converting values to the correct type required by task. The convertion + is done by Converter API. Properties are associations between a name and a value, the + types of the value aremanaged by the DataType API and accessed via the Property task. +

+ +

+ Now if you wanted to change a certain component of the system - lets say the ProjectBuilder + component. You instead want to use a component that you wrote yourself that builds a project + with the result of a xslt + xml -> xml process so that you can use static templating. The + way to do this would be to set the property "ant.comp.builder" to + "com.biz.ant.MyXSLTProjectBuilder" before handing the properties to the FrontEnd API. The + FrontEnd API would then wire together the components appropriately and the same process as + documented above would be used. Other components can be replaced in a similar manner. For + a full list of properties that can be set see the default FrontEnd implementation. +

+ +

+ Now instead of replacing a component in the system say you wanted to add an extra task. In + this case you would create a task "com.biz.ant.tasks.ProcessFile" that extends + "org.apache.ant.tasklet.AbstractTasklet". You would then implement run() method to do the + work and and setter methods to accept parameters. The run method can throw AntException if + the task fails for any reason. The setter methods are in format of Ant1.x setters with one + extention. The extention allows '-' characters to appear in xml names and these will be + transferred into capitalisation of next character in java names. ie file-permission + attribute --> setFilePermission() method. After implementing this task you would have + to define it in taskdef.xml of it's archive or else define it with a taskdef construct. +

+ +

+ In a similar method new converters and datatypes can be added to the system. For example + if you needed to add a TestSet datatype that held a list of test names then this would + be possible. You could also add a converter that converted a list of comma separated + strings into a TestSet. +

+ +

+ The one thing that this proposal does not address is validation concerns. You will notice + that the above is mainly aimed to reduce the complexity for task developers. Where in 1.x + you had to manage convertion manually (depending on version of Ant) and also had to explcitly + incorporate support for datatypes manually. The one other concern that was coded into every + task was validation. ie Were the correct parameters set ? It would be desirable to be able to + associate meta-information with the task that indicated the required parameters. This would + reduce the workload on task developers even more and encourage better task structure. This + is a future TODO. +

+ +
+ +

A Rose by any other name ...

+ +
+

+ The name Myrmidon is a derivation of a mythological name for some anst that were turned + into soldiers by the god Zeus. It came to mean "a subordinate who executes orders + unquestioningly" which seemed suitable for a task execution/build tool. A more complete + description stolen from + http://bondi-blue.parlez.com/previous_words/myrmidon.txt. +

+ + + The appellation Myrmidon was derived from the Greek word "myrmex", + meaning ant. According to Greek mythology, the Myrmidons were + transformed into humans by the god Zeus as an act of kindness to his + son Aeacus. King Aeacus, captivated by a colony of ants, prayed + that he should receive an increase in population equal to the + number of ants before him. When he awoke the next day, the ants + were his human subjects. Thereafter, they were known as the + Myrmidons. See "The Iliad" for Homers' account of the Myrmidons + during the Trojan War. + + +
+ + + \ No newline at end of file diff --git a/proposal/myrmidon/bin/ant b/proposal/myrmidon/tools/bin/ant similarity index 96% rename from proposal/myrmidon/bin/ant rename to proposal/myrmidon/tools/bin/ant index 5c173016e..981f08427 100644 --- a/proposal/myrmidon/bin/ant +++ b/proposal/myrmidon/tools/bin/ant @@ -40,7 +40,7 @@ fi LOCALCLASSPATH=`echo $ANT_HOME/lib/*.jar | tr ' ' ':'` if [ "$CLASSPATH" != "" ] ; then - LOCALCLASSPATH=$CLASSPATH:$LOCALCLASSPATH + LOCALCLASSPATH=$LOCALCLASSPATH:$CLASSPATH fi if [ "$JAVA_HOME" != "" ] ; then diff --git a/proposal/myrmidon/bin/ant.bat b/proposal/myrmidon/tools/bin/ant.bat similarity index 98% rename from proposal/myrmidon/bin/ant.bat rename to proposal/myrmidon/tools/bin/ant.bat index 7bc211643..597475a9d 100755 --- a/proposal/myrmidon/bin/ant.bat +++ b/proposal/myrmidon/tools/bin/ant.bat @@ -1,4 +1,4 @@ -rem @echo off +@echo off rem find ANT_HOME if not "%ANT_HOME%"=="" goto checkJava diff --git a/proposal/myrmidon/bin/antRun b/proposal/myrmidon/tools/bin/antRun similarity index 100% rename from proposal/myrmidon/bin/antRun rename to proposal/myrmidon/tools/bin/antRun diff --git a/proposal/myrmidon/bin/antRun.bat b/proposal/myrmidon/tools/bin/antRun.bat similarity index 92% rename from proposal/myrmidon/bin/antRun.bat rename to proposal/myrmidon/tools/bin/antRun.bat index a0dd015af..08e03519c 100755 --- a/proposal/myrmidon/bin/antRun.bat +++ b/proposal/myrmidon/tools/bin/antRun.bat @@ -2,7 +2,7 @@ cd %1 set ANT_RUN_CMD=%2 -shift +shift shift %ANT_RUN_CMD% %1 %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/proposal/myrmidon/bin/fixPath.awk b/proposal/myrmidon/tools/bin/fixPath.awk similarity index 100% rename from proposal/myrmidon/bin/fixPath.awk rename to proposal/myrmidon/tools/bin/fixPath.awk diff --git a/proposal/myrmidon/bin/lcp.bat b/proposal/myrmidon/tools/bin/lcp.bat similarity index 97% rename from proposal/myrmidon/bin/lcp.bat rename to proposal/myrmidon/tools/bin/lcp.bat index 7afeda50c..8feb0d0fe 100755 --- a/proposal/myrmidon/bin/lcp.bat +++ b/proposal/myrmidon/tools/bin/lcp.bat @@ -1 +1,2 @@ set LOCALCLASSPATH=%LOCALCLASSPATH%;%1 + diff --git a/proposal/myrmidon/tools/lib/ant.jar b/proposal/myrmidon/tools/lib/ant.jar new file mode 100644 index 0000000000000000000000000000000000000000..f9bb3a72d4dbb6badda7da8ddc09ed9e47f8ca6a GIT binary patch literal 283428 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

b9wb+P+ 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Α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 V0jV4ZrwIJ_158;_kb}^P^FR6eCBy&# literal 0 HcmV?d00001

_{tup|}^_8)P$T$uz1LbMJpFrCMiB0HAr?WKTg) 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 delta 60899 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 Donald
+ */ +public interface AntEngine + extends Component, Initializable, Disposable +{ + /** + * Setup basic properties of engine. + * Called before init() and can be used to specify alternate components in system. + * + * @param properties the properties + */ + void setProperties( Properties properties ); + + /** + * Retrieve builder for runtime. + * Valid after init() call + * + * @return the ProjectBuilder + */ + ProjectBuilder getProjectBuilder(); + + /** + * Retrieve project engine for runtime. + * Valid after init() call + * + * @return the ProjectBuilder + */ + ProjectEngine getProjectEngine(); +} diff --git a/proposal/myrmidon/src/java/org/apache/ant/DefaultAntEngine.java b/proposal/myrmidon/src/java/org/apache/ant/DefaultAntEngine.java new file mode 100644 index 000000000..9319e5efe --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/ant/DefaultAntEngine.java @@ -0,0 +1,410 @@ +/* + * Copyright (C) The Apache Software Foundation. All rights reserved. + * + * This software is published under the terms of the Apache Software License + * version 1.1, a copy of which has been included with this distribution in + * the LICENSE file. + */ +package org.apache.ant; + +import java.io.File; +import java.util.Properties; +import org.apache.ant.configuration.Configurer; +import org.apache.ant.convert.ConverterEngine; +import org.apache.ant.datatypes.DataTypeEngine; +import org.apache.ant.project.ProjectBuilder; +import org.apache.ant.project.ProjectEngine; +import org.apache.ant.tasklet.JavaVersion; +import org.apache.ant.tasklet.engine.TaskletEngine; +import org.apache.ant.tasklet.engine.TskDeployer; +import org.apache.avalon.AbstractLoggable; +import org.apache.avalon.Component; +import org.apache.avalon.Composer; +import org.apache.avalon.DefaultComponentManager; +import org.apache.avalon.Initializable; +import org.apache.avalon.camelot.CamelotUtil; +import org.apache.avalon.camelot.DefaultFactory; +import org.apache.avalon.camelot.Deployer; +import org.apache.avalon.camelot.Factory; +import org.apache.avalon.util.ObjectUtil; +import org.apache.avalon.util.io.FileUtil; + +/** + * Default implementation of Ant runtime. + * + * @author Peter Donald + */ +public class DefaultAntEngine + extends AbstractLoggable + implements AntEngine, Initializable +{ + protected ConverterEngine m_converterEngine; + protected DataTypeEngine m_dataTypeEngine; + protected TaskletEngine m_taskletEngine; + protected ProjectEngine m_projectEngine; + + protected ProjectBuilder m_builder; + protected TskDeployer m_deployer; + protected Configurer m_configurer; + + protected Factory m_factory; + + protected DefaultComponentManager m_componentManager; + protected Properties m_properties; + protected Properties m_defaults; + + protected File m_homeDir; + protected File m_binDir; + protected File m_libDir; + protected File m_taskLibDir; + + /** + * Setup basic properties of engine. + * Called before init() and can be used to specify alternate components in system. + * + * @param properties the properties + */ + public void setProperties( final Properties properties ) + { + m_properties = properties; + } + + /** + * Retrieve builder for runtime. + * Valid after init() call + * + * @return the ProjectBuilder + */ + public ProjectBuilder getProjectBuilder() + { + return m_builder; + } + + /** + * Retrieve project engine for runtime. + * Valid after init() call + * + * @return the ProjectBuilder + */ + public ProjectEngine getProjectEngine() + { + return m_projectEngine; + } + + /** + * Initialize the system. + * + * @exception Exception if an error occurs + */ + public void init() + throws Exception + { + //setup default properties + m_defaults = createDefaultProperties(); + + //create all the components + m_factory = new DefaultFactory(); + createComponents(); + + //setup the component manager + m_componentManager = createComponentManager(); + + setupComponents(); + + setupFiles(); + + CamelotUtil.deployFromDirectory( m_deployer, m_taskLibDir, ".tsk" ); + } + + /** + * Dispose engine. + * + * @exception Exception if an error occurs + */ + public void dispose() + throws Exception + { + m_converterEngine = null; + m_dataTypeEngine = null; + m_taskletEngine = null; + m_projectEngine = null; + m_builder = null; + m_deployer = null; + m_configurer = null; + m_factory = null; + m_componentManager = null; + m_properties = null; + m_defaults = null; + m_homeDir = null; + m_binDir = null; + m_libDir = null; + m_taskLibDir = null; + } + + /** + * Create default properties which includes default names of all components. + * Overide this in sub-classes to change values. + * + * @return the Properties + */ + protected Properties createDefaultProperties() + { + final Properties defaults = new Properties(); + + //create all the default properties for files/directories + defaults.setProperty( "ant.path.bin", "bin" ); + defaults.setProperty( "ant.path.lib", "lib" ); + defaults.setProperty( "ant.path.task-lib", "lib" ); + + //create all the default properties for components + defaults.setProperty( "ant.comp.converter", + "org.apache.ant.convert.DefaultConverterEngine" ); + defaults.setProperty( "ant.comp.datatype", + "org.apache.ant.datatypes.DefaultDataTypeEngine" ); + defaults.setProperty( "ant.comp.tasklet", + "org.apache.ant.tasklet.engine.DefaultTaskletEngine" ); + defaults.setProperty( "ant.comp.project", + "org.apache.ant.project.DefaultProjectEngine" ); + defaults.setProperty( "ant.comp.builder", + "org.apache.ant.project.DefaultProjectBuilder" ); + defaults.setProperty( "ant.comp.deployer", + "org.apache.ant.tasklet.engine.DefaultTskDeployer" ); + defaults.setProperty( "ant.comp.configurer", + "org.apache.ant.configuration.DefaultConfigurer" ); + + return defaults; + } + + /** + * Create a ComponentManager containing all components in engine. + * + * @return the ComponentManager + */ + protected DefaultComponentManager createComponentManager() + { + final DefaultComponentManager componentManager = new DefaultComponentManager(); + + componentManager.put( "org.apache.ant.tasklet.engine.TaskletEngine", m_taskletEngine ); + componentManager.put( "org.apache.ant.project.ProjectEngine", m_projectEngine ); + componentManager.put( "org.apache.ant.convert.ConverterEngine", m_converterEngine ); + componentManager.put( "org.apache.ant.convert.Converter", m_converterEngine ); + componentManager.put( "org.apache.ant.datatypes.DataTypeEngine", m_dataTypeEngine ); + componentManager.put( "org.apache.ant.project.ProjectBuilder", m_builder ); + componentManager.put( "org.apache.ant.tasklet.engine.TskDeployer", m_deployer ); + componentManager.put( "org.apache.avalon.camelot.Factory", m_factory ); + componentManager.put( "org.apache.ant.configuration.Configurer", m_configurer ); + + return componentManager; + } + + /** + * Create all required components. + * + * @exception Exception if an error occurs + */ + protected void createComponents() + throws Exception + { + String component = null; + + component = getProperty( "ant.comp.converter" ); + m_converterEngine = (ConverterEngine)createComponent( component, ConverterEngine.class ); + + component = getProperty( "ant.comp.datatype" ); + m_dataTypeEngine = (DataTypeEngine)createComponent( component, DataTypeEngine.class ); + + component = getProperty( "ant.comp.tasklet" ); + m_taskletEngine = (TaskletEngine)createComponent( component, TaskletEngine.class ); + + component = getProperty( "ant.comp.project" ); + m_projectEngine = (ProjectEngine)createComponent( component, ProjectEngine.class ); + + component = getProperty( "ant.comp.builder" ); + m_builder =(ProjectBuilder)createComponent( component, ProjectBuilder.class ); + + component = getProperty( "ant.comp.deployer" ); + m_deployer = (TskDeployer)createComponent( component, TskDeployer.class ); + + component = getProperty( "ant.comp.configurer" ); + m_configurer = (Configurer)createComponent( component, Configurer.class ); + } + + /** + * Setup all the components. (ir run all required lifecycle methods). + * + * @exception Exception if an error occurs + */ + protected void setupComponents() + throws Exception + { + setupComponent( m_factory ); + setupComponent( m_converterEngine ); + setupComponent( m_dataTypeEngine ); + setupComponent( m_taskletEngine ); + setupComponent( m_projectEngine ); + setupComponent( m_builder ); + setupComponent( m_deployer ); + setupComponent( m_configurer ); + } + + /** + * Setup an individual component. + * + * @param component the component + * @exception Exception if an error occurs + */ + protected void setupComponent( final Component component ) + throws Exception + { + setupLogger( component ); + + if( component instanceof Composer ) + { + ((Composer)component).compose( m_componentManager ); + } + + if( component instanceof Initializable ) + { + ((Initializable)component).init(); + } + } + + /** + * Setup all the files attributes. + */ + protected void setupFiles() + { + String filepath = null; + + filepath = getProperty( "ant.home" ); + m_homeDir = (new File( filepath )).getAbsoluteFile(); + checkDirectory( m_homeDir, "ant-home" ); + + filepath = getProperty( "ant.path.bin" ); + m_binDir = resolveDirectory( filepath, "bin-dir" ); + + filepath = getProperty( "ant.path.lib" ); + m_libDir = resolveDirectory( filepath, "lib-dir" ); + + filepath = getProperty( "ant.path.task-lib" ); + m_taskLibDir = resolveDirectory( filepath, "task-lib-dir" ); + } + + /** + * Retrieve value of named property. + * First access passed in properties and then the default properties. + * + * @param name the name of property + * @return the value of property or null + */ + protected String getProperty( final String name ) + { + String value = m_properties.getProperty( name ); + + if( null == value ) + { + value = m_defaults.getProperty( name ); + } + + return value; + } + + /** + * Resolve a directory relative to another base directory. + * + * @param dir the base directory + * @param name the relative directory + * @return the created File + * @exception AntException if an error occurs + */ + protected File resolveDirectory( final String dir, final String name ) + throws AntException + { + final File file = FileUtil.resolveFile( m_homeDir, dir ); + checkDirectory( file, name ); + return file; + } + + /** + * Verify file is a directory else throw an exception. + * + * @param file the File + * @param name the name of file type (used in error messages) + */ + protected void checkDirectory( final File file, final String name ) + throws AntException + { + if( !file.exists() ) + { + throw new AntException( name + " (" + file + ") does not exist" ); + } + else if( !file.isDirectory() ) + { + throw new AntException( name + " (" + file + ") is not a directory" ); + } + } + + /** + * Helper method to retrieve current JVM version. + * Basically stolen from original Ant sources. + * + * @return the current JVM version + */ + protected JavaVersion getJavaVersion() + { + JavaVersion version = JavaVersion.JAVA1_0; + + try + { + Class.forName( "java.lang.Void" ); + version = JavaVersion.JAVA1_1; + Class.forName( "java.lang.ThreadLocal" ); + version = JavaVersion.JAVA1_2; + Class.forName( "java.lang.StrictMath" ); + version = JavaVersion.JAVA1_3; + } + catch( final ClassNotFoundException cnfe ) {} + + return version; + } + + /** + * Create a component that implements an interface. + * + * @param component the name of the component + * @param clazz the name of interface/type + * @return the created object + * @exception AntException if an error occurs + */ + protected Object createComponent( final String component, final Class clazz ) + throws AntException + { + try + { + final Object object = ObjectUtil.createObject( component ); + + if( !clazz.isInstance( object ) ) + { + throw new AntException( "Object " + component + " is not an instance of " + + clazz ); + } + + return object; + } + catch( final IllegalAccessException iae ) + { + throw new AntException( "Non-public constructor for " + clazz + " " + component, + iae ); + } + catch( final InstantiationException ie ) + { + throw new AntException( "Error instantiating class for " + clazz + " " + component, + ie ); + } + catch( final ClassNotFoundException cnfe ) + { + throw new AntException( "Could not find the class for " + clazz + + " (" + component + ")", cnfe ); + } + } +} diff --git a/proposal/myrmidon/src/java/org/apache/ant/FrontEnd.java b/proposal/myrmidon/src/java/org/apache/ant/FrontEnd.java new file mode 100644 index 000000000..dae62796a --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/ant/FrontEnd.java @@ -0,0 +1,18 @@ +/* + * Copyright (C) The Apache Software Foundation. All rights reserved. + * + * This software is published under the terms of the Apache Software License + * version 1.1, a copy of which has been included with this distribution in + * the LICENSE file. + */ +package org.apache.ant; + +/** + * Interface for front end. + * + * @author Peter Donald + * @author James Duncan Davidson (duncan@apache.org) + */ +public interface FrontEnd +{ +} diff --git a/proposal/myrmidon/src/java/org/apache/ant/Main.java b/proposal/myrmidon/src/java/org/apache/ant/Main.java index a5424a039..c258664b2 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/Main.java +++ b/proposal/myrmidon/src/java/org/apache/ant/Main.java @@ -15,25 +15,26 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; -import java.net.URLClassLoader; import java.util.ArrayList; import java.util.HashMap; -import java.util.Map; import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.Properties; +import org.apache.ant.launcher.AntClassLoader; import org.apache.ant.launcher.AntLoader; -import org.apache.ant.project.DefaultProjectEngine; +import org.apache.ant.project.LogTargetToListenerAdapter; import org.apache.ant.project.Project; import org.apache.ant.project.ProjectBuilder; import org.apache.ant.project.ProjectEngine; import org.apache.ant.project.ProjectListener; -import org.apache.ant.project.LogTargetToListenerAdapter; import org.apache.ant.tasklet.JavaVersion; import org.apache.ant.tasklet.TaskletContext; import org.apache.ant.tasklet.engine.TaskletEngine; -import org.apache.ant.tasklet.engine.TskDeployer; import org.apache.avalon.Disposable; import org.apache.avalon.Initializable; +import org.apache.avalon.camelot.CamelotUtil; +import org.apache.avalon.camelot.Deployer; import org.apache.avalon.camelot.DeploymentException; import org.apache.avalon.util.ObjectUtil; import org.apache.avalon.util.StringUtil; @@ -41,7 +42,6 @@ import org.apache.avalon.util.cli.AbstractMain; import org.apache.avalon.util.cli.CLOption; import org.apache.avalon.util.cli.CLOptionDescriptor; import org.apache.avalon.util.io.ExtensionFileFilter; -import org.apache.avalon.util.io.FileUtil; import org.apache.log.Category; import org.apache.log.LogKit; import org.apache.log.Logger; @@ -67,21 +67,11 @@ public class Main protected final static String DEFAULT_LOGLEVEL = "WARN"; //Some defaults for file locations/names - protected final static String DEFAULT_LIB_DIRECTORY = "lib"; - protected final static String DEFAULT_TASKLIB_DIRECTORY = DEFAULT_LIB_DIRECTORY; protected final static String DEFAULT_FILENAME = "build.xmk"; - //some constants that define the classes to be loaded to perform - //particular services - protected final static String DEFAULT_ENGINE = - "org.apache.ant.project.DefaultProjectEngine"; - protected final static String DEFAULT_LISTENER = "org.apache.ant.project.DefaultProjectListener"; - protected final static String DEFAULT_BUILDER = - "org.apache.ant.project.DefaultProjectBuilder"; - //defines for the Command Line options private static final int HELP_OPT = 'h'; private static final int QUIET_OPT = 'q'; @@ -91,8 +81,6 @@ public class Main private static final int DEFINE_OPT = 'D'; private static final int VERSION_OPT = 1; private static final int LISTENER_OPT = 2; - private static final int BIN_DIR_OPT = 3; - private static final int LIB_DIR_OPT = 4; private static final int TASKLIB_DIR_OPT = 5; private static final int INCREMENTAL_OPT = 6; private static final int HOME_DIR_OPT = 7; @@ -102,8 +90,7 @@ public class Main { HELP_OPT, QUIET_OPT, VERBOSE_OPT, FILE_OPT, LOG_LEVEL_OPT, VERSION_OPT, LISTENER_OPT, - DEFINE_OPT - //BIN_DIR_OPT, LIB_DIR_OPT, TASKLIB_DIR_OPT, HOME_DIR_OPT + DEFINE_OPT //TASKLIB_DIR_OPT, HOME_DIR_OPT }; //incompatable options for other logging options @@ -112,15 +99,8 @@ public class Main QUIET_OPT, VERBOSE_OPT, LOG_LEVEL_OPT }; - - protected Logger m_logger; protected ProjectListener m_listener; - protected File m_binDir; protected File m_homeDir; - protected File m_libDir; - protected File m_taskLibDir; - protected File m_buildFile; - protected File m_userDir; /** * Main entry point called to run standard Ant. @@ -134,13 +114,13 @@ public class Main try { main.execute( args ); } catch( final AntException ae ) { - main.m_logger.error( "Error: " + ae.getMessage() ); - main.m_logger.debug( "Exception..." + StringUtil.printStackTrace( ae ) ); + main.getLogger().error( "Error: " + ae.getMessage() ); + main.getLogger().debug( "Exception..." + StringUtil.printStackTrace( ae ) ); } catch( final Throwable throwable ) { - main.m_logger.error( "Error: " + throwable ); - main.m_logger.debug( "Exception..." + StringUtil.printStackTrace( throwable ) ); + main.getLogger().error( "Error: " + throwable ); + main.getLogger().debug( "Exception..." + StringUtil.printStackTrace( throwable ) ); } } @@ -151,7 +131,7 @@ public class Main protected CLOptionDescriptor[] createCLOptions() { //TODO: localise - final CLOptionDescriptor[] options = new CLOptionDescriptor[ 13 ]; + final CLOptionDescriptor[] options = new CLOptionDescriptor[ 11 ]; options[0] = new CLOptionDescriptor( "help", @@ -202,33 +182,21 @@ public class Main INFO_OPT_INCOMPAT ); options[7] = - new CLOptionDescriptor( "bin-dir", - CLOptionDescriptor.ARGUMENT_REQUIRED, - BIN_DIR_OPT, - "the listener for log events." ); - - options[8] = - new CLOptionDescriptor( "lib-dir", - CLOptionDescriptor.ARGUMENT_REQUIRED, - LIB_DIR_OPT, - "the lib directory to scan for jars/zip files." ); - - options[9] = new CLOptionDescriptor( "task-lib-dir", CLOptionDescriptor.ARGUMENT_REQUIRED, TASKLIB_DIR_OPT, "the task lib directory to scan for .tsk files." ); - options[10] = + options[8] = new CLOptionDescriptor( "incremental", CLOptionDescriptor.ARGUMENT_DISALLOWED, INCREMENTAL_OPT, "Run in incremental mode" ); - options[11] = + options[9] = new CLOptionDescriptor( "ant-home", CLOptionDescriptor.ARGUMENT_REQUIRED, HOME_DIR_OPT, "Specify ant home directory" ); - options[12] = + options[10] = new CLOptionDescriptor( "define", CLOptionDescriptor.ARGUMENTS_REQUIRED_2, DEFINE_OPT, @@ -249,11 +217,8 @@ public class Main final ArrayList targets = new ArrayList(); String filename = null; String listenerName = null; - String builderName = null; String logLevel = null; - String binDir = null; String homeDir = null; - String libDir = null; String taskLibDir = null; boolean incremental = false; HashMap defines = new HashMap(); @@ -268,8 +233,6 @@ public class Main case HELP_OPT: usage(); return; case VERSION_OPT: System.out.println( VERSION ); return; case FILE_OPT: filename = option.getArgument(); break; - case BIN_DIR_OPT: binDir = option.getArgument(); break; - case LIB_DIR_OPT: libDir = option.getArgument(); break; case HOME_DIR_OPT: homeDir = option.getArgument(); break; case TASKLIB_DIR_OPT: taskLibDir = option.getArgument(); break; case VERBOSE_OPT: logLevel = "INFO"; break; @@ -284,64 +247,63 @@ public class Main } } - if( null == logLevel ) logLevel = getDefaultLogLevel(); - if( null == listenerName ) listenerName = getDefaultListener(); - if( null == filename ) filename = getDefaultFilename(); - if( null == libDir ) libDir = getDefaultLibDir(); - if( null == taskLibDir ) taskLibDir = getDefaultTaskLibDir(); - if( null == builderName ) builderName = getBuilderNameFor( filename ); - - setupLogger( logLevel ); //handle logging... - setupListener( listenerName ); //handle listener.. - setupDefaultAntDirs(); - - //try to auto-discover the location of ant so that - //can populate classpath with libs/tasks and gain access - //to antRun - if( null == binDir && null == homeDir ) - { - m_homeDir = getDefaultHomeDir(); - m_binDir = m_homeDir.getParentFile(); - } - else if( null == binDir ) // && null != homeDir - { - m_homeDir = getHomeDir( homeDir ); - m_binDir = new File( m_homeDir, "bin" ); - } - else + if( null == logLevel ) logLevel = DEFAULT_LOGLEVEL; + if( null == listenerName ) listenerName = DEFAULT_LISTENER; + if( null == filename ) filename = DEFAULT_FILENAME; + + //handle logging... + setLogger( createLogger( logLevel ) ); + + //if ant home not set then use system property ant.home + //that was set up by launcher. + if( null == homeDir ) homeDir = System.getProperty( "ant.home" ); + + final Properties properties = new Properties(); + properties.setProperty( "ant.home", homeDir ); + + if( null != taskLibDir ) properties.setProperty( "ant.path.task-lib", taskLibDir ); + + m_homeDir = (new File( homeDir )).getAbsoluteFile(); + if( !m_homeDir.isDirectory() ) { - m_binDir = getBinDir( binDir ); - m_homeDir = m_binDir.getParentFile(); + throw new AntException( "ant-home (" + m_homeDir + ") is not a directory" ); } - m_libDir = getLibDir( m_homeDir, libDir ); - m_taskLibDir = getTaskLibDir( m_homeDir, taskLibDir ); - m_buildFile = getFile( filename ); - - m_logger.warn( "Ant Build File: " + m_buildFile ); - m_logger.info( "Ant Home Directory: " + m_homeDir ); - m_logger.info( "Ant Bin Directory: " + m_binDir ); - m_logger.debug( "Ant Lib Directory: " + m_libDir ); - m_logger.debug( "Ant Task Lib Directory: " + m_taskLibDir ); + final File libDir = new File( m_homeDir, "lib" ); + final File buildFile = (new File( filename )).getCanonicalFile(); + if( !buildFile.isFile() ) + { + throw new AntException( "File " + buildFile + " is not a file or doesn't exist" ); + } + //setup classloader so that it will correctly load //the Project/ProjectBuilder/ProjectEngine and all dependencies - setupContextClassLoader( m_libDir ); + final ClassLoader classLoader = createClassLoader( libDir ); + Thread.currentThread().setContextClassLoader( classLoader ); - final Project project = getProject( builderName, m_buildFile ); - setupProjectContext( project, defines ); + //handle listener.. + final ProjectListener listener = createListener( listenerName ); - final ProjectEngine engine = getProjectEngine(); + getLogger().warn( "Ant Build File: " + buildFile ); + getLogger().info( "Ant Home Directory: " + m_homeDir ); + //getLogger().info( "Ant Bin Directory: " + m_binDir ); + //getLogger().debug( "Ant Lib Directory: " + m_libDir ); + //getLogger().debug( "Ant Task Lib Directory: " + m_taskLibDir ); - //make sure Engine is sweet... - if( engine instanceof Initializable ) - { - ((Initializable)engine).init(); - } + final AntEngine antEngine = new DefaultAntEngine(); + setupLogger( antEngine ); + antEngine.setProperties( properties ); + antEngine.init(); - engine.addProjectListener( m_listener ); + final ProjectBuilder builder = antEngine.getProjectBuilder(); + + //create the project + final Project project = builder.build( buildFile ); + setupProjectContext( project, defines ); - deployDefaultTaskLibs( engine, m_taskLibDir ); + final ProjectEngine engine = antEngine.getProjectEngine(); + engine.addProjectListener( listener ); BufferedReader reader = null; @@ -366,44 +328,7 @@ public class Main } - //shutdown engine gracefully if needed - if( engine instanceof Disposable ) - { - ((Disposable)engine).dispose(); - } - } - - /** - * Deploy all tasklibs in tasklib directory into ProjectEngine. - * - * @param engine the ProjectEngine - * @param taskLibDirectory the directory to look for .tsk files - */ - protected void deployDefaultTaskLibs( final ProjectEngine engine, - final File taskLibDirectory ) - - { - final ExtensionFileFilter filter = new ExtensionFileFilter( ".tsk" ); - - final File[] files = taskLibDirectory.listFiles( filter ); - final TskDeployer deployer = engine.getTaskletEngine().getTskDeployer(); - - for( int i = 0; i < files.length; i++ ) - { - final String name = files[ i ].getName(); - - try - { - deployer.deploy( name.substring( 0, name.length() - 4 ), - files[ i ].toURL() ); - } - catch( final MalformedURLException mue ) {} - catch( final DeploymentException de ) - { - throw new AntException( "Failed to deploy task library " + files[ i ], - de ); - } - } + antEngine.dispose(); } /** @@ -436,22 +361,11 @@ public class Main } catch( final AntException ae ) { - m_logger.error( "BUILD FAILED" ); - m_logger.error( "Reason:\n" + StringUtil.printStackTrace( ae, 5, true ) ); + getLogger().error( "BUILD FAILED" ); + getLogger().error( "Reason:\n" + StringUtil.printStackTrace( ae, 5, true ) ); } } - /** - * Setup Logger for a particular log-level. - * This is in seperate method so it can be overidden if sub-classed. - * - * @param logLevel the log-level - */ - protected void setupLogger( final String logLevel ) - { - m_logger = createLogger( logLevel ); - } - /** * Create Logger of appropriate log-level. * @@ -479,39 +393,47 @@ public class Main * * @param listenerName the name of project listener */ - protected void setupListener( final String listenerName ) + protected ProjectListener createListener( final String listenerName ) + throws AntException { - m_listener = createListener( listenerName ); - m_logger.addLogTarget( new LogTargetToListenerAdapter( m_listener ) ); - } + ProjectListener result = null; - /** - * Make sure classloader is setup correctly so can do Class.forName safely - * - * @param libDir the directory to grab all the lib files from - */ - protected void setupContextClassLoader( final File libDir ) - { - setupClassLoader( libDir ); - Thread.currentThread().setContextClassLoader( AntLoader.getLoader() ); + try { result = (ProjectListener)ObjectUtil.createObject( listenerName ); } + catch( final Throwable t ) + { + throw new AntException( "Error creating the listener " + listenerName + + " due to " + StringUtil.printStackTrace( t, 5, true ), + t ); + } + + getLogger().addLogTarget( new LogTargetToListenerAdapter( result ) ); + + return result; } /** - * Setup classloader so that the *current* classloader has access to parsers etc. - * This is a bit of a hack as it assumes that AntLoader was used to load this file - * but it is the only way to add to current classloader safely. + * Try to load all extra zipz/jars from lib directory into CURRENT classloader. * * @param libDir the directory of lib files to add */ - protected void setupClassLoader( final File libDir ) + protected ClassLoader createClassLoader( final File libDir ) { + final ClassLoader candidate = getClass().getClassLoader(); + + if( !(candidate instanceof AntClassLoader) ) + { + getLogger().warn( "Warning: Unable to add entries from " + + "lib-path to classloader" ); + return candidate; + } + + final AntClassLoader classLoader = (AntClassLoader)candidate; + final ExtensionFileFilter filter = new ExtensionFileFilter( new String[] { ".jar", ".zip" } ); final File[] files = libDir.listFiles( filter ); - final AntLoader classLoader = AntLoader.getLoader(); - for( int i = 0; i < files.length; i++ ) { //except for a few *special* files add all the @@ -524,28 +446,8 @@ public class Main catch( final MalformedURLException mue ) {} } } - } - /** - * Using a specified builder create a project from a particular file. - * - * @param builderName the name of the builder class - * @param file the file - * @return the newly created Project - * @exception AntException if an error occurs - * @exception IOException if an error occurs - */ - protected Project getProject( final String builderName, final File file ) - throws AntException, IOException - { - m_logger.debug( "Ant Project Builder: " + builderName ); - final ProjectBuilder builder = createBuilder( builderName ); - builder.setLogger( m_logger ); - - //create the project - final Project project = builder.build( file ); - - return project; + return classLoader; } /** @@ -562,12 +464,11 @@ public class Main { //put these values into defines so that they overide //user-defined proeprties - defines.put( AntContextResources.HOME_DIR, m_homeDir ); - defines.put( AntContextResources.BIN_DIR, m_binDir ); - defines.put( AntContextResources.LIB_DIR, m_libDir ); - defines.put( AntContextResources.TASKLIB_DIR, m_taskLibDir ); - //defines.put( AntContextResources.USER_DIR, m_userDir ); - defines.put( TaskletContext.JAVA_VERSION, getJavaVersion() ); + //defines.put( AntContextResources.HOME_DIR, m_homeDir ); + //defines.put( AntContextResources.BIN_DIR, m_binDir ); + //defines.put( AntContextResources.LIB_DIR, m_libDir ); + //defines.put( AntContextResources.TASKLIB_DIR, m_taskLibDir ); + //defines.put( TaskletContext.JAVA_VERSION, getJavaVersion() ); final TaskletContext context = project.getContext(); addToContext( context, defines ); @@ -593,330 +494,5 @@ public class Main context.setProperty( key, value ); } } - - /** - * Helper method to retrieve current JVM version. - * Basically stolen from original Ant sources. - * - * @return the current JVM version - */ - protected JavaVersion getJavaVersion() - { - JavaVersion version = JavaVersion.JAVA1_0; - - try - { - Class.forName( "java.lang.Void" ); - version = JavaVersion.JAVA1_1; - Class.forName( "java.lang.ThreadLocal" ); - version = JavaVersion.JAVA1_2; - Class.forName( "java.lang.StrictMath" ); - version = JavaVersion.JAVA1_3; - } - catch( final ClassNotFoundException cnfe ) {} - - return version; - } - - /** - * Create and configure project engine - * - * @return the ProjectEngine - */ - protected ProjectEngine getProjectEngine() - { - final ProjectEngine engine = createProjectEngine(); - engine.setLogger( m_logger ); - return engine; - } - - /** - * Create the project engine. - * This is seperate method so that it can be overidden in a sub-class. - * - * @return the new ProjectEngine - */ - protected ProjectEngine createProjectEngine() - { - return (ProjectEngine)createObject( DEFAULT_ENGINE, "project-engine" ); - } - - protected File getHomeDir( final String homeDir ) - throws AntException - { - final File file = (new File( homeDir )).getAbsoluteFile(); - checkDirectory( file, "ant-home" ); - return file; - } - - protected File getBinDir( final String binDir ) - throws AntException - { - File file = (new File( binDir )).getAbsoluteFile(); - if( !file.isDirectory() ) file = file.getParentFile(); - checkDirectory( file, "bin-dir" ); - return file; - } - - protected File getLibDir( final File antHome, String libDir ) - throws AntException - { - return resolveDirectory( antHome, libDir, "lib-dir" ); - } - - protected File getTaskLibDir( final File antHome, final String taskLibDir ) - throws AntException - { - return resolveDirectory( antHome, taskLibDir, "task-lib-dir" ); - } - - protected File resolveDirectory( final File antHome, final String dir, final String name ) - throws AntException - { - final File file = FileUtil.resolveFile( antHome, dir ); - checkDirectory( file, name ); - return file; - } - - protected void checkDirectory( final File file, final String name ) - { - if( !file.exists() ) - { - throw new AntException( name + " (" + file + ") does not exist" ); - } - else if( !file.isDirectory() ) - { - throw new AntException( name + " (" + file + ") is not a directory" ); - } - } - - protected ProjectListener createListener( final String listenerName ) - throws AntException - { - try { return (ProjectListener)createObject( listenerName, "listener" ); } - catch( final ClassCastException cce ) - { - throw new AntException( "Aparently the listener named " + listenerName + - " does not implement the ProjectListener interface", - cce ); - } - } - - protected void setupDefaultAntDirs() - { - final String os = System.getProperty( "os.name" ); - final String userDir = System.getProperty( "user.home" ); - m_userDir = - (new File( getUserLocationFor( os, userDir ) )).getAbsoluteFile(); - } - - /** - * Retrieve default bin-dir value if possible (Otherwise throw an exception). - * - * Lookup OS specific places for ant to be. - * /opt/ant on *BSD ? - * /usr/local/ant on linux ? - * /Program Files/Ant on Win32 ? - * - * @return bin directory - */ - protected File getDefaultHomeDir() - throws AntException - { - if( null != m_userDir ) - { - try - { - checkDirectory( m_userDir, null ); - return m_userDir; - } - catch( final AntException ae ) {} - } - - final String os = System.getProperty( "os.name" ); - final File candidate = - (new File( getSystemLocationFor( os ) )).getAbsoluteFile(); - checkDirectory( candidate, "ant-home" ); - return candidate; - } - - /** - * This determins a mapping from an OS specific place to ants home directory. - * In later versions the mapping should be read from configuration file. - * - * @param os the name of OS - * @return the location of directory - */ - protected String getUserLocationFor( final String os, final String userDir ) - { - if( os.startsWith( "Windows" ) ) - { - return userDir + "\\Ant"; - } - else if( '/' == File.separatorChar ) - { - if( os.startsWith( "Linux" ) ) return userDir + "/ant"; - else return userDir + "/opt/ant"; - } - else - { - return userDir + File.separator + "ant"; - } - } - - /** - * This determins a mapping from an OS specific place to ants home directory. - * In later versions the mapping should be read from configuration file. - * - * @param os the name of OS - * @return the location of directory - */ - protected String getSystemLocationFor( final String os ) - { - if( os.startsWith( "Windows" ) ) - { - return "\\Program Files\\Ant"; - } - else if( '/' == File.separatorChar ) - { - if( os.startsWith( "Linux" ) ) return "/usr/local/ant"; - else return "/opt/ant"; - } - else - { - return File.separator + "ant"; - } - } - - protected String getDefaultLibDir() - { - return DEFAULT_LIB_DIRECTORY; - } - - protected String getDefaultTaskLibDir() - { - return DEFAULT_TASKLIB_DIRECTORY; - } - - /** - * Retrieve default filename. Overide this in base classes to change default. - * - * @return the default filename - */ - protected String getDefaultFilename() - { - return DEFAULT_FILENAME; - } - - /** - * Retrieve default logelevel. Overide this in base classes to change default. - * - * @return the default loglevel - */ - protected String getDefaultLogLevel() - { - return DEFAULT_LOGLEVEL; - } - - /** - * Retrieve default listener. Overide this in base classes to change default. - * - * @return the default listener - */ - protected String getDefaultListener() - { - return DEFAULT_LISTENER; - } - - /** - * Get File object for filename. - * Check that file exists and is not a directory. - * - * @param filename the filename - * @return the file object - * @exception AntException if an error occurs - */ - protected File getFile( final String filename ) - throws AntException, IOException - { - final File file = (new File( filename )).getCanonicalFile(); - - if( !file.exists() ) - { - throw new AntException( "File " + file + " does not exist." ); - } - - if( file.isDirectory() ) - { - throw new AntException( "File " + file + " is a directory." ); - } - - return file; - } - - /** - * Create instance of Builder based on classname. - * - * @param builderName builder class name - * @return the ProjectBuilder - * @exception AntException if an error occurs - */ - protected ProjectBuilder createBuilder( final String builderName ) - throws AntException - { - try { return (ProjectBuilder)createObject( builderName, "builder" ); } - catch( final ClassCastException cce ) - { - throw new AntException( "Aparently the builder named " + builderName + - " does not implement the ProjectBuilder interface", - cce ); - } - } - - /** - * Helper method to create object and throw an apporpriate AntException if creation failed. - * - * @param objectName the classname of object - * @param type the type of object being created (ie builder|listener) - * @return the created object - * @exception AntException if an error occurs - */ - protected Object createObject( final String objectName, final String type ) - throws AntException - { - try - { - return ObjectUtil.createObject( objectName ); - } - catch( final IllegalAccessException iae ) - { - throw new AntException( "Non-public constructor for " + type + " " + objectName, - iae ); - } - catch( final InstantiationException ie ) - { - throw new AntException( "Error instantiating class for " + type + " " + objectName, - ie ); - } - catch( final ClassNotFoundException cnfe ) - { - throw new AntException( "Could not find the class for " + type + " " + objectName, - cnfe ); - } - } - - /** - * Retrieve class name of builder for file. - * Eventually this will look in a registry of file extentions to BuilderNames. - * - * @param filename the filename - * @return the name of Class for Builder - * @exception AntException if an error occurs - */ - protected String getBuilderNameFor( final String filename ) - throws AntException - { - return DEFAULT_BUILDER; - } } diff --git a/proposal/myrmidon/src/java/org/apache/ant/configuration/ConfigurationBuilder.java b/proposal/myrmidon/src/java/org/apache/ant/configuration/ConfigurationBuilder.java index 066b8a661..b2d39f260 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/configuration/ConfigurationBuilder.java +++ b/proposal/myrmidon/src/java/org/apache/ant/configuration/ConfigurationBuilder.java @@ -18,12 +18,6 @@ import org.xml.sax.SAXException; public class ConfigurationBuilder extends org.apache.avalon.DefaultConfigurationBuilder { - public ConfigurationBuilder() - throws SAXException - { - super(); - } - protected org.apache.avalon.SAXConfigurationHandler getHandler() { return new SAXConfigurationHandler(); diff --git a/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfigurer.java b/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfigurer.java index 1dbbfc644..151650634 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfigurer.java +++ b/proposal/myrmidon/src/java/org/apache/ant/configuration/DefaultConfigurer.java @@ -13,9 +13,9 @@ import java.util.ArrayList; import java.util.Iterator; import org.apache.ant.convert.Converter; import org.apache.ant.convert.ConverterException; +import org.apache.avalon.AbstractLoggable; import org.apache.avalon.ComponentManager; -import org.apache.avalon.ComponentNotAccessibleException; -import org.apache.avalon.ComponentNotFoundException; +import org.apache.avalon.ComponentManagerException; import org.apache.avalon.Composer; import org.apache.avalon.ConfigurationException; import org.apache.avalon.Context; @@ -30,6 +30,7 @@ import org.apache.log.Logger; * @author Peter Donald */ public class DefaultConfigurer + extends AbstractLoggable implements Configurer, Composer, Loggable { protected final static String RESERVED_ATTRIBUTES[] = @@ -44,15 +45,9 @@ public class DefaultConfigurer protected final static boolean DEBUG = false; protected Converter m_converter; - protected Logger m_logger; - - public void setLogger( final Logger logger ) - { - m_logger = logger; - } public void compose( final ComponentManager componentManager ) - throws ComponentNotFoundException, ComponentNotAccessibleException + throws ComponentManagerException { m_converter = (Converter)componentManager.lookup( "org.apache.ant.convert.Converter" ); } @@ -206,7 +201,7 @@ public class DefaultConfigurer final Object objectValue = PropertyUtil.resolveProperty( value, context, false ); - setValue( object, objectValue, methods ); + setValue( object, objectValue, methods, context ); } catch( final PropertyException pe ) { @@ -215,7 +210,10 @@ public class DefaultConfigurer } } - protected void setValue( final Object object, Object value, final Method methods[] ) + protected void setValue( final Object object, + Object value, + final Method methods[], + final Context context ) throws ConfigurationException { final Class sourceClass = value.getClass(); @@ -223,7 +221,7 @@ public class DefaultConfigurer for( int i = 0; i < methods.length; i++ ) { - if( setValue( object, value, methods[ i ], sourceClass, source ) ) + if( setValue( object, value, methods[ i ], sourceClass, source, context ) ) { return; } @@ -238,7 +236,8 @@ public class DefaultConfigurer Object value, final Method method, final Class sourceClass, - final String source ) + final String source, + final Context context ) throws ConfigurationException { Class parameterType = method.getParameterTypes()[ 0 ]; @@ -249,7 +248,7 @@ public class DefaultConfigurer try { - value = m_converter.convert( parameterType, value ); + value = m_converter.convert( parameterType, value, context ); } catch( final ConverterException ce ) { @@ -359,7 +358,7 @@ public class DefaultConfigurer protected String getMethodNameFor( final String attribute ) { - return "set" + getJavaNameFor( attribute ); + return "set" + getJavaNameFor( attribute.toLowerCase() ); } protected String getJavaNameFor( final String name ) diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/AbstractConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/AbstractConverter.java index 521cb9295..f1f21e06e 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/AbstractConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/AbstractConverter.java @@ -7,6 +7,8 @@ */ package org.apache.ant.convert; +import org.apache.avalon.Context; + /** * Instances of this interface are used to convert between different types. * @@ -35,10 +37,11 @@ public abstract class AbstractConverter * * @param destination the destination type * @param original the original Object + * @param context the context in which to convert * @return the converted object * @exception Exception if an error occurs */ - public Object convert( final Class destination, final Object original ) + public Object convert( final Class destination, final Object original, Context context ) throws Exception { if( m_destination != destination ) @@ -53,17 +56,18 @@ public abstract class AbstractConverter "instance of " + m_source.getName() ); } - return convert( original ); + return convert( original, context ); } /** * Overide this in a particular converter to do the conversion. * * @param original the original Object + * @param context the context in which to convert * @return the converted object * @exception Exception if an error occurs */ - protected abstract Object convert( Object original ) + protected abstract Object convert( Object original, Context context ) throws Exception; } diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/Converter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/Converter.java index 91f2d37c8..97bf38992 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/Converter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/Converter.java @@ -7,6 +7,8 @@ */ package org.apache.ant.convert; +import org.apache.avalon.Context; + /** * Instances of this interface are used to convert between different types. * @@ -21,9 +23,10 @@ public interface Converter * * @param destination the destinaiton type * @param original the original type + * @param context the context in which to convert * @return the converted object * @exception Exception if an error occurs */ - Object convert( Class destination, Object original ) + Object convert( Class destination, Object original, Context context ) throws ConverterException, Exception; } diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/ConverterEngine.java b/proposal/myrmidon/src/java/org/apache/ant/convert/ConverterEngine.java index 08b2b7485..6408a2c83 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/ConverterEngine.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/ConverterEngine.java @@ -8,13 +8,27 @@ package org.apache.ant.convert; import org.apache.avalon.Component; -import org.apache.avalon.Loggable; import org.apache.avalon.camelot.LocatorRegistry; -import org.apache.log.Logger; +/** + * Converter engine to handle converting between types. + * + * @author Peter Donald + */ public interface ConverterEngine - extends Component, Converter, Loggable + extends Component, Converter { + /** + * Get registry used to locate converters. + * + * @return the LocatorRegistry + */ LocatorRegistry getRegistry(); + + /** + * Get registry for converterInfo objects. + * + * @return the ConverterRegistry + */ ConverterRegistry getInfoRegistry(); } diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterEngine.java b/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterEngine.java index daabefe2c..ceefcedcb 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterEngine.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterEngine.java @@ -8,62 +8,74 @@ package org.apache.ant.convert; import org.apache.ant.AntException; -import org.apache.avalon.Component; -import org.apache.avalon.Initializable; +import org.apache.avalon.AbstractLoggable; +import org.apache.avalon.ComponentManager; +import org.apache.avalon.ComponentManagerException; +import org.apache.avalon.Composer; +import org.apache.avalon.Context; import org.apache.avalon.camelot.DefaultFactory; import org.apache.avalon.camelot.DefaultLocatorRegistry; +import org.apache.avalon.camelot.Factory; import org.apache.avalon.camelot.Locator; import org.apache.avalon.camelot.LocatorRegistry; -import org.apache.log.Logger; +/** + * Converter engine to handle converting between types. + * + * @author Peter Donald + */ public class DefaultConverterEngine - implements ConverterEngine, Initializable + extends AbstractLoggable + implements ConverterEngine, Composer { protected final static boolean DEBUG = false; - protected DefaultFactory m_factory; - protected LocatorRegistry m_registry; - protected ConverterRegistry m_infoRegistry; - protected Logger m_logger; - public void setLogger( final Logger logger ) - { - m_logger = logger; - } + protected Factory m_factory; + protected LocatorRegistry m_registry = new DefaultLocatorRegistry(); + protected ConverterRegistry m_infoRegistry = new DefaultConverterRegistry(); + /** + * Get registry used to locate converters. + * + * @return the LocatorRegistry + */ public LocatorRegistry getRegistry() { return m_registry; } - + + /** + * Get registry for converterInfo objects. + * + * @return the ConverterRegistry + */ public ConverterRegistry getInfoRegistry() { return m_infoRegistry; } - - public void init() - throws Exception - { - m_infoRegistry = createInfoRegistry(); - m_registry = createRegistry(); - m_factory = createFactory(); - } - protected ConverterRegistry createInfoRegistry() - { - return new DefaultConverterRegistry(); - } - - protected LocatorRegistry createRegistry() - { - return new DefaultLocatorRegistry(); - } - - protected DefaultFactory createFactory() + /** + * Retrieve relevent services needed to deploy. + * + * @param componentManager the ComponentManager + * @exception ComponentManagerException if an error occurs + */ + public void compose( final ComponentManager componentManager ) + throws ComponentManagerException { - return new DefaultFactory(); + m_factory = (Factory)componentManager.lookup( "org.apache.avalon.camelot.Factory" ); } - public Object convert( Class destination, final Object original ) + /** + * Convert object to destination type. + * + * @param destination the destination type + * @param original the original object + * @param context the context in which to convert + * @return the converted object + * @exception Exception if an error occurs + */ + public Object convert( Class destination, final Object original, final Context context ) throws Exception { final Class originalClass = original.getClass(); @@ -79,6 +91,7 @@ public class DefaultConverterEngine " to " + destination.getName() ); } + //TODO: Start searching inheritance hierarchy for converter final String name = m_infoRegistry.getConverterInfoName( originalClass.getName(), destination.getName() ); @@ -90,8 +103,9 @@ public class DefaultConverterEngine destination.getName() + " conversion" ); } + //TODO: Start caching converters instead of repeatedly instantiating em. final Locator locator = m_registry.getLocator( name ); final Converter converter = (Converter)m_factory.create( locator, Converter.class ); - return converter.convert( destination, original ); + return converter.convert( destination, original, context ); } } diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterRegistry.java b/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterRegistry.java index 25be194db..e47162cae 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterRegistry.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/DefaultConverterRegistry.java @@ -8,7 +8,7 @@ package org.apache.ant.convert; import java.util.HashMap; -import org.apache.avalon.camelot.AbstractRegistry; +import org.apache.avalon.camelot.DefaultRegistry; import org.apache.avalon.camelot.Info; import org.apache.avalon.camelot.RegistryException; @@ -18,11 +18,16 @@ import org.apache.avalon.camelot.RegistryException; * @author Peter Donald */ public class DefaultConverterRegistry - extends AbstractRegistry + extends DefaultRegistry implements ConverterRegistry { protected final HashMap m_mapping = new HashMap(); + public DefaultConverterRegistry() + { + super( ConverterInfo.class ); + } + /** * Retrieve ConverterInfo that describes converter that converts from source to destination. * @@ -37,6 +42,13 @@ public class DefaultConverterRegistry return (String)map.get( destination ); } + /** + * Overidden method so can add info into mapping. + * + * @param name the name of info + * @param info the Info + * @exception RegistryException if an error occurs + */ protected void checkInfo( final String name, final Info info ) throws RegistryException { @@ -55,9 +67,4 @@ public class DefaultConverterRegistry map.put( destination, name ); } - - protected Class getInfoClass() - { - return ConverterInfo.class; - } } diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToByteConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToByteConverter.java index 64f009cb0..a9d34f014 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToByteConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToByteConverter.java @@ -8,6 +8,7 @@ package org.apache.ant.convert.core; import org.apache.ant.convert.AbstractConverter; +import org.apache.avalon.Context; /** * String to byte converter @@ -22,7 +23,7 @@ public class StringToByteConverter super( String.class, Byte.class ); } - public Object convert( final Object original ) + public Object convert( final Object original, final Context context ) throws Exception { return new Byte( (String)original ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToClassConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToClassConverter.java index 99d6b568a..5ec6280b5 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToClassConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToClassConverter.java @@ -8,6 +8,7 @@ package org.apache.ant.convert.core; import org.apache.ant.convert.AbstractConverter; +import org.apache.avalon.Context; /** * String to class converter @@ -22,7 +23,7 @@ public class StringToClassConverter super( String.class, Class.class ); } - public Object convert( final Object original ) + public Object convert( final Object original, final Context context ) throws Exception { return Class.forName( (String)original ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToDoubleConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToDoubleConverter.java index 9fd30be83..6743a74ad 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToDoubleConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToDoubleConverter.java @@ -8,6 +8,7 @@ package org.apache.ant.convert.core; import org.apache.ant.convert.AbstractConverter; +import org.apache.avalon.Context; /** * String to double converter @@ -22,7 +23,7 @@ public class StringToDoubleConverter super( String.class, Double.class ); } - public Object convert( final Object original ) + public Object convert( final Object original, final Context context ) throws Exception { return new Double( (String)original ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToFileConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToFileConverter.java new file mode 100644 index 000000000..ca5a63574 --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToFileConverter.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) The Apache Software Foundation. All rights reserved. + * + * This software is published under the terms of the Apache Software License + * version 1.1, a copy of which has been included with this distribution in + * the LICENSE file. + */ +package org.apache.ant.convert.core; + +import java.io.File; +import org.apache.ant.convert.AbstractConverter; +import org.apache.ant.tasklet.TaskletContext; +import org.apache.avalon.Context; + +/** + * String to file converter + * + * @author Peter Donald + */ +public class StringToFileConverter + extends AbstractConverter +{ + public StringToFileConverter() + { + super( String.class, File.class ); + } + + public Object convert( final Object original, final Context context ) + throws Exception + { + final TaskletContext taskletContext = (TaskletContext)context; + return taskletContext.resolveFile( (String)original ); + } +} + diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToFloatConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToFloatConverter.java index 53405b1c1..1faec44cb 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToFloatConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToFloatConverter.java @@ -8,6 +8,7 @@ package org.apache.ant.convert.core; import org.apache.ant.convert.AbstractConverter; +import org.apache.avalon.Context; /** * String to float converter @@ -22,7 +23,7 @@ public class StringToFloatConverter super( String.class, Float.class ); } - public Object convert( final Object original ) + public Object convert( final Object original, final Context context ) throws Exception { return new Float( (String)original ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToIntegerConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToIntegerConverter.java index 7bc118077..b6a8d9a90 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToIntegerConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToIntegerConverter.java @@ -8,6 +8,7 @@ package org.apache.ant.convert.core; import org.apache.ant.convert.AbstractConverter; +import org.apache.avalon.Context; /** * String to integer converter. @@ -22,7 +23,7 @@ public class StringToIntegerConverter super( String.class, Integer.class ); } - public Object convert( final Object original ) + public Object convert( final Object original, final Context context ) throws Exception { return new Integer( (String)original ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToLongConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToLongConverter.java index e70f29307..587860a16 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToLongConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToLongConverter.java @@ -8,6 +8,7 @@ package org.apache.ant.convert.core; import org.apache.ant.convert.AbstractConverter; +import org.apache.avalon.Context; /** * String to long converter @@ -22,7 +23,7 @@ public class StringToLongConverter super( String.class, Long.class ); } - public Object convert( final Object original ) + public Object convert( final Object original, final Context context ) throws Exception { return new Long( (String)original ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToShortConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToShortConverter.java index d5f1e7848..294459c52 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToShortConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToShortConverter.java @@ -8,6 +8,7 @@ package org.apache.ant.convert.core; import org.apache.ant.convert.AbstractConverter; +import org.apache.avalon.Context; /** * String to short converter @@ -22,7 +23,7 @@ public class StringToShortConverter super( String.class, Short.class ); } - public Object convert( final Object original ) + public Object convert( final Object original, final Context context ) throws Exception { return new Short( (String)original ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToURLConverter.java b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToURLConverter.java index ce262e182..4cde1b5b6 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToURLConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/convert/core/StringToURLConverter.java @@ -9,6 +9,7 @@ package org.apache.ant.convert.core; import java.net.URL; import org.apache.ant.convert.AbstractConverter; +import org.apache.avalon.Context; /** * String to url converter @@ -23,7 +24,7 @@ public class StringToURLConverter super( String.class, URL.class ); } - public Object convert( final Object original ) + public Object convert( final Object original, final Context context ) throws Exception { return new URL( (String)original ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/datatypes/DataTypeEngine.java b/proposal/myrmidon/src/java/org/apache/ant/datatypes/DataTypeEngine.java index db51c1458..7b7f00fe1 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/datatypes/DataTypeEngine.java +++ b/proposal/myrmidon/src/java/org/apache/ant/datatypes/DataTypeEngine.java @@ -13,11 +13,31 @@ import org.apache.avalon.camelot.FactoryException; import org.apache.avalon.camelot.LocatorRegistry; import org.apache.avalon.camelot.RegistryException; +/** + * This is basically a engine that can be used to access data-types. + * The engine acts as a repository and factory for these types. + * + * @author Peter Donald + */ public interface DataTypeEngine - extends Component, Loggable + extends Component { + /** + * Retrieve registry of data-types. + * This is used by deployer to add types into engine. + * + * @return the registry + */ LocatorRegistry getRegistry(); + /** + * Create a data-type of type registered under name. + * + * @param name the name of data type + * @return the DataType + * @exception RegistryException if an error occurs + * @exception FactoryException if an error occurs + */ DataType createDataType( String name ) throws RegistryException, FactoryException; } diff --git a/proposal/myrmidon/src/java/org/apache/ant/datatypes/DefaultDataTypeEngine.java b/proposal/myrmidon/src/java/org/apache/ant/datatypes/DefaultDataTypeEngine.java index 3dc2f1cc4..86c509727 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/datatypes/DefaultDataTypeEngine.java +++ b/proposal/myrmidon/src/java/org/apache/ant/datatypes/DefaultDataTypeEngine.java @@ -7,65 +7,62 @@ */ package org.apache.ant.datatypes; -import org.apache.ant.AntException; -import org.apache.avalon.Initializable; -import org.apache.avalon.Loggable; -import org.apache.avalon.camelot.DefaultFactory; +import org.apache.avalon.Composer; +import org.apache.avalon.ComponentManager; +import org.apache.avalon.ComponentManagerException; +import org.apache.avalon.Composer; import org.apache.avalon.camelot.DefaultLocatorRegistry; +import org.apache.avalon.camelot.Factory; +import org.apache.avalon.camelot.FactoryException; import org.apache.avalon.camelot.Locator; import org.apache.avalon.camelot.LocatorRegistry; import org.apache.avalon.camelot.RegistryException; -import org.apache.avalon.camelot.FactoryException; -import org.apache.log.Logger; +/** + * This is basically a engine that can be used to access data-types. + * The engine acts as a repository and factory for these types. + * + * @author Peter Donald + */ public class DefaultDataTypeEngine - implements DataTypeEngine, Initializable + implements DataTypeEngine, Composer { - protected DefaultFactory m_factory; - protected LocatorRegistry m_registry; - protected Logger m_logger; - - public void setLogger( final Logger logger ) - { - m_logger = logger; - } + protected Factory m_factory; + protected LocatorRegistry m_registry = new DefaultLocatorRegistry(); + /** + * Retrieve registry of data-types. + * This is used by deployer to add types into engine. + * + * @return the registry + */ public LocatorRegistry getRegistry() { return m_registry; } - public void init() - throws Exception - { - m_registry = createRegistry(); - setupComponent( m_registry ); - - m_factory = createFactory(); - setupComponent( m_factory ); - } - - protected void setupComponent( final Object object ) - throws Exception - { - if( object instanceof Loggable ) - { - ((Loggable)object).setLogger( m_logger ); - } - } - - protected LocatorRegistry createRegistry() - { - return new DefaultLocatorRegistry(); - } - - protected DefaultFactory createFactory() + /** + * Retrieve relevent services needed to deploy. + * + * @param componentManager the ComponentManager + * @exception ComponentManagerException if an error occurs + */ + public void compose( final ComponentManager componentManager ) + throws ComponentManagerException { - return new DefaultFactory(); + m_factory = (Factory)componentManager.lookup( "org.apache.avalon.camelot.Factory" ); } + /** + * Create a data-type of type registered under name. + * + * @param name the name of data type + * @return the DataType + * @exception RegistryException if an error occurs + * @exception FactoryException if an error occurs + */ public DataType createDataType( final String name ) - throws RegistryException, FactoryException + throws RegistryException, FactoryException { final Locator locator = m_registry.getLocator( name ); return (DataType)m_factory.create( locator, DataType.class ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/datatypes/Pattern.java b/proposal/myrmidon/src/java/org/apache/ant/datatypes/Pattern.java index ca64161ee..4b7cfbcdc 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/datatypes/Pattern.java +++ b/proposal/myrmidon/src/java/org/apache/ant/datatypes/Pattern.java @@ -8,6 +8,7 @@ package org.apache.ant.datatypes; import org.apache.ant.AntException; +import org.apache.ant.util.Condition; /** * Basic data type for holding patterns. @@ -20,21 +21,43 @@ public class Pattern protected String m_name; protected Condition m_condition; + /** + * Retrieve name (aka value) of pattern. + * + * @return the name/value of pattern + */ public String getName() { return m_name; } + /** + * Get condition associated with pattern if any. + * + * @return the Condition + */ public Condition getCondition() { return m_condition; } + /** + * Setter method for name/value of pattern. + * Conforms to ant setter patterns + * + * @param name the value + */ public void setName( final String name ) { m_name = name; } + /** + * Set if clause on pattern. + * + * @param condition the condition + * @exception AntException if an error occurs + */ public void setIf( final String condition ) throws AntException { @@ -42,6 +65,12 @@ public class Pattern m_condition = new Condition( true, condition ); } + /** + * Set unless clause of pattern. + * + * @param condition the unless clause + * @exception AntException if an error occurs + */ public void setUnless( final String condition ) throws AntException { @@ -49,6 +78,12 @@ public class Pattern m_condition = new Condition( false, condition ); } + /** + * Utility method to make sure condition unset. + * Made so that it is not possible for both if and unless to be set. + * + * @exception AntException if an error occurs + */ protected void verifyConditionNull() throws AntException { diff --git a/proposal/myrmidon/src/java/org/apache/ant/launcher/AntClassLoader.java b/proposal/myrmidon/src/java/org/apache/ant/launcher/AntClassLoader.java new file mode 100644 index 000000000..47cdbd6bf --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/ant/launcher/AntClassLoader.java @@ -0,0 +1,56 @@ +/* + * Copyright (C) The Apache Software Foundation. All rights reserved. + * + * This software is published under the terms of the Apache Software License + * version 1.1, a copy of which has been included with this distribution in + * the LICENSE file. + */ +package org.apache.ant.launcher; + +import java.io.File; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.StringTokenizer; + +/** + * Basic classloader that allows modification at runtime. + * + * @author Peter Donald + */ +public final class AntClassLoader + extends URLClassLoader +{ + /** + * Basic constructor. + * + * @param urls the Starting URLS + */ + public AntClassLoader( final URL[] urls ) + { + super( urls ); + } + + /** + * Add a URL to classloader + * + * @param url the url + */ + public void addURL( final URL url ) + { + super.addURL( url ); + } + + /** + * Add an array of URLs to classloader + * + * @param url the url + */ + public void addURLs( final URL[] urls ) + { + for( int i = 0; i < urls.length; i++ ) + { + addURL( urls[ i ] ); + } + } +} diff --git a/proposal/myrmidon/src/java/org/apache/ant/launcher/AntLoader.java b/proposal/myrmidon/src/java/org/apache/ant/launcher/AntLoader.java index 45c3a2e8e..b1ea3a26d 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/launcher/AntLoader.java +++ b/proposal/myrmidon/src/java/org/apache/ant/launcher/AntLoader.java @@ -7,31 +7,22 @@ */ package org.apache.ant.launcher; +import java.io.File; import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; import java.net.URL; import java.net.URLClassLoader; +import java.util.StringTokenizer; /** * Basic Loader that is responsible for all the hackery to get classloader to work. * Other classes can call AntLoader.getLoader() and add to their own classloader. * * @author Peter Donald + * @author Matthew Foemmel */ public final class AntLoader - extends URLClassLoader { - protected static AntLoader c_classLoader; - - public static AntLoader getLoader() - { - if( null == c_classLoader ) - { - c_classLoader = new AntLoader( new URL[ 0 ] ); - } - - return c_classLoader; - } - /** * Magic entry point. * @@ -40,42 +31,67 @@ public final class AntLoader */ public final static void main( final String[] args ) throws Exception - { - final URL archive = new URL( "file:lib/myrmidon.jar" ); - c_classLoader = new AntLoader( new URL[] { archive } ); - + { try { + //actually try to discover the install directory based on where + // the ant.jar is + final File installDirectory = findInstallDir(); + System.setProperty( "ant.home", installDirectory.toString() ); + + //setup classloader appropriately for myrmidon jar + final File archive = + new File( installDirectory, "lib" + File.separator + "myrmidon.jar" ); + final AntClassLoader classLoader = + new AntClassLoader( new URL[] { archive.toURL() } ); + //load class and retrieve appropriate main method. - final Class clazz = c_classLoader.loadClass( "org.apache.ant.Main" ); + final Class clazz = classLoader.loadClass( "org.apache.ant.Main" ); final Method method = clazz.getMethod( "main", new Class[] { args.getClass() } ); //kick the tires and light the fires.... method.invoke( null, new Object[] { args } ); } + catch( final InvocationTargetException ite ) + { + System.err.println( "Error: " + ite.getTargetException().getMessage() ); + ite.getTargetException().printStackTrace(); + } catch( final Throwable throwable ) { + System.err.println( "Error: " + throwable.getMessage() ); throwable.printStackTrace(); } } /** - * Basic constructor. - * - * @param urls the Starting URLS + * Finds the ant.jar file in the classpath. */ - public AntLoader( final URL[] urls ) + protected final static File findInstallDir() + throws Exception { - super( urls ); - } + final String classpath = System.getProperty( "java.class.path" ); + final String pathSeparator = System.getProperty( "path.separator" ); + final StringTokenizer tokenizer = new StringTokenizer( classpath, pathSeparator ); + + while( tokenizer.hasMoreTokens() ) + { + final String element = tokenizer.nextToken(); - /** - * Add a URL to classloader - * - * @param url the url - */ - public void addURL( final URL url ) - { - super.addURL( url ); + if( element.endsWith( "ant.jar" ) ) + { + File file = (new File( element )).getAbsoluteFile(); + file = file.getParentFile(); + + if( null != file ) + { + file = file.getParentFile(); + } + + return file; + } + } + + throw new Exception( "Unable to locate ant.jar in classpath" ); } } diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProject.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProject.java index 2fc70820f..de15a3af3 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProject.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProject.java @@ -16,6 +16,11 @@ import org.apache.ant.AntException; import org.apache.ant.tasklet.DefaultTaskletContext; import org.apache.ant.tasklet.TaskletContext; +/** + * Default project implementation. + * + * @author Peter Donald + */ public class DefaultProject implements Project { @@ -23,42 +28,87 @@ public class DefaultProject protected final HashMap m_targets = new HashMap(); protected Target m_implicitTarget; protected String m_defaultTarget; - + + /** + * Retrieve implicit target. + * The implicit target is top level tasks. + * Currently restricted to property tasks. + * + * @return the Target + */ public Target getImplicitTarget() { return m_implicitTarget; } + /** + * Set ImplicitTarget. + * + * @param target the implicit target + */ public void setImplicitTarget( final Target target ) { m_implicitTarget = target; } - + + /** + * Retrieve a target by name. + * + * @param name the name of target + * @return the Target or null if no target exists with name + */ public Target getTarget( final String targetName ) { return (Target)m_targets.get( targetName ); } - + + /** + * Get name of default target. + * + * @return the default target name + */ public String getDefaultTargetName() { return m_defaultTarget; } - + + /** + * Retrieve names of all targets in project. + * + * @return the iterator of project names + */ public Iterator getTargetNames() { return m_targets.keySet().iterator(); } + /** + * Get project (top-level) context. + * + * @return the context + */ public TaskletContext getContext() { return m_baseContext; } + /** + * Set DefaultTargetName. + * + * @param defaultTarget the default target name + */ public void setDefaultTargetName( final String defaultTarget ) { m_defaultTarget = defaultTarget; } + /** + * Add a target to project. + * + * @param name the name of target + * @param target the Target + * @exception AntException if an error occurs + */ public void addTarget( final String name, final Target target ) throws AntException { diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectBuilder.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectBuilder.java index 2978cbb05..35898a415 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectBuilder.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectBuilder.java @@ -13,54 +13,87 @@ import java.util.Iterator; import org.apache.ant.AntException; import org.apache.ant.configuration.Configuration; import org.apache.ant.configuration.ConfigurationBuilder; -import org.apache.ant.datatypes.Condition; +import org.apache.ant.util.Condition; import org.apache.ant.tasklet.TaskletContext; +import org.apache.avalon.AbstractLoggable; import org.apache.avalon.ConfigurationException; +import org.apache.avalon.util.StringUtil; import org.apache.log.Logger; import org.xml.sax.InputSource; import org.xml.sax.SAXException; +/** + * Default implementation to construct project from a build file. + * + * @author Peter Donald + */ public class DefaultProjectBuilder + extends AbstractLoggable implements ProjectBuilder { - protected final ConfigurationBuilder m_configurationBuilder; - protected Logger m_logger; + protected ConfigurationBuilder m_builder; public DefaultProjectBuilder() { - ConfigurationBuilder builder = null; - try { builder = new ConfigurationBuilder(); } - catch( final SAXException se ) {} - - m_configurationBuilder = builder; - } - - public void setLogger( final Logger logger ) - { - m_logger = logger; + m_builder = new ConfigurationBuilder(); } + /** + * build a project from file. + * + * @param source the source + * @return the constructed Project + * @exception IOException if an error occurs + * @exception AntException if an error occurs + */ public Project build( final File projectFile ) throws IOException, AntException { try { - final String location = projectFile.getCanonicalFile().toURL().toString(); - final InputSource inputSource = new InputSource( location ); - final Configuration configuration = - (Configuration)m_configurationBuilder.build( inputSource ); + final String location = projectFile.getCanonicalFile().toString(); + final Configuration configuration = buildConfiguration( location ); return build( projectFile, configuration ); } - catch( final SAXException se ) - { - throw new AntException( "SAXEception: " + se.getMessage(), se ); - } catch( final ConfigurationException ce ) { throw new AntException( "ConfigurationException: " + ce.getMessage(), ce ); } } + /** + * Utility method to build a Configuration tree from a source. + * Overide this in sub-classes if you want to provide extra + * functionality (ie xslt/css). + * + * @param location the location + * @return the created Configuration + * @exception AntException if an error occurs + * @exception IOException if an error occurs + */ + protected Configuration buildConfiguration( final String location ) + throws AntException, IOException, ConfigurationException + { + try + { + return (Configuration)m_builder.build( location ); + } + catch( final SAXException se ) + { + throw new AntException( "SAXEception: " + se.getMessage(), se ); + } + } + + /** + * build project from configuration. + * + * @param file the file from which configuration was loaded + * @param configuration the configuration loaded + * @return the created Project + * @exception IOException if an error occurs + * @exception AntException if an error occurs + * @exception ConfigurationException if an error occurs + */ protected Project build( final File file, final Configuration configuration ) throws IOException, AntException, ConfigurationException { @@ -68,29 +101,41 @@ public class DefaultProjectBuilder { throw new AntException( "Project file must be enclosed in project element" ); } - + + //get project-level attributes final String baseDirectoryName = configuration.getAttribute( "basedir" ); final String defaultTarget = configuration.getAttribute( "default" ); final String projectName = configuration.getAttribute( "name" ); - final DefaultProject project = new DefaultProject(); - project.setDefaultTargetName( defaultTarget ); - + //determine base directory for project final File baseDirectory = (new File( file.getParentFile(), baseDirectoryName )).getAbsoluteFile(); - m_logger.debug( "Project " + projectName + " base directory: " + baseDirectory ); + getLogger().debug( "Project " + projectName + " base directory: " + baseDirectory ); + + //create project and ... + final DefaultProject project = new DefaultProject(); + project.setDefaultTargetName( defaultTarget ); + //setup basic context of project final TaskletContext context = project.getContext(); context.setProperty( TaskletContext.BASE_DIRECTORY, baseDirectory ); context.setProperty( Project.PROJECT_FILE, file ); context.setProperty( Project.PROJECT, projectName ); + //build using all top-level attributes buildTopLevelProject( project, configuration ); return project; } + /** + * Handle all top level elements in configuration. + * + * @param project the project + * @param configuration the Configuration + * @exception AntException if an error occurs + */ protected void buildTopLevelProject( final DefaultProject project, final Configuration configuration ) throws AntException @@ -102,8 +147,9 @@ public class DefaultProjectBuilder final Configuration element = (Configuration)elements.next(); final String name = element.getName(); + //handle individual elements if( name.equals( "target" ) ) buildTarget( project, element ); - else if( name.equals( "property" ) ) buildProperty( project, element ); + else if( name.equals( "property" ) ) buildImplicitTask( project, element ); else { throw new AntException( "Unknown top-level element " + name + @@ -112,95 +158,88 @@ public class DefaultProjectBuilder } } - protected void buildTarget( final DefaultProject project, - final Configuration configuration ) + /** + * Build a target from configuration. + * + * @param project the project + * @param task the Configuration + */ + protected void buildTarget( final DefaultProject project, final Configuration target ) { - final String name = configuration.getAttribute( "name", null ); - final String depends = configuration.getAttribute( "depends", null ); - final String ifCondition = configuration.getAttribute( "if", null ); - final String unlessCondition = configuration.getAttribute( "unless", null ); + final String name = target.getAttribute( "name", null ); + final String depends = target.getAttribute( "depends", null ); + final String ifCondition = target.getAttribute( "if", null ); + final String unlessCondition = target.getAttribute( "unless", null ); if( null == name ) { throw new AntException( "Discovered un-named target at " + - configuration.getLocation() ); + target.getLocation() ); } - m_logger.debug( "Parsing target: " + name ); + getLogger().debug( "Parsing target: " + name ); if( null != ifCondition && null != unlessCondition ) { throw new AntException( "Discovered invalid target that has both a if and " + - "unless condition at " + configuration.getLocation() ); + "unless condition at " + target.getLocation() ); } Condition condition = null; if( null != ifCondition ) { - m_logger.debug( "Target if condition: " + ifCondition ); + getLogger().debug( "Target if condition: " + ifCondition ); condition = new Condition( true, ifCondition ); } else if( null != unlessCondition ) { - m_logger.debug( "Target unless condition: " + unlessCondition ); + getLogger().debug( "Target unless condition: " + unlessCondition ); condition = new Condition( false, unlessCondition ); } - final DefaultTarget target = new DefaultTarget( condition ); + final DefaultTarget defaultTarget = new DefaultTarget( condition ); + //apply depends attribute if( null != depends ) { - int start = 0; - int end = depends.indexOf( ',' ); + final String[] elements = StringUtil.splitString( depends, "," ); - while( -1 != end ) + for( int i = 0; i < elements.length; i++ ) { - final String dependency = - parseDependency( configuration, depends.substring( start, end ) ); - - target.addDependency( dependency ); - start = end++; - end = depends.indexOf( ',', start ); - } + final String dependency = elements[ i ].trim(); - final String dependency = - parseDependency( configuration, depends.substring( start ) ); + if( 0 == dependency.length() ) + { + throw new AntException( "Discovered empty dependency in target " + + target.getName() + " at " + target.getLocation() ); + } - target.addDependency( dependency ); + getLogger().debug( "Target dependency: " + dependency ); + defaultTarget.addDependency( dependency ); + } } - final Iterator tasks = configuration.getChildren(); + //add all the targets from element + final Iterator tasks = target.getChildren(); while( tasks.hasNext() ) { final Configuration task = (Configuration)tasks.next(); - m_logger.debug( "Parsed task: " + task.getName() ); - target.addTask( task ); - } - - project.addTarget( name, target ); - } - - protected String parseDependency( final Configuration configuration, - String dependency ) - throws AntException - { - dependency = dependency.trim(); - - if( 0 == dependency.length() ) - { - throw new AntException( "Discovered empty dependency in target " + - configuration.getName() + " at " + - configuration.getLocation() ); + getLogger().debug( "Parsed task: " + task.getName() ); + defaultTarget.addTask( task ); } - - m_logger.debug( "Target dependency: " + dependency ); - return dependency; + //add target to project + project.addTarget( name, defaultTarget ); } - protected void buildProperty( final DefaultProject project, - final Configuration configuration ) + /** + * Create an implict task from configuration + * + * @param project the project + * @param task the configuration + */ + protected void buildImplicitTask( final DefaultProject project, final Configuration task ) { DefaultTarget target = (DefaultTarget)project.getImplicitTarget(); @@ -210,7 +249,7 @@ public class DefaultProjectBuilder project.setImplicitTarget( target ); } - m_logger.debug( "Parsed implicit task: " + configuration.getName() ); - target.addTask( configuration ); + getLogger().debug( "Parsed implicit task: " + task.getName() ); + target.addTask( task ); } } diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java index 836a52817..a44aa96c2 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectEngine.java @@ -11,88 +11,80 @@ import java.util.ArrayList; import java.util.Iterator; import org.apache.ant.AntException; import org.apache.ant.configuration.Configuration; -import org.apache.ant.datatypes.Condition; import org.apache.ant.tasklet.DefaultTaskletContext; import org.apache.ant.tasklet.TaskletContext; import org.apache.ant.tasklet.engine.DefaultTaskletEngine; import org.apache.ant.tasklet.engine.TaskletEngine; +import org.apache.ant.util.Condition; +import org.apache.avalon.AbstractLoggable; import org.apache.avalon.Composer; +import org.apache.avalon.ComponentManager; +import org.apache.avalon.DefaultComponentManager; +import org.apache.avalon.ComponentManagerException; import org.apache.avalon.DefaultComponentManager; import org.apache.avalon.Disposable; import org.apache.avalon.Initializable; import org.apache.log.Logger; +/** + * This is the default implementation of ProjectEngine. + * + * @author Peter Donald + */ public class DefaultProjectEngine - implements ProjectEngine, Initializable, Disposable + extends AbstractLoggable + implements ProjectEngine, Composer { protected TaskletEngine m_taskletEngine; - protected Logger m_logger; - protected ProjectListenerSupport m_listenerSupport; + protected ProjectListenerSupport m_listenerSupport = new ProjectListenerSupport(); protected DefaultComponentManager m_componentManager; - public void setLogger( final Logger logger ) - { - m_logger = logger; - } - + /** + * Add a listener to project events. + * + * @param listener the listener + */ public void addProjectListener( final ProjectListener listener ) { m_listenerSupport.addProjectListener( listener ); } - + + /** + * Remove a listener from project events. + * + * @param listener the listener + */ public void removeProjectListener( final ProjectListener listener ) { m_listenerSupport.removeProjectListener( listener ); } - - public void init() - throws Exception - { - m_listenerSupport = new ProjectListenerSupport(); - - setupTaskletEngine(); - - m_componentManager = new DefaultComponentManager(); - m_componentManager.put( "org.apache.ant.project.ProjectEngine", this ); - m_componentManager.put( "org.apache.ant.tasklet.engine.TaskletEngine", m_taskletEngine ); - m_componentManager.put( "org.apache.ant.convert.ConverterEngine", - m_taskletEngine.getConverterEngine() ); - } - - public void dispose() - throws Exception - { - if( m_taskletEngine instanceof Disposable ) - { - ((Disposable)m_taskletEngine).dispose(); - } - } - - public TaskletEngine getTaskletEngine() + + /** + * Retrieve relevent services needed for engine. + * + * @param componentManager the ComponentManager + * @exception ComponentManagerException if an error occurs + */ + public void compose( final ComponentManager componentManager ) + throws ComponentManagerException { - return m_taskletEngine; + m_componentManager = (DefaultComponentManager)componentManager; + m_taskletEngine = (TaskletEngine)componentManager. + lookup( "org.apache.ant.tasklet.engine.TaskletEngine" ); } - protected void setupTaskletEngine() - throws Exception - { - m_taskletEngine = createTaskletEngine(); - m_taskletEngine.setLogger( m_logger ); - - if( m_taskletEngine instanceof Initializable ) - { - ((Initializable)m_taskletEngine).init(); - } - } - - protected TaskletEngine createTaskletEngine() - { - return new DefaultTaskletEngine(); - } - + /** + * Execute a target in a particular project. + * Execute in the project context. + * + * @param project the Project + * @param target the name of the target + * @exception AntException if an error occurs + */ public void execute( final Project project, final String target ) throws AntException { + //HACK: should do this a better way !!!!!! m_componentManager.put( "org.apache.ant.project.Project", project ); final TaskletContext context = project.getContext(); @@ -110,12 +102,29 @@ public class DefaultProjectEngine m_listenerSupport.projectFinished(); } + /** + * Execute a target in a particular project, in a particular context. + * + * @param project the Project + * @param target the name of the target + * @param context the context + * @exception AntException if an error occurs + */ public void execute( Project project, String target, TaskletContext context ) throws AntException { execute( project, target, context, new ArrayList() ); } + /** + * Helper method to execute a target. + * + * @param project the Project + * @param target the name of the target + * @param context the context + * @param done the list of targets already executed in current run + * @exception AntException if an error occurs + */ protected void execute( final Project project, final String targetName, final TaskletContext context, @@ -128,9 +137,11 @@ public class DefaultProjectEngine { throw new AntException( "Unable to find target " + targetName ); } - + + //add target to list of targets executed done.add( targetName ); + //execute all dependencies final Iterator dependencies = target.getDependencies(); while( dependencies.hasNext() ) { @@ -144,41 +155,65 @@ public class DefaultProjectEngine executeTarget( targetName, target, context ); } + /** + * Method to execute a particular target instance. + * + * @param targetName the name of target + * @param target the target + * @param context the context in which to execute + * @exception AntException if an error occurs + */ protected void executeTarget( final String targetName, final Target target, final TaskletContext context ) throws AntException { - m_componentManager.put( "org.apache.ant.project.Target", target ); + //is this necessary ? I think not but .... + // NO it isn't because you set target name and project has already been provided + //m_componentManager.put( "org.apache.ant.project.Target", target ); + //create project context and set target name final TaskletContext targetContext = new DefaultTaskletContext( context ); targetContext.setProperty( Project.TARGET, targetName ); + //notify listeners m_listenerSupport.targetStarted( targetName ); + //actually do the execution work executeTargetWork( targetName, target, targetContext ); + //notify listeners m_listenerSupport.targetFinished(); } + /** + * Do the work associated with target. + * ie execute all tasks + * + * @param name the name of target + * @param target the target + * @param context the context + */ protected void executeTargetWork( final String name, final Target target, final TaskletContext context ) { + //check the condition associated with target. + //if it is not satisfied then skip target final Condition condition = target.getCondition(); - if( null != condition ) { if( false == condition.evaluate( context ) ) { - m_logger.debug( "Skipping target " + name + - " as it does not satisfy condition" ); + getLogger().debug( "Skipping target " + name + + " as it does not satisfy condition" ); return; } } - m_logger.debug( "Executing target " + name ); + getLogger().debug( "Executing target " + name ); + //execute all tasks assciated with target final Iterator tasks = target.getTasks(); while( tasks.hasNext() ) { @@ -187,24 +222,32 @@ public class DefaultProjectEngine } } - protected void executeTask( final Configuration configuration, - final TaskletContext context ) + /** + * Execute a task. + * + * @param task the task definition + * @param context the context + * @exception AntException if an error occurs + */ + protected void executeTask( final Configuration task, final TaskletContext context ) throws AntException { - final String name = configuration.getName(); - m_logger.debug( "Executing task " + name ); + final String name = task.getName(); + getLogger().debug( "Executing task " + name ); //Set up context for task... //is Only necessary if we are multi-threaded //final TaskletContext targetContext = new DefaultTaskletContext( context ); + + //is setting name even necessary ??? context.setProperty( TaskletContext.NAME, name ); //notify listeners m_listenerSupport.taskletStarted( name ); //run task - m_taskletEngine.execute( configuration, context, m_componentManager ); + m_taskletEngine.execute( task, context ); //notify listeners task has ended m_listenerSupport.taskletFinished(); diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java index d3a772eab..8d250afe0 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultProjectListener.java @@ -9,49 +9,95 @@ package org.apache.ant.project; import org.apache.avalon.util.StringUtil; +/** + * Default listener that emulates the old ant listener notifications. + * + * @author Peter Donald + */ public class DefaultProjectListener implements ProjectListener { protected String m_prefix; + /** + * Notify listener of projectStarted event. + * + * @param projectName the projectName + */ public void projectStarted( final String projectName ) { output( "Starting project " + projectName + "\n" ); } - + + /** + * Notify listener of projectFinished event. + */ public void projectFinished() { } + /** + * Notify listener of targetStarted event. + * + * @param targetName the name of target + */ public void targetStarted( final String targetName ) { output( targetName + ":\n" ); } - + + /** + * Notify listener of targetFinished event. + */ public void targetFinished() { } + /** + * Notify listener of taskletStarted event. + * + * @param taskletName the name of tasklet + */ public void taskletStarted( final String taskletName ) { m_prefix = taskletName; } - + + /** + * Notify listener of taskletFinished event. + */ public void taskletFinished() { m_prefix = null; } - + + /** + * Notify listener of log message event. + * + * @param message the message + */ public void log( String message ) { output( message ); } - + + /** + * Notify listener of log message event. + * + * @param message the message + * @param throwable the throwable + */ public void log( String message, Throwable throwable ) { output( message + "\n" + StringUtil.printStackTrace( throwable, 5, true ) ); } + /** + * Utility class to output data. + * Overide in sub-classes to direct to a different destination. + * + * @param data the data + */ protected void output( final String data ) { if( null != m_prefix ) System.out.println( "\t[" + m_prefix + "] " + data ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultTarget.java b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultTarget.java index 952fc3c7f..14389381b 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/DefaultTarget.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/DefaultTarget.java @@ -10,8 +10,13 @@ package org.apache.ant.project; import java.util.ArrayList; import java.util.Iterator; import org.apache.ant.configuration.Configuration; -import org.apache.ant.datatypes.Condition; +import org.apache.ant.util.Condition; +/** + * Default implementation of target. + * + * @author Peter Donald + */ public class DefaultTarget implements Target { @@ -19,36 +24,68 @@ public class DefaultTarget protected final ArrayList m_tasks = new ArrayList(); protected final Condition m_condition; + /** + * Constructor taking condition for target. + * + * @param condition the condition + */ public DefaultTarget( final Condition condition ) { m_condition = condition; } + /** + * Constructor for target with no condition. + */ public DefaultTarget() { this( null ); } - + + /** + * Get condition under which target is executed. + * + * @return the condition for target or null + */ public Condition getCondition() { return m_condition; } - + /** + * Get dependencies of target + * + * @return the dependency list + */ public Iterator getDependencies() { return m_dependencies.iterator(); } + /** + * Get tasks in target + * + * @return the target list + */ public Iterator getTasks() { return m_tasks.iterator(); } + /** + * Add a dependency to target. + * + * @param dependency the dependency + */ public void addDependency( final String dependency ) { m_dependencies.add( dependency ); } + /** + * Add task to target. + * + * @param taskConfiguration the task representation + */ public void addTask( final Configuration taskConfiguration ) { m_tasks.add( taskConfiguration ); diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/LogTargetToListenerAdapter.java b/proposal/myrmidon/src/java/org/apache/ant/project/LogTargetToListenerAdapter.java index 0b32ee08a..38e0a66b0 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/LogTargetToListenerAdapter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/LogTargetToListenerAdapter.java @@ -10,12 +10,21 @@ package org.apache.ant.project; import org.apache.log.LogEntry; import org.apache.log.LogTarget; +/** + * Adapter between Avalon LogKit and Project listener interfaces. + * + * @author Peter Donald + */ public class LogTargetToListenerAdapter implements LogTarget { - protected final ProjectListener m_listener; + /** + * Constructor taking listener to convert to. + * + * @param listener the ProjectListener + */ public LogTargetToListenerAdapter( final ProjectListener listener ) { m_listener = listener; diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/Project.java b/proposal/myrmidon/src/java/org/apache/ant/project/Project.java index af9b87c13..a580e93ce 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/Project.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/Project.java @@ -12,6 +12,11 @@ import org.apache.ant.AntException; import org.apache.ant.tasklet.TaskletContext; import org.apache.avalon.Component; +/** + * Interface through which to interact with projects. + * + * @author Peter Donald + */ public interface Project extends Component { @@ -24,9 +29,41 @@ public interface Project // the name of currently executing target String TARGET = "ant.target.name"; + /** + * Get name of default target. + * + * @return the default target name + */ String getDefaultTargetName(); + + /** + * Retrieve implicit target. + * The implicit target is top level tasks. + * Currently restricted to property tasks. + * + * @return the Target + */ Target getImplicitTarget(); + + /** + * Retrieve a target by name. + * + * @param name the name of target + * @return the Target or null if no target exists with name + */ Target getTarget( String name ); + + /** + * Retrieve names of all targets in project. + * + * @return the iterator of project names + */ Iterator getTargetNames(); + + /** + * Get project (top-level) context. + * + * @return the context + */ TaskletContext getContext(); } diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectBuilder.java b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectBuilder.java index ac98b8097..a6a97c164 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectBuilder.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectBuilder.java @@ -10,13 +10,25 @@ package org.apache.ant.project; import java.io.File; import java.io.IOException; import org.apache.ant.AntException; -import org.apache.log.Logger; +import org.apache.avalon.Component; +/** + * Interface implemented by components that build projects from sources. + * + * @author Peter Donald + */ public interface ProjectBuilder + extends Component { - void setLogger( Logger logger ); - - Project build( File projectFile ) + /** + * build a project from source. + * + * @param source the source + * @return the constructed Project + * @exception IOException if an error occurs + * @exception AntException if an error occurs + */ + Project build( File source ) throws IOException, AntException; } diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java index 6cba6d91f..6902568f1 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectEngine.java @@ -11,21 +11,50 @@ import org.apache.ant.AntException; import org.apache.ant.tasklet.TaskletContext; import org.apache.ant.tasklet.engine.TaskletEngine; import org.apache.avalon.Component; -import org.apache.log.Logger; +/** + * This is the interface between ProjectEngine and rest of the system. + * This is the interface that tasks/frontends must use to interact with + * project execution. + * + * @author Peter Donald + */ public interface ProjectEngine extends Component { - void setLogger( Logger logger ); - - TaskletEngine getTaskletEngine(); - + /** + * Add a listener to project events. + * + * @param listener the listener + */ void addProjectListener( ProjectListener listener ); + + /** + * Remove a listener from project events. + * + * @param listener the listener + */ void removeProjectListener( ProjectListener listener ); + /** + * Execute a target in a particular project. + * Execute in the project context. + * + * @param project the Project + * @param target the name of the target + * @exception AntException if an error occurs + */ void execute( Project project, String target ) throws AntException; + /** + * Execute a target in a particular project, in a particular context. + * + * @param project the Project + * @param target the name of the target + * @param context the context + * @exception AntException if an error occurs + */ void execute( Project project, String target, TaskletContext context ) throws AntException; } diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListener.java b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListener.java index 844534f2e..9495a31c8 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListener.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListener.java @@ -7,17 +7,62 @@ */ package org.apache.ant.project; +/** + * The interface to implement if you want to receive + * notification of project status. + * + * @author Peter Donald + */ public interface ProjectListener { + /** + * Notify listener of projectStarted event. + * + * @param projectName the projectName + */ void projectStarted( String projectName ); + + /** + * Notify listener of projectFinished event. + */ void projectFinished(); + /** + * Notify listener of targetStarted event. + * + * @param targetName the name of target + */ void targetStarted( String targetName ); + + /** + * Notify listener of targetFinished event. + */ void targetFinished(); + /** + * Notify listener of taskletStarted event. + * + * @param taskletName the name of tasklet + */ void taskletStarted( String taskletName ); + + /** + * Notify listener of taskletFinished event. + */ void taskletFinished(); + /** + * Notify listener of log message event. + * + * @param message the message + */ void log( String message ); + + /** + * Notify listener of log message event. + * + * @param message the message + * @param throwable the throwable + */ void log( String message, Throwable throwable ); } diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListenerSupport.java b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListenerSupport.java index f0aba8570..e72a149a1 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListenerSupport.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/ProjectListenerSupport.java @@ -7,11 +7,21 @@ */ package org.apache.ant.project; +/** + * Support for the project listener event dispatching. + * + * @author Peter Donald + */ public class ProjectListenerSupport implements ProjectListener { protected ProjectListener[] m_listeners = new ProjectListener[ 0 ]; + /** + * Add an extra project listener that wants to receive notification of listener events. + * + * @param listener the listener + */ public void addProjectListener( final ProjectListener listener ) { final ProjectListener[] listeners = new ProjectListener[ m_listeners.length + 1 ]; @@ -20,6 +30,11 @@ public class ProjectListenerSupport m_listeners = listeners; } + /** + * Remove a project listener that wants to receive notification of listener events. + * + * @param listener the listener + */ public void removeProjectListener( final ProjectListener listener ) { int found = -1; @@ -44,6 +59,11 @@ public class ProjectListenerSupport m_listeners = listeners; } + /** + * Fire a projectStarted event. + * + * @param projectName the projectName + */ public void projectStarted( final String projectName ) { for( int i = 0; i < m_listeners.length; i++ ) @@ -52,6 +72,9 @@ public class ProjectListenerSupport } } + /** + * Fire a projectFinished event. + */ public void projectFinished() { for( int i = 0; i < m_listeners.length; i++ ) @@ -60,6 +83,11 @@ public class ProjectListenerSupport } } + /** + * Fire a targetStarted event. + * + * @param targetName the name of target + */ public void targetStarted( String targetName ) { for( int i = 0; i < m_listeners.length; i++ ) @@ -68,6 +96,9 @@ public class ProjectListenerSupport } } + /** + * Fire a targetFinished event. + */ public void targetFinished() { for( int i = 0; i < m_listeners.length; i++ ) @@ -76,6 +107,11 @@ public class ProjectListenerSupport } } + /** + * Fire a targetStarted event. + * + * @param targetName the name of target + */ public void taskletStarted( String taskletName ) { for( int i = 0; i < m_listeners.length; i++ ) @@ -84,6 +120,9 @@ public class ProjectListenerSupport } } + /** + * Fire a taskletFinished event. + */ public void taskletFinished() { for( int i = 0; i < m_listeners.length; i++ ) @@ -92,6 +131,11 @@ public class ProjectListenerSupport } } + /** + * Fire a log event. + * + * @param message the log message + */ public void log( String message ) { for( int i = 0; i < m_listeners.length; i++ ) @@ -100,6 +144,12 @@ public class ProjectListenerSupport } } + /** + * Fire a log event. + * + * @param message the log message + * @param throwable the throwable to be logged + */ public void log( String message, Throwable throwable ) { for( int i = 0; i < m_listeners.length; i++ ) diff --git a/proposal/myrmidon/src/java/org/apache/ant/project/Target.java b/proposal/myrmidon/src/java/org/apache/ant/project/Target.java index 419e8c91c..84acdf8ff 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/project/Target.java +++ b/proposal/myrmidon/src/java/org/apache/ant/project/Target.java @@ -8,14 +8,36 @@ package org.apache.ant.project; import java.util.Iterator; +import org.apache.ant.util.Condition; import org.apache.avalon.Component; -import org.apache.ant.datatypes.Condition; +/** + * Interface to represent targets in build file. + * + * @author Peter Donald + */ public interface Target extends Component { + /** + * Get dependencies of target + * + * @return the dependency list + */ Iterator getDependencies(); + + /** + * Get tasks in target + * + * @return the target list + */ Iterator getTasks(); + + /** + * Get condition under which target is executed. + * + * @return the condition for target or null + */ Condition getCondition(); } diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/AbstractTasklet.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/AbstractTasklet.java index 32288933b..ad4bf2333 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/AbstractTasklet.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/AbstractTasklet.java @@ -8,9 +8,9 @@ package org.apache.ant.tasklet; import org.apache.ant.AntException; +import org.apache.avalon.AbstractLoggable; import org.apache.avalon.Context; import org.apache.avalon.Initializable; -import org.apache.log.Logger; /** * This is abstract base class for tasklets. @@ -18,23 +18,13 @@ import org.apache.log.Logger; * @author Peter Donald */ public abstract class AbstractTasklet + extends AbstractLoggable implements Tasklet, Initializable { //the user should set this in constructors of sub-classes protected JavaVersion m_requiredJavaVersion; private TaskletContext m_context; - private Logger m_logger; - - /** - * Receive logger from container. - * - * @param logger the logger - */ - public void setLogger( final Logger logger ) - { - m_logger = logger; - } /** * Retrieve context from container. @@ -79,14 +69,4 @@ public abstract class AbstractTasklet { return m_context; } - - /** - * Convenience method for subclass to get logger. - * - * @return the Logger - */ - protected Logger getLogger() - { - return m_logger; - } } diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/DefaultTaskletContext.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/DefaultTaskletContext.java index f5cb60b0a..7df0f01fd 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/DefaultTaskletContext.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/DefaultTaskletContext.java @@ -87,10 +87,10 @@ public class DefaultTaskletContext * @param filename the filename to resolve * @return the resolved filename */ - public String resolveFilename( final String filename ) + public File resolveFile( final String filename ) { final File result = FileUtil.resolveFile( m_baseDirectory, filename ); - if( null != result ) return result.toString(); + if( null != result ) return result; else return null; } @@ -106,7 +106,7 @@ public class DefaultTaskletContext try { return PropertyUtil.resolveProperty( property, this, false ); } catch( final PropertyException pe ) { - throw new AntException( "Error resolving " + property + " due to " +pe.getMessage(), + throw new AntException( "Error resolving " + property + " due to " + pe.getMessage(), pe ); } } @@ -173,6 +173,14 @@ public class DefaultTaskletContext } } + /** + * put a value in context. + * This put method is overidden so new baseDirectory can be saved + * in member variable. + * + * @param key the key + * @param value the value + */ public void put( final Object key, final Object value ) { if( key.equals( BASE_DIRECTORY ) ) diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/Tasklet.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/Tasklet.java index 1a643c1f2..dbc441848 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/Tasklet.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/Tasklet.java @@ -24,6 +24,6 @@ import org.apache.avalon.Loggable; * @author Peter Donald */ public interface Tasklet - extends Component, Contextualizable, Runnable, Loggable + extends Component, Loggable, Contextualizable, Runnable { } diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/TaskletContext.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/TaskletContext.java index 7f641de9f..bc7c8c13f 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/TaskletContext.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/TaskletContext.java @@ -60,9 +60,9 @@ public interface TaskletContext * different volumes, file conventions etc) * * @param filename the filename to resolve - * @return the resolved filename + * @return the resolved file */ - String resolveFilename( String filename ); + File resolveFile( String filename ); /** * Resolve property. diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java index fd2f16a6f..d7b64ddbf 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTaskletEngine.java @@ -17,8 +17,11 @@ import org.apache.ant.convert.ConverterEngine; import org.apache.ant.datatypes.DataTypeEngine; import org.apache.ant.tasklet.Tasklet; import org.apache.ant.tasklet.TaskletContext; +import org.apache.avalon.AbstractLoggable; import org.apache.avalon.Component; import org.apache.avalon.ComponentManager; +import org.apache.avalon.DefaultComponentManager; +import org.apache.avalon.ComponentManagerException; import org.apache.avalon.Composer; import org.apache.avalon.Context; import org.apache.avalon.Contextualizable; @@ -28,6 +31,7 @@ import org.apache.avalon.Initializable; import org.apache.avalon.Loggable; import org.apache.avalon.camelot.DefaultFactory; import org.apache.avalon.camelot.DefaultLocatorRegistry; +import org.apache.avalon.camelot.Factory; import org.apache.avalon.camelot.FactoryException; import org.apache.avalon.camelot.Locator; import org.apache.avalon.camelot.LocatorRegistry; @@ -35,20 +39,17 @@ import org.apache.avalon.camelot.RegistryException; import org.apache.log.Logger; public class DefaultTaskletEngine - implements TaskletEngine, Initializable + extends AbstractLoggable + implements TaskletEngine, Composer { protected TskDeployer m_tskDeployer; - protected DefaultFactory m_factory; - protected LocatorRegistry m_locatorRegistry; + protected Factory m_factory; + protected LocatorRegistry m_locatorRegistry = new DefaultLocatorRegistry(); protected Configurer m_configurer; - protected Logger m_logger; protected DataTypeEngine m_dataTypeEngine; protected ConverterEngine m_converterEngine; - public void setLogger( final Logger logger ) - { - m_logger = logger; - } + protected ComponentManager m_componentManager; public TskDeployer getTskDeployer() { @@ -74,120 +75,74 @@ public class DefaultTaskletEngine { return m_dataTypeEngine; } - - public void init() - throws Exception - { - //converter must be created before configurerer - //so that it gets placed in configurers componentManager - m_converterEngine = createConverterEngine(); - setupSubComponent( m_converterEngine ); - - m_configurer = createConfigurer(); - setupSubComponent( m_configurer ); - - m_locatorRegistry = createLocatorRegistry(); - m_factory = createFactory(); - setupSubComponent( m_factory ); - - m_dataTypeEngine = createDataTypeEngine(); - setupSubComponent( m_dataTypeEngine ); - - - m_tskDeployer = createTskDeployer(); - setupSubComponent( m_tskDeployer ); - } - - protected void setupSubComponent( final Component component ) - throws Exception - { - if( component instanceof Loggable ) - { - ((Loggable)component).setLogger( m_logger ); - } - - if( component instanceof Composer ) - { - final DefaultComponentManager componentManager = new DefaultComponentManager(); - componentManager.put( "org.apache.ant.convert.Converter", - getConverterEngine() ); - componentManager.put( "org.apache.ant.configuration.Configurer", - m_configurer ); - componentManager.put( "org.apache.ant.tasklet.engine.TaskletEngine", - this ); - - ((Composer)component).compose( componentManager ); - } - - if( component instanceof Initializable ) - { - ((Initializable)component).init(); - } - } - - protected DataTypeEngine createDataTypeEngine() - { - final TaskletDataTypeEngine engine = new TaskletDataTypeEngine(); - engine.setFactory( m_factory ); - return engine; - } - protected TskDeployer createTskDeployer() + /** + * Retrieve relevent services needed to deploy. + * + * @param componentManager the ComponentManager + * @exception ComponentManagerException if an error occurs + */ + public void compose( final ComponentManager componentManager ) + throws ComponentManagerException { - return new DefaultTskDeployer(); - } + //cache CM so it can be used while executing tasks + m_componentManager = componentManager; - protected Configurer createConfigurer() - { - return new DefaultConfigurer(); - } - - protected LocatorRegistry createLocatorRegistry() - { - return new DefaultLocatorRegistry(); - } - - protected DefaultFactory createFactory() - { - return new DefaultFactory(); - } - - protected ConverterEngine createConverterEngine() - { - //this is done so that the loaders are shared - //which results in much less overhead - final TaskletConverterEngine engine = new TaskletConverterEngine(); - engine.setFactory( m_factory ); - return engine; + m_factory = (Factory)componentManager.lookup( "org.apache.avalon.camelot.Factory" ); + m_tskDeployer = + (TskDeployer)componentManager.lookup( "org.apache.ant.tasklet.engine.TskDeployer" ); + m_configurer = + (Configurer)componentManager.lookup( "org.apache.ant.configuration.Configurer" ); + m_dataTypeEngine = + (DataTypeEngine)componentManager.lookup( "org.apache.ant.datatypes.DataTypeEngine" ); + m_converterEngine = + (ConverterEngine)componentManager.lookup( "org.apache.ant.convert.ConverterEngine" ); } public void execute( final Configuration task, - final TaskletContext context, - final ComponentManager componentManager ) + final TaskletContext context ) throws AntException { - m_logger.debug( "Creating" ); + getLogger().debug( "Creating" ); final Tasklet tasklet = createTasklet( task.getName() ); - tasklet.setLogger( m_logger ); + setupLogger( tasklet ); - m_logger.debug( "Contextualizing" ); + getLogger().debug( "Contextualizing" ); doContextualize( tasklet, task, context ); - m_logger.debug( "Composing" ); - doCompose( tasklet, task, componentManager ); + getLogger().debug( "Composing" ); + doCompose( tasklet, task ); - m_logger.debug( "Configuring" ); + getLogger().debug( "Configuring" ); doConfigure( tasklet, task, context ); - m_logger.debug( "Initializing" ); + getLogger().debug( "Initializing" ); doInitialize( tasklet, task ); - m_logger.debug( "Running" ); + getLogger().debug( "Running" ); tasklet.run(); - m_logger.debug( "Disposing" ); + getLogger().debug( "Disposing" ); doDispose( tasklet, task ); } + + protected Tasklet createTasklet( final String name ) + throws AntException + { + try + { + final Locator locator = m_locatorRegistry.getLocator( name ); + return (Tasklet)m_factory.create( locator, Tasklet.class ); + } + catch( final RegistryException re ) + { + throw new AntException( "Unable to locate task " + name, re ); + } + catch( final FactoryException fe ) + { + throw new AntException( "Unable to create task " + name, fe ); + } + } protected void doConfigure( final Tasklet tasklet, final Configuration task, @@ -203,20 +158,12 @@ public class DefaultTaskletEngine } } - protected void doCompose( final Tasklet tasklet, - final Configuration task, - final ComponentManager componentManager ) + protected void doCompose( final Tasklet tasklet, final Configuration task ) throws AntException { - - final DefaultComponentManager subComponentManager = - new DefaultComponentManager( componentManager ); - - subComponentManager.put( "org.apache.ant.configuration.Configurer", m_configurer ); - if( tasklet instanceof Composer ) { - try { ((Composer)tasklet).compose( subComponentManager ); } + try { ((Composer)tasklet).compose( m_componentManager ); } catch( final Throwable throwable ) { throw new AntException( "Error composing task " + task.getName() + " at " + @@ -231,9 +178,6 @@ public class DefaultTaskletEngine final TaskletContext context ) throws AntException { - // Already done in container ... - //context.setProperty( TaskletContext.NAME, name ); - try { tasklet.contextualize( context ); } catch( final Throwable throwable ) { @@ -272,22 +216,4 @@ public class DefaultTaskletEngine } } } - - protected Tasklet createTasklet( final String name ) - throws AntException - { - try - { - final Locator locator = m_locatorRegistry.getLocator( name ); - return (Tasklet)m_factory.create( locator, Tasklet.class ); - } - catch( final RegistryException re ) - { - throw new AntException( "Unable to locate task " + name, re ); - } - catch( final FactoryException fe ) - { - throw new AntException( "Unable to create task " + name, fe ); - } - } } diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java index 6b0419530..0a62d70c9 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/DefaultTskDeployer.java @@ -15,13 +15,13 @@ import java.util.Iterator; import java.util.zip.ZipEntry; import java.util.zip.ZipException; import java.util.zip.ZipFile; +import org.apache.ant.datatypes.DataTypeEngine; import org.apache.ant.convert.ConverterEngine; import org.apache.ant.convert.ConverterRegistry; import org.apache.ant.convert.DefaultConverterInfo; import org.apache.avalon.Component; import org.apache.avalon.ComponentManager; -import org.apache.avalon.ComponentNotAccessibleException; -import org.apache.avalon.ComponentNotFoundException; +import org.apache.avalon.ComponentManagerException; import org.apache.avalon.Composer; import org.apache.avalon.Configuration; import org.apache.avalon.ConfigurationException; @@ -29,6 +29,7 @@ import org.apache.avalon.camelot.AbstractZipDeployer; import org.apache.avalon.camelot.DefaultLocator; import org.apache.avalon.camelot.DefaultLocatorRegistry; import org.apache.avalon.camelot.DeploymentException; +import org.apache.avalon.camelot.DeployerUtil; import org.apache.avalon.camelot.Loader; import org.apache.avalon.camelot.LocatorRegistry; import org.apache.avalon.camelot.RegistryException; @@ -55,7 +56,7 @@ public class DefaultTskDeployer */ public DefaultTskDeployer() { - super( false ); + super(); m_autoUndeploy = true; m_type = "Tasklet"; } @@ -64,34 +65,32 @@ public class DefaultTskDeployer * Retrieve relevent services needed to deploy. * * @param componentManager the ComponentManager - * @exception ComponentNotFoundException if an error occurs - * @exception ComponentNotAccessibleException if an error occurs + * @exception ComponentManagerException if an error occurs */ public void compose( final ComponentManager componentManager ) - throws ComponentNotFoundException, ComponentNotAccessibleException + throws ComponentManagerException { final TaskletEngine taskletEngine = (TaskletEngine)componentManager. lookup( "org.apache.ant.tasklet.engine.TaskletEngine" ); - final ConverterEngine converterEngine = taskletEngine.getConverterEngine(); + m_taskletRegistry = taskletEngine.getRegistry(); + + final ConverterEngine converterEngine = (ConverterEngine)componentManager. + lookup( "org.apache.ant.convert.ConverterEngine" ); m_converterInfoRegistry = converterEngine.getInfoRegistry(); m_converterRegistry = converterEngine.getRegistry(); - m_taskletRegistry = taskletEngine.getRegistry(); + final DataTypeEngine dataTypeEngine = (DataTypeEngine)componentManager. + lookup( "org.apache.ant.datatypes.DataTypeEngine" ); - m_dataTypeRegistry = taskletEngine.getDataTypeEngine().getRegistry(); - } - - public void setLogger( final Logger logger ) - { - m_logger = logger; + m_dataTypeRegistry = dataTypeEngine.getRegistry(); } protected void loadResources( final ZipFile zipFile, final String location, final URL url ) throws DeploymentException { - final Configuration taskdefs = loadConfiguration( zipFile, TSKDEF_FILE ); + final Configuration taskdefs = DeployerUtil.loadConfiguration( zipFile, TSKDEF_FILE ); try { @@ -126,8 +125,8 @@ public class DefaultTskDeployer throws DeploymentException { checkDeployment( location, url ); - final ZipFile zipFile = getZipFileFor( url ); - final Configuration taskdefs = loadConfiguration( zipFile, TSKDEF_FILE ); + final ZipFile zipFile = DeployerUtil.getZipFileFor( getFileFor( url ) ); + final Configuration taskdefs = DeployerUtil.loadConfiguration( zipFile, TSKDEF_FILE ); try { @@ -152,8 +151,9 @@ public class DefaultTskDeployer throws DeploymentException { checkDeployment( location, url ); - final ZipFile zipFile = getZipFileFor( url ); - final Configuration datatypedefs = loadConfiguration( zipFile, TSKDEF_FILE ); + final ZipFile zipFile = DeployerUtil.getZipFileFor( getFileFor( url ) ); + final Configuration datatypedefs = + DeployerUtil.loadConfiguration( zipFile, TSKDEF_FILE ); try { @@ -178,8 +178,8 @@ public class DefaultTskDeployer throws DeploymentException { checkDeployment( location, url ); - final ZipFile zipFile = getZipFileFor( url ); - final Configuration taskdefs = loadConfiguration( zipFile, TSKDEF_FILE ); + final ZipFile zipFile = DeployerUtil.getZipFileFor( getFileFor( url ) ); + final Configuration taskdefs = DeployerUtil.loadConfiguration( zipFile, TSKDEF_FILE ); try { diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletConverterEngine.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletConverterEngine.java deleted file mode 100644 index 71e5f9119..000000000 --- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletConverterEngine.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) The Apache Software Foundation. All rights reserved. - * - * This software is published under the terms of the Apache Software License - * version 1.1, a copy of which has been included with this distribution in - * the LICENSE file. - */ -package org.apache.ant.tasklet.engine; - -import org.apache.ant.convert.DefaultConverterEngine; -import org.apache.avalon.camelot.DefaultFactory; - -public class TaskletConverterEngine - extends DefaultConverterEngine -{ - /** - * Set the ConverterFactory. - * Package access intended. - */ - void setFactory( final DefaultFactory factory ) - { - m_factory = factory; - } - - protected DefaultFactory createFactory() - { - return m_factory; - } -} diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletDataTypeEngine.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletDataTypeEngine.java deleted file mode 100644 index 11d53bb06..000000000 --- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletDataTypeEngine.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) The Apache Software Foundation. All rights reserved. - * - * This software is published under the terms of the Apache Software License - * version 1.1, a copy of which has been included with this distribution in - * the LICENSE file. - */ -package org.apache.ant.tasklet.engine; - -import org.apache.ant.datatypes.DefaultDataTypeEngine; -import org.apache.avalon.camelot.DefaultFactory; - -public class TaskletDataTypeEngine - extends DefaultDataTypeEngine -{ - /** - * Set the DataTypeFactory. - * Package access intended. - */ - void setFactory( final DefaultFactory factory ) - { - m_factory = factory; - } - - protected DefaultFactory createFactory() - { - return m_factory; - } -} diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java index 8419c1c60..d3a20cc1c 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasklet/engine/TaskletEngine.java @@ -24,7 +24,7 @@ import org.apache.log.Logger; * @author Peter Donald */ public interface TaskletEngine - extends Component, Loggable + extends Component { /** * Retrieve deployer for engine. @@ -60,8 +60,6 @@ public interface TaskletEngine * @param task the configruation data for task * @exception AntException if an error occurs */ - void execute( Configuration task, - TaskletContext context, - ComponentManager componentManager ) + void execute( Configuration task, TaskletContext context ) throws AntException; } diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/AbstractResourceRegisterer.java b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/AbstractResourceRegisterer.java index 106669037..1433f72b1 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/AbstractResourceRegisterer.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/AbstractResourceRegisterer.java @@ -14,8 +14,7 @@ import org.apache.ant.AntException; import org.apache.ant.tasklet.AbstractTasklet; import org.apache.ant.tasklet.engine.TaskletEngine; import org.apache.avalon.ComponentManager; -import org.apache.avalon.ComponentNotAccessibleException; -import org.apache.avalon.ComponentNotFoundException; +import org.apache.avalon.ComponentManagerException; import org.apache.avalon.Composer; import org.apache.avalon.camelot.RegistryException; @@ -34,7 +33,7 @@ public abstract class AbstractResourceRegisterer protected TaskletEngine m_engine; public void compose( final ComponentManager componentManager ) - throws ComponentNotFoundException, ComponentNotAccessibleException + throws ComponentManagerException { m_engine = (TaskletEngine)componentManager. lookup( "org.apache.ant.tasklet.engine.TaskletEngine" ); @@ -84,7 +83,7 @@ public abstract class AbstractResourceRegisterer { if( null != libName ) { - final File lib = new File( getContext().resolveFilename( libName ) ); + final File lib = getContext().resolveFile( libName ); try { return lib.toURL(); } catch( final MalformedURLException mue ) { diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/AntCall.java b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/AntCall.java index 291372294..c441fd7a9 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/AntCall.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/AntCall.java @@ -16,8 +16,7 @@ import org.apache.ant.tasklet.DefaultTaskletContext; import org.apache.ant.tasklet.TaskletContext; import org.apache.avalon.ComponentManager; import org.apache.avalon.Context; -import org.apache.avalon.ComponentNotAccessibleException; -import org.apache.avalon.ComponentNotFoundException; +import org.apache.avalon.ComponentManagerException; import org.apache.avalon.Composer; /** @@ -43,7 +42,7 @@ public class AntCall } public void compose( final ComponentManager componentManager ) - throws ComponentNotFoundException, ComponentNotAccessibleException + throws ComponentManagerException { m_componentManager = componentManager; m_projectEngine = (ProjectEngine)componentManager. diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/Property.java b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/Property.java index 8c819c32d..c7bb7ecdc 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/Property.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/Property.java @@ -19,8 +19,7 @@ import org.apache.ant.tasklet.AbstractTasklet; import org.apache.ant.tasklet.TaskletContext; import org.apache.ant.tasklet.engine.TaskletEngine; import org.apache.avalon.ComponentManager; -import org.apache.avalon.ComponentNotAccessibleException; -import org.apache.avalon.ComponentNotFoundException; +import org.apache.avalon.ComponentManagerException; import org.apache.avalon.Composer; import org.apache.avalon.ConfigurationException; import org.apache.avalon.Resolvable; @@ -40,16 +39,15 @@ public class Property protected Configurer m_configurer; public void compose( final ComponentManager componentManager ) - throws ComponentNotFoundException, ComponentNotAccessibleException + throws ComponentManagerException { m_configurer = (Configurer)componentManager. lookup( "org.apache.ant.configuration.Configurer" ); - - final TaskletEngine taskletEngine = (TaskletEngine)componentManager. - lookup( "org.apache.ant.tasklet.engine.TaskletEngine" ); - m_engine = taskletEngine.getDataTypeEngine(); - m_converter = taskletEngine.getConverterEngine(); + m_engine = (DataTypeEngine)componentManager. + lookup( "org.apache.ant.datatypes.DataTypeEngine" ); + + m_converter = (Converter)componentManager.lookup( "org.apache.ant.convert.Converter" ); } public void configure( final Configuration configuration ) @@ -71,7 +69,12 @@ public class Property if( name.equals( "name" ) ) { - try { setName( (String)m_converter.convert( String.class, object ) ); } + try + { + final String convertedValue = + (String)m_converter.convert( String.class, object, getContext() ); + setName( convertedValue ); + } catch( final Exception e ) { throw new ConfigurationException( "Error converting value", e ); @@ -86,7 +89,7 @@ public class Property try { final Boolean localScope = - (Boolean)m_converter.convert( Boolean.class, object ); + (Boolean)m_converter.convert( Boolean.class, object, getContext() ); setLocalScope( Boolean.TRUE == localScope ); } catch( final Exception e ) diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/RegisterConverter.java b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/RegisterConverter.java index ee5874cf4..fbc2a4ea9 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/RegisterConverter.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/RegisterConverter.java @@ -17,8 +17,7 @@ import org.apache.ant.convert.DefaultConverterInfo; import org.apache.ant.tasklet.AbstractTasklet; import org.apache.ant.tasklet.engine.TaskletEngine; import org.apache.avalon.ComponentManager; -import org.apache.avalon.ComponentNotAccessibleException; -import org.apache.avalon.ComponentNotFoundException; +import org.apache.avalon.ComponentManagerException; import org.apache.avalon.Composer; import org.apache.avalon.camelot.DeploymentException; import org.apache.avalon.camelot.RegistryException; @@ -39,7 +38,7 @@ public class RegisterConverter protected TaskletEngine m_engine; public void compose( final ComponentManager componentManager ) - throws ComponentNotFoundException, ComponentNotAccessibleException + throws ComponentManagerException { m_engine = (TaskletEngine)componentManager. lookup( "org.apache.ant.tasklet.engine.TaskletEngine" ); @@ -90,7 +89,7 @@ public class RegisterConverter if( !isFullyDefined && null == url ) { throw new AntException( "Must supply parameter if not fully specifying converter" ); - } + } if( !isFullyDefined ) { @@ -126,7 +125,7 @@ public class RegisterConverter { if( null != libName ) { - final File lib = new File( getContext().resolveFilename( libName ) ); + final File lib = getContext().resolveFile( libName ); try { return lib.toURL(); } catch( final MalformedURLException mue ) { diff --git a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/RegisterTasklib.java b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/RegisterTasklib.java index d7f1f748e..bd7394f47 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/tasks/core/RegisterTasklib.java +++ b/proposal/myrmidon/src/java/org/apache/ant/tasks/core/RegisterTasklib.java @@ -14,8 +14,7 @@ import org.apache.ant.AntException; import org.apache.ant.tasklet.AbstractTasklet; import org.apache.ant.tasklet.engine.TaskletEngine; import org.apache.avalon.ComponentManager; -import org.apache.avalon.ComponentNotAccessibleException; -import org.apache.avalon.ComponentNotFoundException; +import org.apache.avalon.ComponentManagerException; import org.apache.avalon.Composer; import org.apache.avalon.camelot.DeploymentException; @@ -32,7 +31,7 @@ public class RegisterTasklib protected TaskletEngine m_engine; public void compose( final ComponentManager componentManager ) - throws ComponentNotFoundException, ComponentNotAccessibleException + throws ComponentManagerException { m_engine = (TaskletEngine)componentManager. lookup( "org.apache.ant.tasklet.engine.TaskletEngine" ); @@ -53,7 +52,7 @@ public class RegisterTasklib URL url = null; - final File lib = new File( getContext().resolveFilename( m_lib ) ); + final File lib = getContext().resolveFile( m_lib ); try { url = lib.toURL(); } catch( final MalformedURLException mue ) { diff --git a/proposal/myrmidon/src/java/org/apache/ant/datatypes/Condition.java b/proposal/myrmidon/src/java/org/apache/ant/util/Condition.java similarity index 98% rename from proposal/myrmidon/src/java/org/apache/ant/datatypes/Condition.java rename to proposal/myrmidon/src/java/org/apache/ant/util/Condition.java index c22f73eca..eab77aaa9 100644 --- a/proposal/myrmidon/src/java/org/apache/ant/datatypes/Condition.java +++ b/proposal/myrmidon/src/java/org/apache/ant/util/Condition.java @@ -5,7 +5,7 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE file. */ -package org.apache.ant.datatypes; +package org.apache.ant.util; import org.apache.ant.AntException; import org.apache.avalon.Component; diff --git a/proposal/myrmidon/src/script/ant b/proposal/myrmidon/src/script/ant index 00bbeeff5..18709728f 100644 --- a/proposal/myrmidon/src/script/ant +++ b/proposal/myrmidon/src/script/ant @@ -25,7 +25,7 @@ while [ -h "$PRG" ] ; do fi done -MYRMIDON_HOME=`dirname "$PRG"`/.. +ANT_HOME=`dirname "$PRG"`/.. if [ "$JAVA_HOME" == "" ] ; then @@ -42,4 +42,4 @@ else fi fi -$JAVACMD $ANT_OPTS -jar ant.jar --ant-home=${MYRMIDON_HOME} $@ \ No newline at end of file +$JAVACMD $ANT_OPTS -jar $ANT_HOME/lib/ant.jar $@ diff --git a/proposal/myrmidon/src/script/ant.bat b/proposal/myrmidon/src/script/ant.bat index 41a315a9d..b0269bd7a 100644 --- a/proposal/myrmidon/src/script/ant.bat +++ b/proposal/myrmidon/src/script/ant.bat @@ -2,6 +2,30 @@ if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat" +if not "%OS%"=="Windows_NT" goto start + +rem %~dp0 is name of current script under NT +set DEFAULT_ANT_HOME=%~dp0 + +rem : operator works similar to make : operator +set DEFAULT_ANT_HOME=%DEFAULT_ANT_HOME:\bin\=% + +if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME% +set DEFAULT_ANT_HOME= + +:start + +if not "%ANT_HOME%" == "" goto ant_home_found + +echo. +echo Warning: ANT_HOME environment variable is not set. +echo This needs to be set for Win9x as it's command prompt +echo scripting bites +echo. +goto end + +:ant_home_found + if not "%JAVA_HOME%" == "" goto javaCmdSetup echo. @@ -10,7 +34,6 @@ echo If build fails because sun.* classes could not be found echo you will need to set the JAVA_HOME environment variable echo to the installation directory of java. echo. -goto end rem hope that there is java command in path if "%JAVACMD%" == "" set JAVACMD=java @@ -22,7 +45,6 @@ if "%JAVACMD%" == "" set JAVACMD=%JAVA_HOME%\bin\java :argSetup -set THIS_FILE=%0 set ANT_CMD_LINE_ARGS= rem Slurp all args... @@ -35,9 +57,8 @@ goto setupArgs :doneArgs rem Mmmmmm tasty - finished slurping args -%JAVACMD% %ANT_OPTS% -jar lib\ant.jar "--bin-dir=%THIS_FILE%" %ANT_CMD_LINE_ARGS% +%JAVACMD% %ANT_OPTS% -jar %ANT_HOME%\lib\ant.jar %ANT_CMD_LINE_ARGS% :end if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat" -set THIS_FILE= set ANT_CMD_LINE_ARGS= \ No newline at end of file diff --git a/proposal/myrmidon/src/xdocs/design.html b/proposal/myrmidon/src/xdocs/design.html new file mode 100644 index 000000000..2b3cee09e --- /dev/null +++ b/proposal/myrmidon/src/xdocs/design.html @@ -0,0 +1,224 @@ + + + + Myrmidon: The Ant2.0 Proposal + + + +