On 04.06.10 05:24, Brett Wooldridge wrote:
I'm looking for a little guidance on building Derby on OS X.

I checked out the trunk from SVN, and followed the build instructions:

http://svn.apache.org/viewvc/db/derby/code/trunk/BUILDING.html?view=co

While seemingly simple, I've run into a series of issues. First attempt failed quickly with deprecation errors. So, I created a local.properties file and set "deprecation=off". That fixed that.

Subsequently, I get org.apache.xpath does not exist. While the source tree seems to contain these in tools/java, the build doesn't seem to use them directly. Adding them explicitly to ant.properties get's further

java14compile.classpath
java15compile.classpath
java16compile.classpath

Though first I had to set "printCompilerProperties=true" to capture the relevant full paths.

Why doesn't Derby just use these by default? What is the point of the nice classpath detection code for OS X if ultimately you have to override the classpath's completely in ant.properties?

Finally, I've ended up with a simple compilation failure:

compile_iapi_jdbc_stmt:
[javac] Compiling 1 source file to /Users/brettw/Documents/dev/derby-trunk/trunk/classes [javac] /Users/brettw/Documents/dev/derby-trunk/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredStatement.java:43: org.apache.derby.iapi.jdbc.BrokeredStatement is not abstract and does not override abstract method isPoolable() in java.sql.Statement
    [javac] public class BrokeredStatement implements EngineStatement
    [javac]        ^
[javac] /Users/brettw/Documents/dev/derby-trunk/trunk/java/engine/org/apache/derby/iapi/jdbc/BrokeredStatement.java:563: isClosed() in org.apache.derby.iapi.jdbc.BrokeredStatement cannot implement isClosed() in java.sql.Statement; attempting to assign weaker access privileges; was public
    [javac]     protected boolean isClosed() throws SQLException {
    [javac]                       ^
    [javac] 2 errors

This is the same error that was flagged when I loaded the source up in Eclipse. I thought my Eclipse build environment wasn't setup right, so surely the official ant build would work.

So, I'm kindof stuck.  Some guidance would be greatly appreciated.

By way of small criticism (and really I do love Derby), it should be a goal of an open source project to get a successful build (on all platforms) by simply performing (a) svn co ..., followed by (b) ant.

Hi Brett,

We're aware of this issue, and have done work in this area for some time.

It would be helpful if you could take a step back to help us debug why the build isn't working: 1) Remove your ant.properties file and the local.properties (and any arguments you are passing to ant) - it may be wise to keep them around in case you need them later 2) Save the output (to file, or just use less) from when you invoke ant with -DprintCompilerProperties=true 3) Post the output from under the section called 'printCompilerProperities' (down to 'jsr169stubs')

I believe we have at least one community member developing on a Mac, so if you provide this information maybe he can give some helpful feedback. I have also built Derby on a Mac Mini without problems, so I don't know what's different in your case.

Based on your final compilation failure, it looks like the wrong JDK library version is used.
And for the sake of clarity, is your source tree unmodified?


Regards,
--
Kristian


Thanks in advance.

Brett

Reply via email to