|
|
@@ -17,6 +17,7 @@ |
|
|
|
package org.apache.tools.ant; |
|
|
|
|
|
|
|
import org.apache.tools.ant.util.LoaderUtils; |
|
|
|
import org.apache.tools.ant.util.FileUtils; |
|
|
|
import org.apache.tools.ant.launch.Launcher; |
|
|
|
|
|
|
|
import javax.xml.parsers.SAXParserFactory; |
|
|
@@ -26,6 +27,8 @@ import java.io.FilenameFilter; |
|
|
|
import java.io.PrintStream; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.BufferedOutputStream; |
|
|
|
import java.io.FileOutputStream; |
|
|
|
import java.util.Enumeration; |
|
|
|
import java.util.Properties; |
|
|
|
import java.lang.reflect.Method; |
|
|
@@ -202,10 +205,8 @@ public final class Diagnostics { |
|
|
|
public static void doReport(PrintStream out) { |
|
|
|
out.println("------- Ant diagnostics report -------"); |
|
|
|
out.println(Main.getAntVersion()); |
|
|
|
out.println(); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
out.println(" Implementation Version "); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
header(out, "Implementation Version"); |
|
|
|
|
|
|
|
out.println("core tasks : " + getImplementationVersion(Main.class)); |
|
|
|
|
|
|
|
Class optional = null; |
|
|
@@ -218,44 +219,35 @@ public final class Diagnostics { |
|
|
|
out.println("optional tasks : not available"); |
|
|
|
} |
|
|
|
|
|
|
|
out.println(); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
out.println(" ANT_HOME/lib jar listing"); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
header(out, "ANT_HOME/lib jar listing"); |
|
|
|
doReportAntHomeLibraries(out); |
|
|
|
|
|
|
|
out.println(); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
out.println(" USER_HOME/.ant/lib jar listing"); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
header(out, "USER_HOME/.ant/lib jar listing"); |
|
|
|
doReportUserHomeLibraries(out); |
|
|
|
|
|
|
|
out.println(); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
out.println(" Tasks availability"); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
header(out, "Tasks availability"); |
|
|
|
doReportTasksAvailability(out); |
|
|
|
|
|
|
|
out.println(); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
out.println(" org.apache.env.Which diagnostics"); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
header(out, "org.apache.env.Which diagnostics"); |
|
|
|
doReportWhich(out); |
|
|
|
|
|
|
|
header(out, "XML Parser information"); |
|
|
|
doReportParserInfo(out); |
|
|
|
|
|
|
|
header(out, "System properties"); |
|
|
|
doReportSystemProperties(out); |
|
|
|
|
|
|
|
header(out, "Temp dir"); |
|
|
|
doReportTempDir(out); |
|
|
|
out.println(); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
out.println(" XML Parser information"); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
doReportParserInfo(out); |
|
|
|
} |
|
|
|
|
|
|
|
private static void header(PrintStream out, String section) { |
|
|
|
out.println(); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
out.println(" System properties"); |
|
|
|
out.print(" "); |
|
|
|
out.println(section); |
|
|
|
out.println("-------------------------------------------"); |
|
|
|
doReportSystemProperties(out); |
|
|
|
|
|
|
|
out.println(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -395,4 +387,50 @@ public final class Diagnostics { |
|
|
|
out.println("XML Parser : " + parserName); |
|
|
|
out.println("XML Parser Location: " + parserLocation); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* try and create a temp file in our temp dir; this |
|
|
|
* checks that it has space and access. |
|
|
|
* @param out |
|
|
|
*/ |
|
|
|
private static void doReportTempDir(PrintStream out) { |
|
|
|
String tempdir=System.getProperty("java.io.tmpdir"); |
|
|
|
if( tempdir == null ) { |
|
|
|
out.println("Warning: java.io.tmpdir is undefined"); |
|
|
|
return; |
|
|
|
} |
|
|
|
out.println("Temp dir is "+ tempdir); |
|
|
|
File tempDirectory=new File(tempdir); |
|
|
|
if(!tempDirectory.exists()) { |
|
|
|
out.println("Warning, java.io.tmpdir directory does not exist: "+ |
|
|
|
tempdir); |
|
|
|
return; |
|
|
|
} |
|
|
|
//create the file |
|
|
|
File tempFile=null; |
|
|
|
FileOutputStream fileout = null; |
|
|
|
try { |
|
|
|
tempFile = File.createTempFile("diag","txt",tempDirectory); |
|
|
|
//do some writing to it |
|
|
|
fileout = new FileOutputStream(tempFile); |
|
|
|
byte buffer[]=new byte[1024]; |
|
|
|
for(int i=0;i<32;i++) { |
|
|
|
fileout.write(buffer); |
|
|
|
} |
|
|
|
fileout.close(); |
|
|
|
fileout=null; |
|
|
|
tempFile.delete(); |
|
|
|
out.println("Temp dir is writeable"); |
|
|
|
} catch (IOException e) { |
|
|
|
out.println("Failed to create a temporary file in the temp dir " |
|
|
|
+ tempdir); |
|
|
|
out.println("File "+ tempFile + " could not be created/written to"); |
|
|
|
} finally { |
|
|
|
FileUtils.close(fileout); |
|
|
|
if(tempFile!=null && tempFile.exists()) { |
|
|
|
tempFile.delete(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |