Daniel John Debrunner wrote:
Rick Hillegas wrote:

The place to add support for additional platforms/vms would be trunk/java/build/org/apache/derbyPreBuild/PropertySetter.java The class has a pretty extensive header comment explaining what the class does--but please let me know if the header is unclear.

At line 207 (just after this code)

  if ( j14lib != null ) { setClasspathFromLib( J14LIB, j14lib ); }
  if ( j15lib != null ) { setClasspathFromLib( J15LIB, j15lib ); }

should the task return if both j14lib and j15lib were set? E.g.

if (j14lib != null && j15lib != null)
    return;

Other it seems the setting of the classpath will be overwritten in the platform specific code and for me the build fails because the vm (Apache Harmony) is not recognized, even though I've defined j14lib & j15lib.
Thanks for the quick test-drive, Dan. I don't understand what you're seeing. If j14lib and j15lib were set, then PropertySetter should have set each corresponding compile.classpath property to be equal to the list of jars in the indicated library. Are there in fact jar files in those directories? Is the file extension on the jar files ".jar"? Maybe the JarFilter inner class isn't smart enough to find your jar files. Could you list out what's in those directories?

If the PropertySetter didn't manage to set the compile.classpath properties, then PropertySetter should have aborted the build and printed out its environment. Could you attach that printout?


In setForMostJDKs() this code exists:

String sunJavaRoot = javaHome + File.separator + ".." + File.separator + "..";

I think this should be using File.getParent() and not "..". Technically ".." is not part of the Java specification. From the various comments on the list it seems there is some assumption about where JVM's live in relationship to each other, but these doesn't seem to be documented in the code.

Dan.
Thanks for pointing out this improvement.

Regards,
-Rick





Reply via email to