Return-Path: Delivered-To: apmail-jakarta-ant-dev-archive@apache.org Received: (qmail 25873 invoked from network); 28 Jun 2002 11:45:31 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by 209.66.108.5 with SMTP; 28 Jun 2002 11:45:31 -0000 Received: (qmail 5859 invoked by uid 97); 28 Jun 2002 11:45:36 -0000 Delivered-To: qmlist-jakarta-archive-ant-dev@jakarta.apache.org Received: (qmail 5801 invoked by uid 97); 28 Jun 2002 11:45:35 -0000 Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 5790 invoked by uid 97); 28 Jun 2002 11:45:35 -0000 X-Antivirus: nagoya (v4198 created Apr 24 2002) Date: 28 Jun 2002 11:45:23 -0000 Message-ID: <20020628114523.90523.qmail@icarus.apache.org> From: sbailliez@apache.org To: jakarta-ant-cvs@apache.org Subject: cvs commit: jakarta-ant/src/main/org/apache/tools/ant Diagnostics.java X-Spam-Rating: 209.66.108.5 1.6.2 0/1000/N X-Spam-Rating: 209.66.108.5 1.6.2 0/1000/N sbailliez 2002/06/28 04:45:23 Modified: src/main/org/apache/tools/ant Tag: ANT_15_BRANCH Diagnostics.java Log: Use reflection to make it compile under JDK 1.1 Revision Changes Path No revision No revision 1.1.2.3 +53 -11 jakarta-ant/src/main/org/apache/tools/ant/Attic/Diagnostics.java Index: Diagnostics.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/Attic/Diagnostics.java,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -r1.1.2.2 -r1.1.2.3 --- Diagnostics.java 26 Jun 2002 23:14:31 -0000 1.1.2.2 +++ Diagnostics.java 28 Jun 2002 11:45:23 -0000 1.1.2.3 @@ -100,7 +100,8 @@ Class optional = Class.forName("org.apache.tools.ant.taskdefs.optional.Test"); String coreVersion = getImplementationVersion(Main.class); String optionalVersion = getImplementationVersion(optional); - if (coreVersion == null || !coreVersion.equals(optionalVersion) ){ + + if (coreVersion != null && !coreVersion.equals(optionalVersion) ){ throw new BuildException( "Invalid implementation version between Ant core and Ant optional tasks.\n" + " core : " + coreVersion + "\n" + @@ -149,13 +150,19 @@ * '?.?' for JDK 1.0 or 1.1. */ private static String getImplementationVersion(Class clazz){ - if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_0) - || JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)){ - return "?.?"; - } - Package pkg = clazz.getPackage(); - if (pkg != null) { - return pkg.getImplementationVersion(); + try { + // Package pkg = clazz.getPackage(); + Method method = Class.class.getMethod("getPackage", new Class[0]); + Object pkg = method.invoke(clazz, null); + if (pkg != null) { + // pkg.getImplementationVersion(); + method = pkg.getClass().getMethod("getImplementationVersion", new Class[0]); + Object version = method.invoke(pkg, null); + return (String)version; + } + } catch (Exception e){ + // JDK < 1.2 should land here because the methods above don't exist. + return "?.?"; } return null; } @@ -171,15 +178,15 @@ out.println("-------------------------------------------"); out.println(" Implementation Version (JDK1.2+ only)"); out.println("-------------------------------------------"); - out.println(" core tasks : " + getImplementationVersion(Main.class)); + out.println("core tasks : " + getImplementationVersion(Main.class)); Class optional = null; try { optional = Class.forName( "org.apache.tools.ant.taskdefs.optional.Test"); - out.println(" optional tasks : " + getImplementationVersion(optional)); + out.println("optional tasks : " + getImplementationVersion(optional)); } catch (ClassNotFoundException e){ - out.println(" optional tasks : not available"); + out.println("optional tasks : not available"); } out.println(); @@ -192,6 +199,19 @@ + " (" + libs[i].length() + " bytes)"); } +/* + out.println(); + out.println("-------------------------------------------"); + out.println(" Core tasks availability"); + out.println("-------------------------------------------"); + Properties props = new Properties(); + InputStream is = Main.class.getResourceAsStream("org/apache/tools/ant/taskdefs/default.properties"); + + out.println(); + out.println("-------------------------------------------"); + out.println(" Optional tasks availability"); + out.println("-------------------------------------------"); +*/ out.println(); Throwable error = null; try { @@ -227,5 +247,27 @@ out.println(); } + +/* + private void doReportTasksAvailability(PrintStream out, InputStream in) { + if (is == null) { + out.println("None available"); + } else { + props.load(is); + for (Enumeration keys = props.keys(); keys.hasMoreElements();){ + String key = (String)keys.nextElement(); + String classname = props.getProperty(key); + try { + Class.forName(classname); + props.remove(key); + } catch (ClassNotFoundException e){ + out.println(classname + " : Not Available"); + } + } + if (props.size() == 0){ + out.println("All defined tasks are available"); + } + } + } */ } -- To unsubscribe, e-mail: For additional commands, e-mail: