gump-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Davanum Srinivas <dava...@gmail.com>
Subject Re: XML Resolver for Xerces on Kaffe was Re: Hello Gump)
Date Mon, 06 Dec 2004 02:45:30 GMT
YIKES!!!!!!!!!!!

-- dims


On Sun, 05 Dec 2004 18:54:58 -0500, Stefano Mazzocchi
<stefano@apache.org> wrote:
> Davanum Srinivas wrote:
> > Stefano,
> >
> > i think i poked through all the jars in JDK 1.4 and did not find
> > it...hence the question.
> 
> Found it!!!
> 
> The problem is in the XJavac task that Xerces2 uses to compile stuff
> (probably it's a left-over workaround from an ant bug on the javac task).
> 
> Now, not only I can't find the sourcecode of that sucker (I had to
> decompile it with jad (find it attached) but here is the offending part:
> 
>   String s = ((String) properties.get( "java.vendor" )).toUpperCase(
> Locale.ENGLISH );
>   if(s.indexOf("IBM") >= 0)
>   {
>                // create an IBM-specific classpath
>   }
>   else if(s.indexOf("SUN") >= 0 ||
>           s.indexOf("BLACKDOWN") >= 0 ||
>           s.indexOf("APPLE") >= 0)
>   {
>            // build the regular classpath
>   }
> 
> note how the classpath *IS*NOT*BUILT* if neither of the above match!
> 
> I would strongly lobby with the xerces people to get rid of that silly task.
> 
> --
> Stefano.
> 
> 
> // Decompiled by Jad v1.5.8c. Copyright 2001 Pavel Kouznetsov.
> // Jad home page: http://www.geocities.com/kpdus/jad.html
> // Decompiler options: packimports(3)
> // Source File Name:   XJavac.java
> 
> package org.apache.xerces.util;
> 
> import java.util.Hashtable;
> import java.util.Locale;
> import org.apache.tools.ant.BuildException;
> import org.apache.tools.ant.taskdefs.Javac;
> import org.apache.tools.ant.types.Path;
> import org.apache.tools.ant.util.JavaEnvUtils;
> 
> public class XJavac extends Javac
> {
> 
>     public XJavac()
>     {
>     }
> 
>     public void execute()
>         throws BuildException
>     {
>         if(isJDK14OrHigher())
>         {
>             java.util.Properties properties = null;
>             try
>             {
>                 properties = System.getProperties();
>             }
>             catch(Exception exception)
>             {
>                 throw new BuildException("unable to determine java vendor because could
not access system properties!");
>             }
>             String s = ((String)properties.get("java.vendor")).toUpperCase(Locale.ENGLISH);
>             if(s.indexOf("IBM") >= 0)
>             {
>                 Path path = createBootclasspath();
>                 String s1 = System.getProperty("java.home");
>                 StringBuffer stringbuffer = new StringBuffer();
>                 stringbuffer.append(s1).append("/lib/charsets.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/core.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/graphics.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/javaws.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/jaws.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/security.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/server.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/ext/JawBridge.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/ext/gskikm.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/ext/ibmjceprovider.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/ext/indicim.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/ext/jaccess.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/ext/ldapsec.jar:");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 stringbuffer.replace(s1.length(), stringbuffer.length(), "/lib/ext/oldcertpath.jar");
>                 path.createPathElement().setPath(stringbuffer.toString());
>                 setBootclasspath(path);
>             } else
>             if(s.indexOf("SUN") >= 0 || s.indexOf("BLACKDOWN") >= 0 || s.indexOf("APPLE")
>= 0)
>             {
>                 Path path1 = createBootclasspath();
>                 Path path2 = getClasspath();
>                 path1.append(path2);
>                 String s2 = (String)properties.get("sun.boot.class.path");
>                 Path path3 = new Path(null);
>                 path3.createPathElement().setPath(s2);
>                 path1.append(path3);
>                 setBootclasspath(path1);
>             }
>         }
>         super.execute();
>     }
> 
>     private boolean isJDK14OrHigher()
>     {
>         String s = JavaEnvUtils.getJavaVersion();
>         return s.equals("1.4") || !s.equals("1.3") && !s.equals("1.2") &&
!s.equals("1.1") && !s.equals("1.0");
>     }
> }
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: general-unsubscribe@gump.apache.org
> For additional commands, e-mail: general-help@gump.apache.org
> 
> 


-- 
Davanum Srinivas - http://webservices.apache.org/~dims/

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@gump.apache.org
For additional commands, e-mail: general-help@gump.apache.org


Mime
View raw message