Browse Source

merge

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@275330 13f79535-47bb-0310-9956-ffa450edef68
master
Conor MacNeill 21 years ago
parent
commit
c12912c52b
5 changed files with 62 additions and 86 deletions
  1. +3
    -10
      build.bat
  2. +1
    -26
      build.sh
  3. +50
    -37
      src/main/org/apache/tools/ant/launch/Launcher.java
  4. +4
    -7
      src/script/ant
  5. +4
    -6
      src/script/ant.bat

+ 3
- 10
build.bat View File

@@ -3,7 +3,6 @@
REM Copyright (c) 2000-2002 The Apache Software Foundation. All rights REM Copyright (c) 2000-2002 The Apache Software Foundation. All rights
REM reserved. REM reserved.


set OLDCLASSPATH=%CLASSPATH%
set REAL_ANT_HOME=%ANT_HOME% set REAL_ANT_HOME=%ANT_HOME%
set ANT_HOME=bootstrap set ANT_HOME=bootstrap
if exist bootstrap\lib\ant.jar if exist bootstrap\bin\ant.bat if exist bootstrap\bin\lcp.bat if exist bootstrap\bin\antRun.bat goto runAnt if exist bootstrap\lib\ant.jar if exist bootstrap\bin\ant.bat if exist bootstrap\bin\lcp.bat if exist bootstrap\bin\antRun.bat goto runAnt
@@ -13,21 +12,15 @@ echo Bootstrap FAILED
goto cleanup goto cleanup


:runAnt :runAnt
set LOCALCLASSPATH=
for %%i in (lib\optional\*.jar) do call bootstrap\bin\lcp.bat %%i
set CLASSPATH=lib\optional\xalanj1compat.jar;%LOCALCLASSPATH%;%CLASSPATH%
set LOCALCLASSPATH=

if not "%REAL_ANT_HOME%" == "" goto install_ant if not "%REAL_ANT_HOME%" == "" goto install_ant
call bootstrap\bin\ant.bat -emacs %1 %2 %3 %4 %5 %6 %7 %8 %9
call bootstrap\bin\ant.bat -lib lib/optional %1 %2 %3 %4 %5 %6 %7 %8 %9
goto cleanup goto cleanup


:install_ant :install_ant
call bootstrap\bin\ant.bat -emacs -Dant.install="%REAL_ANT_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9
call bootstrap\bin\ant.bat -lib lib/optional -Dant.install="%REAL_ANT_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9


rem clean up rem clean up
:cleanup :cleanup
set ANT_HOME=%REAL_ANT_HOME% set ANT_HOME=%REAL_ANT_HOME%
set REAL_ANT_HOME= set REAL_ANT_HOME=
set CLASSPATH=%OLDCLASSPATH%
set OLDCLASSPATH=


+ 1
- 26
build.sh View File

@@ -28,31 +28,6 @@ if test ! -f bootstrap/lib/ant.jar -o ! -x bootstrap/bin/ant -o ! -x bootstrap/
exit exit
fi fi


LOCALCLASSPATH=
# add in the dependency .jar files
DIRLIBS=lib/optional/*.jar
for i in ${DIRLIBS}
do
if [ "$i" != "${DIRLIBS}" ] ; then
LOCALCLASSPATH=$LOCALCLASSPATH:"$i"
fi
done

# make sure the classpath is in unix format
if $cygwin ; then
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi

CLASSPATH=$LOCALCLASSPATH:$CLASSPATH

# switch back to Windows format
if $cygwin ; then
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
fi

export CLASSPATH


if [ "$REALANTHOME" != "" ] ; then if [ "$REALANTHOME" != "" ] ; then
if $cygwin; then if $cygwin; then
REALANTHOME=`cygpath --path --windows "$REALANTHOME"` REALANTHOME=`cygpath --path --windows "$REALANTHOME"`
@@ -62,5 +37,5 @@ else
ANT_INSTALL="-emacs" ANT_INSTALL="-emacs"
fi fi


bootstrap/bin/ant "$ANT_INSTALL" $*
bootstrap/bin/ant -lib lib/optional "$ANT_INSTALL" $*



+ 50
- 37
src/main/org/apache/tools/ant/launch/Launcher.java View File

@@ -58,6 +58,10 @@ import java.net.URLClassLoader;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.io.File; import java.io.File;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;



/** /**
* This is a launcher for Ant. * This is a launcher for Ant.
@@ -118,43 +122,48 @@ public class Launcher {
throw new IllegalStateException("Ant home is set incorrectly or " throw new IllegalStateException("Ant home is set incorrectly or "
+ "ant could not be located"); + "ant could not be located");
} }
String libPath = "";
String[] newargs = null;
int argcount = -1;
for (argcount = 0; argcount < args.length -1; argcount++) {
if (args[argcount].equals("-lib")) {
libPath = args[argcount + 1];
break;

List libPaths = new ArrayList();
List argList = new ArrayList();
String[] newArgs;

for (int i = 0; i < args.length; ++i) {
if (args[i].equals("-lib")) {
if (i == args.length - 1) {
throw new IllegalStateException("The -lib argument must "
+ "be followed by a library location");
}
libPaths.add(args[++i]);
} else {
argList.add(args[i]);
} }
} }
if (args.length > 0 && args[args.length -1].equals("-lib")) {
// if the last argument is -lib
// remove it from the arguments passed to Launcher
//
newargs = new String[args.length - 1];
System.arraycopy(args, 0, newargs, 0, args.length -1);
} else if (libPath.equals("")) {
newargs = new String[args.length];
System.arraycopy(args, 0, newargs, 0, args.length);
} else {
newargs = new String[args.length - 2];
// copy the beginning of the args array
if (argcount > 0 ) {
System.arraycopy(args, 0, newargs, 0 ,argcount);
}
// copy the end of the args array
if ((argcount + 2 < args.length) && argcount > 0) {
System.arraycopy(args, argcount + 2, newargs, argcount, args.length - (argcount + 2));
}

if (libPaths.size() == 0) {
newArgs = args;
} else {
newArgs = (String[]) argList.toArray(new String[0]);
} }
StringTokenizer myTokenizer = new StringTokenizer(libPath, System.getProperty("path.separator"));
URL[] classPathJars = new URL[myTokenizer.countTokens()];
int classPathJarCount = 0;
while (myTokenizer.hasMoreElements()) {
String token = myTokenizer.nextToken();
classPathJars[classPathJarCount++] = new File(token).toURL();

List libPathURLs = new ArrayList();
for (Iterator i = libPaths.iterator(); i.hasNext();) {
String libPath = (String) i.next();
StringTokenizer myTokenizer
= new StringTokenizer(libPath, System.getProperty("path.separator"));
while (myTokenizer.hasMoreElements()) {
File element = new File(myTokenizer.nextToken());
if (element.isDirectory()) {
// add any jars in the directory
URL[] dirURLs = Locator.getLocationURLs(element);
for (int j = 0; j < dirURLs.length; ++j) {
libPathURLs.add(dirURLs[j]);
}
}
libPathURLs.add(element.toURL());
}
} }


URL[] libJars = (URL[])libPathURLs.toArray(new URL[0]);


// Now try and find JAVA_HOME // Now try and find JAVA_HOME
File toolsJar = Locator.getToolsJar(); File toolsJar = Locator.getToolsJar();
@@ -166,14 +175,14 @@ public class Launcher {
URL[] userJars = Locator.getLocationURLs(userLibDir); URL[] userJars = Locator.getLocationURLs(userLibDir);




int numJars = classPathJars.length + userJars.length + systemJars.length;
int numJars = libJars.length + userJars.length + systemJars.length;
if (toolsJar != null) { if (toolsJar != null) {
numJars++; numJars++;
} }
URL[] jars = new URL[numJars]; URL[] jars = new URL[numJars];
System.arraycopy(classPathJars, 0, jars, 0, classPathJars.length);
System.arraycopy(userJars, 0, jars, classPathJars.length, userJars.length);
System.arraycopy(systemJars, 0, jars, userJars.length + classPathJars.length,
System.arraycopy(libJars, 0, jars, 0, libJars.length);
System.arraycopy(userJars, 0, jars, libJars.length, userJars.length);
System.arraycopy(systemJars, 0, jars, userJars.length + libJars.length,
systemJars.length); systemJars.length);


if (toolsJar != null) { if (toolsJar != null) {
@@ -184,6 +193,10 @@ public class Launcher {
// now update the class.path property // now update the class.path property
StringBuffer baseClassPath StringBuffer baseClassPath
= new StringBuffer(System.getProperty("java.class.path")); = new StringBuffer(System.getProperty("java.class.path"));
if (baseClassPath.charAt(baseClassPath.length() - 1)
== File.pathSeparatorChar) {
baseClassPath.setLength(baseClassPath.length() - 1);
}


for (int i = 0; i < jars.length; ++i) { for (int i = 0; i < jars.length; ++i) {
baseClassPath.append(File.pathSeparatorChar); baseClassPath.append(File.pathSeparatorChar);
@@ -197,7 +210,7 @@ public class Launcher {
try { try {
Class mainClass = loader.loadClass(MAIN_CLASS); Class mainClass = loader.loadClass(MAIN_CLASS);
AntMain main = (AntMain) mainClass.newInstance(); AntMain main = (AntMain) mainClass.newInstance();
main.startAnt(newargs, null, null);
main.startAnt(newArgs, null, null);
} catch (Throwable t) { } catch (Throwable t) {
t.printStackTrace(); t.printStackTrace();
} }


+ 4
- 7
src/script/ant View File

@@ -71,8 +71,6 @@ if $cygwin ; then
ANT_HOME=`cygpath --unix "$ANT_HOME"` ANT_HOME=`cygpath --unix "$ANT_HOME"`
[ -n "$JAVA_HOME" ] && [ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"` JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi fi


# set ANT_LIB location # set ANT_LIB location
@@ -145,21 +143,20 @@ fi
if $cygwin; then if $cygwin; then
ANT_HOME=`cygpath --windows "$ANT_HOME"` ANT_HOME=`cygpath --windows "$ANT_HOME"`
JAVA_HOME=`cygpath --windows "$JAVA_HOME"` JAVA_HOME=`cygpath --windows "$JAVA_HOME"`
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"` LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"`
CYGHOME=`cygpath --windows "$HOME"` CYGHOME=`cygpath --windows "$HOME"`
fi fi


if [ -n "$CYGHOME" ]; then if [ -n "$CYGHOME" ]; then
if [ -n "$JIKESPATH" ]; then if [ -n "$JIKESPATH" ]; then
exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.launch.Launcher $ANT_ARGS "$@" -lib "$CLASSPATH"
exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.launch.Launcher $ANT_ARGS -lib "$CLASSPATH" "$@"
else else
exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.launch.Launcher $ANT_ARGS "$@" -lib "$CLASSPATH"
exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.launch.Launcher $ANT_ARGS -lib "$CLASSPATH" "$@"
fi fi
else else
if [ -n "$JIKESPATH" ]; then if [ -n "$JIKESPATH" ]; then
exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" org.apache.tools.ant.launch.Launcher $ANT_ARGS "$@" -lib "$CLASSPATH"
exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" org.apache.tools.ant.launch.Launcher $ANT_ARGS -lib "$CLASSPATH" "$@"
else else
exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" org.apache.tools.ant.launch.Launcher $ANT_ARGS "$@" -lib "$CLASSPATH"
exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" org.apache.tools.ant.launch.Launcher $ANT_ARGS -lib "$CLASSPATH" "$@"
fi fi
fi fi

+ 4
- 6
src/script/ant.bat View File

@@ -54,7 +54,6 @@ goto end


:checkJava :checkJava
set _JAVACMD=%JAVACMD% set _JAVACMD=%JAVACMD%
set LOCALCLASSPATH=%ANT_HOME%\lib\ant-launcher.jar


if "%JAVA_HOME%" == "" goto noJavaHome if "%JAVA_HOME%" == "" goto noJavaHome
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
@@ -69,24 +68,23 @@ if not "%JIKESPATH%"=="" goto runAntWithJikes


:runAnt :runAnt
if not "%CLASSPATH%"=="" goto runAntWithClasspath if not "%CLASSPATH%"=="" goto runAntWithClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
goto end goto end


:runAntWithClasspath :runAntWithClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS% -lib "%CLASSPATH%"
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
goto end goto end


:runAntWithJikes :runAntWithJikes
if not "%CLASSPATH%"=="" goto runAntWithJikesAndClasspath if not "%CLASSPATH%"=="" goto runAntWithJikesAndClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
goto end goto end


:runAntWithJikesAndClasspath :runAntWithJikesAndClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS% -lib "%CLASSPATH%"
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
goto end goto end


:end :end
set LOCALCLASSPATH=
set _JAVACMD= set _JAVACMD=
set ANT_CMD_LINE_ARGS= set ANT_CMD_LINE_ARGS=




Loading…
Cancel
Save