From 717e900e8aaa15a7ca2fcca7551a370838dc263f Mon Sep 17 00:00:00 2001 From: aclement Date: Wed, 7 Apr 2004 16:07:40 +0000 Subject: [PATCH] Create aj and aj.bat launch scripts at install time. --- build/src/$installer$/org/aspectj/Main.java | 125 +++++++++++++++++--- lib/build/build.jar | Bin 145200 -> 145724 bytes 2 files changed, 108 insertions(+), 17 deletions(-) diff --git a/build/src/$installer$/org/aspectj/Main.java b/build/src/$installer$/org/aspectj/Main.java index 8652d0bb8..977ac46a3 100644 --- a/build/src/$installer$/org/aspectj/Main.java +++ b/build/src/$installer$/org/aspectj/Main.java @@ -1341,6 +1341,10 @@ class InstallPane extends WizardPane { lsm.writeScript("ajdoc"); //lsm.writeScript("ajdb"); lsm.writeScript("ajbrowser"); + + // While the experimental aj(.bat) launch script is + // shipped in the docs path + lsm.writeAJLaunchScript(); } if (hasGui()) { progressBar.setValue(100); @@ -1507,7 +1511,75 @@ class LaunchScriptMaker { this.context = context; } - private void writeWindowsHeader(String className, PrintStream ps) { + /** + * + */ + public void writeAJLaunchScript() throws IOException { + String name = "aj"; + if (!context.onUnix()) { + if (context.onOS2()) { + name += ".cmd"; + } else if (context.onWindows()) { + name += ".bat"; + } + } + + File destDir = new File(context.getOutputDir(), "doc/examples/ltw"); + destDir.mkdirs(); + File file = new File(destDir, name); + + PrintStream ps = getPrintStream(file); + writeAJLaunchScriptContent(ps); + ps.close(); + + if (context.onUnix()) { + makeExecutable(file); + } + } + + /** + * @param ps + */ + private void writeAJLaunchScriptContent(PrintStream ps) { + if (context.onUnix()) { + writeUnixHeader(ps); + writeAJUnixLaunchLine(ps); + } + else { + writeWindowsHeader(ps); + writeAJWindowsLaunchLine(ps); + } + } + + /** + * @param ps + */ + private void writeAJWindowsLaunchLine(PrintStream ps) { + ps.println( + "\"%JAVA_HOME%\\bin\\java\" -classpath " + + "\"%ASPECTJ_HOME%\\lib\\aspectjtools.jar\"" + + " \"-Djava.system.class.loader=org.aspectj.weaver.WeavingURLClassLoader\"" + + " \"-Daj.class.path=%ASPECTPATH%;%CLASSPATH%\"" + + " \"-Daj.aspect.path=%ASPECTPATH%\"" + + " " + makeScriptArgs(false)); + } + + /** + * @param ps + */ + private void writeAJUnixLaunchLine(PrintStream ps) { + String sep = File.pathSeparator; + ps.println( + "\"$JAVA_HOME/bin/java\" -classpath" + + " \"$ASPECTJ_HOME/lib/aspectjtools.jar\"" + + " \"-Djava.system.class.loader=org.aspectj.weaver.WeavingURLClassLoader\"" + + " \"-Daj.class.path=$ASPECTPATH:$CLASSPATH\"" + + " \"-Daj.aspect.path=$ASPECTPATH\"" + + " " + + makeScriptArgs(true)); + } + + private void writeWindowsHeader(PrintStream ps) { ps.println("@echo off"); ps.println("REM This file generated by AspectJ installer"); ps.println("REM Created on "+new java.util.Date()+" by "+ @@ -1526,14 +1598,19 @@ class LaunchScriptMaker { ps.println("echo java does not exist as %JAVA_HOME%\\bin\\java"); ps.println("echo please fix the JAVA_HOME environment variable"); ps.println(":haveJava"); - ps.println("\"%JAVA_HOME%\\bin\\java\" -classpath " + -// "\"%ASPECTJ_HOME%\\lib\\aspectjtools.jar;%CLASSPATH%\""+ - "\"%ASPECTJ_HOME%\\lib\\aspectjtools.jar;%JAVA_HOME%\\lib\\tools.jar;%CLASSPATH%\""+ - " -Xmx64M " + className + //" -defaultClasspath " + "\"%CLASSPATH%\"" + - " " + makeScriptArgs(false)); } - private void writeUnixHeader(String className, PrintStream ps) { + private void writeWindowsLaunchLine(String className, PrintStream ps) { + ps.println("\"%JAVA_HOME%\\bin\\java\" -classpath " + + // "\"%ASPECTJ_HOME%\\lib\\aspectjtools.jar;%CLASSPATH%\""+ + "\"%ASPECTJ_HOME%\\lib\\aspectjtools.jar;%JAVA_HOME%\\lib\\tools.jar;%CLASSPATH%\"" + + " -Xmx64M " + + className + + //" -defaultClasspath " + "\"%CLASSPATH%\"" + + " " + makeScriptArgs(false)); + } + + private void writeUnixHeader(PrintStream ps) { File binsh = new File(File.separator+"bin", "sh"); if (binsh.canRead()) { ps.println("#!"+binsh.getPath()); @@ -1549,16 +1626,24 @@ class LaunchScriptMaker { quote(true, false, context.getOutputDir())); ps.println("fi"); ps.println(""); - String sep = File.pathSeparator; - - ps.println("\"$JAVA_HOME/bin/java\" -classpath "+ - "\"$ASPECTJ_HOME/lib/aspectjtools.jar" + sep + - "$JAVA_HOME/lib/tools.jar" + sep + - "$CLASSPATH\""+ - " -Xmx64M " + className + - " " + makeScriptArgs(true)); } + private void writeUnixLaunchLine( + String className, + PrintStream ps) { + String sep = File.pathSeparator; + ps.println( + "\"$JAVA_HOME/bin/java\" -classpath " + + "\"$ASPECTJ_HOME/lib/aspectjtools.jar" + + sep + + "$JAVA_HOME/lib/tools.jar" + + sep + + "$CLASSPATH\"" + + " -Xmx64M " + + className + + " " + + makeScriptArgs(true)); + } private void makeExecutable(File file) { try { @@ -1629,8 +1714,14 @@ class LaunchScriptMaker { } public void writeScript(String className, PrintStream ps, boolean unixStyle) throws IOException { - if (unixStyle) writeUnixHeader(className, ps); - else writeWindowsHeader(className, ps); + if (unixStyle) { + writeUnixHeader(ps); + writeUnixLaunchLine(className, ps); + } + else { + writeWindowsHeader(ps); + writeWindowsLaunchLine(className, ps); + } /* ps.print(quote(unixStyle, false, context.javaPath.getAbsolutePath())); diff --git a/lib/build/build.jar b/lib/build/build.jar index c83f1113e2c31cefee6c7712e491eaea6dfe220a..eff04e2d0863038ad50ae4cc9df24d95594c0cd1 100644 GIT binary patch delta 19433 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 z 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�WMyAE-u)8 zzoR?(CI{^ym?o>~2di{vuCkNO_?5Hj*wV&3xkf>j_FOI(4w7FBj?Xpx^rS7P?5pdF zvh)WyrI0u4h5{RNeOrz1KbttMB{F~I`Kaofr>#$~nd(@kIl{tj?c0ncW?|saKQ>V5 za;1COQtPlTUu*&P*}nAsRkPAa=kepKt|^tT-KhKUVds~T%9G)k)U%|v;jV+~F7s#L zVM8(quj^RT_pB(Li$;%)X}1wovtlmn*g>hpIj=OOkR#xO91l;+P?OI?YiD^c#d&4F z%@6bK4UC%yMLB2r9N*#Flfz&;J*ADClMw%3jV`~Ybo^j&R1e<5yVkAeI6wVV9v-U( z#U>n?ANiF+F1(i%>`OkEx>Ft=B&N5FiAFjGIU}cuJwfNm89|69wN`9~$A81uH4k=0>B~lJArj7_( zh8?5oJXb+6T}0it-FS0ucqoq3?H^$bJrhG2LQ#WWp#-Ae zCOZFYqs#8|^nhvq8q$iaQ`l(BDZj~WPXDRKCye|u9k_~RD|MQidQe!ns2EUZ`04Ef z<#5Wj%9HX%0+SThvt`3{$-W92hy>XOl-Ci=Y&-7h8#L0|LlFPoomw>fo2Q8=r!msgBj3=&B#(T>OaM^(JNZ!pu;y7yB{#8`Mgt=)1RK~W%# zIEyB0NaU05NH2b_F(KyzK^1VUy?CnQsICyw)i81Q@10VE<>}w%dOxAQs3@q90I=;6 z=>_{EkEJ<3Zi@>WULwIsmN%RBp@*+V!2b|*DTK_LCs{EP2!3nUR`jiz>Z{bwrx5IE zGq0rPSOlds`=G@4UI={VuqAcZ(;#?(0;!-*Zt8+?jL!5SHXoL_Sjh%M!h>|l$b@FK zz6*u2<&fGgxQ|swo}`$peZyD#a^$C(nUSkbL2qqst+ZoXw#R394K}vKX^&U2G^rq} zFyYsc@ZM;M?_`)4;PbMJ){PCHYxOcT`0#Gd z@}jy8^?SwSw%85Nqn>}D=rPCyp`vlFfH@!DhDbpJJniPr(^$b^mDrXvp{b=JYoJgu z$EmKoI0Jpm+orrOj8k^gplF|0F)yk6*`Z){j>%2v%KupNzNsxXSJQLm>X_L_VO_zo z%=eI}F>*ugb_Ujl-M{EuO<7M}dHu8KF@RHB;FIL1@Hw+a1tw*G`Vo-n`Y~Fg;+gW| zr{OuDo0jBXr;H;js{8Cz^Px*mP|O3C%cczTP=3fb&ikIO22cE5J>JhS0!MSX^c`}m zPOMrHHXTa0rcCkBcaYqXEZgW-kNHc?AVcAViISZQs>)zRoM~zOp%c*tb{bsnnG&wAq#n0Ivjb}34ro6fODL>5x9K4i zA!bvWlXfiWD9=Yz@%u`WZ~joh|_hX3t007qU(y|HvQE zr$JRB&&%!GI`)kyFJ)B`2rfI;8PlB1H~0+^J&)p?=0j|73~e?aT{ADoZPXd#evGAG zYB(r)gMY66nJ-Xa)Lp!_$nhtTVNUm;F2Y6o^Dq+O((-8s!E#kVn$55eO^t!yw4D>s zS8#iYHgNA^eur9ycvky<{|6R#JWngBq)%>I`Pq_Ph>*rFRsU5H?zL2U3c@2Y%C+sv z=i}$s>Q|@cNcdF5mqHZ$f3E#rmRzr^AaIQ-fCjWnPTmP|LWIVFRsb&}fu11Vozqlm z?!0b4;gCwQhl2rK5GmC2ZHHfxy3;t$hXWeoB(=>NbWglZVK}?MS@USs zYJMkr8q3|qJXHZ5t}w;cefr0Eq3ZsAWRgobhN&e={LCi2F^j<&&C~m z{uZws;waoC8E*`!n~q^SurR>=XD$x&JECU#-E7(BsrXTtYVDRNTkQJ;PN(%gx;5ot zg|IClUtNa<8&Tc#VWu~4TI`L{Kyb`lzLlp5q%L1B4+JRQ-I&tO^yIk4Ej=bi9JaolyiLwTP2G;Y+S+bO-+@6G02H859GAfY5~gA8%}aS*N1`{=Za!LNeMZ z19+VUh}Jx22}t<6%r~+I3?sfS^IsP7Z(#mNf0y)5egGGk*Arqrb=2UC3;qcy)adu13vxL*SQ3g|IJ#wSjz@} z&kaOq7X1ZS`>Rj(0N{H~&omps1G(Y<-&n@bfo5>8(_oATBmgTC01033>8g%pVwp!zbfa3onP?h}KUxFmuOWg_(@s-4Y{DtI6`Y%Zi zIS})8QZ$<{y2sKZhEi!SWP9 zj8{wkd47uFUnE}I|Hb3JLjQSI;@!WX*}DIQLW7?ufF!T@f0jA^dzNsG{)>kK_frAU zU-3iGsmnVrN4ZE|Ui81mGi><>PYAA|1me9y|5>f@Z|Z03SMQOuK?BE<{O5K3GsVgB zFT=}RUeK&Bb<6*m=nqsc6I~zh(nyf}`vV$ygz7&O7ELH2aW5XEgAM^f{x1r;usg}%-HOTSt zsxRJA`Qjb_cGupt*Uk`VfTXXE!9??-ZlCeW+mwa+*WN!V(_mUxU-6f6j;}BFV*kqu z+)v;<8XzUuN#v1KV@27NK`=>y>~2KOtvlEZ1ZnTk=$L^b#-_BO-(b5EJW=gp-4*1hfVkh!-q{hI-UlLAI zKW}iLt4P}G_|tk0d7pvOEmfp;GfAt2YV%~ozEY@)@tIOpfjOkg;&^_J)npVKNj(*mQgq%hC)fkrN$z^!*UL+iyB4ayC2zBrxH=8fe zS~t-66+twVx31K~r|t9qfSIpkbX~PvYf5K!6D6O%{@jy}i)!t9Nn!l7@}rqJfyD3P z%l4j!iQo7uQcTrs;E5iV$H&ugr;)U>qVr6hagkIg(oGvlS}Q_m^RO7bjN57Ha}Tmg z#rg!0Sz4q6-VBx~3?7g4_LQJ0QZOqQC$HsGz-&Q(s7JHwq2a(F`kPFN z2@h zA@t`9LQ{FP->8?%4>akuL|fkI(_8&V|I0&*@jq<$Y?|g%YIki!E*ti<1tO9YgEi$x z;NDk6;#Q=q$9Qu9krW2-t)dp|e^+^-90@uwThsiCv}l5)r9yRBzxe7Z8u1s5<|?Ys zlXCCB0hS