Great answers, Knut, this was pretty much what I suspected. The missing piece is I didn't know that the packages were moved, that explains what is going on.
I think for now I'll try just adding the xalan packages to the classpath. JDK 1.6 support is coming soon to the Mac, I hear, so it's a shortish-term problem that I don't think deserves a large effort. David On 6/9/07, Knut Anders Hatlen <[EMAIL PROTECTED]> wrote:
David Van Couvering <[EMAIL PROTECTED]> writes: > I'm a little stumped. All of a sudden my build started failing > > compile_iapi_error_jsr169: > compile_reference: > Compiling 4 source files to /Users/David/code/derby/trunk/classes > /Users/David/code/derby/trunk/java/engine/org/apache/derby/iapi/types/SqlXmlUtil.java:60: > package org.apache.xpath does not exist > > I am not sure if this is relevant, but I have this in my ant.properties: > > j14lib=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes > > Notice I am pointing j14lib to a 1. 5 location. I'm not sure if that's what causing it, but in Sun Java SE 5.0, many XML related classes were moved from the org.apache package hierarchy into com.sun.org.apache to avoid conflicts with jar files installed by users. Perhaps it would work if you downloaded the jar files from http://xalan.apache.org and included them in j14lib. > This is because there is no mechanism that I can see in Derby to build > with 1.5. The problem is, on a Mac, there *is* no 1.6 JDK. It's > either 1.4 or 1.6. > > Regardless if this is the cause of my problems, Is there a correct way > to build with a 1.5 compiler? If not, how would I go about adding > this? I don't think there is a correct way currently. Some of the code (two classes in the lock manager) is compiled for 1.5 with the 1.6 compiler if it's available, but that won't work if there's no 1.6 JDK for the platform. You could perhaps try the same approach as we currently use for 1.6 and create build targets that only run if the jdk15 property is set. That is, the build targets would have to look for the compiler in ${jdk15}/bin/javac and have an attribute if="jdk15" to prevent them from running if the jdk15 variable isn't defined, and fork="yes". Alternatively, if we're ready to add Java 1.5 as a requirement for building Derby, we could have a j15lib variable and non-optional, non-forking build targets similar to the ones we have for Java 1.4 and had for Java 1.3. -- Knut Anders
