RE: Status of JDBC Interface - Mailing list pgsql-hackers
From | Peter Mount |
---|---|
Subject | RE: Status of JDBC Interface |
Date | |
Msg-id | 1B3D5E532D18D311861A00600865478CF1B6A6@exchange1.nt.maidstone.gov.uk Whole thread Raw |
In response to | Status of JDBC Interface (Peter Mount <petermount@maidstone.gov.uk>) |
List | pgsql-hackers |
-- Peter Mount Enterprise Support Officer, Maidstone Borough Council Email: petermount@maidstone.gov.uk WWW: http://www.maidstone.gov.uk All views expressed within this email are not the views of Maidstone Borough Council > -----Original Message----- > From: Peter Eisentraut [mailto:peter_e@gmx.net] > Sent: Thursday, December 21, 2000 6:30 PM > To: Peter Mount > Cc: PostgreSQL Interfaces (E-mail); PostgreSQL Developers > List (E-mail) > Subject: Re: [HACKERS] Status of JDBC Interface > > > Peter Mount writes: > > > 1) ANT vs Make > > > I suggest we keep supporting both methods for now to see > how people get on. > > If you're confident about ANT is suggest that you dump the > make interface because otherwise you increase the possible > failure scenarios at the install level alone in combinatorial ways. My plan is to keep both for this release and then (assuming there's feedback about how ANT is working) to remove the current Makefile for the next one. > What's a bit sad about the JDBC subtree is that it doesn't follow the > build system conventions in the rest of the tree. For example, I would > really like to be able to do this: > > ./configure ... --with-java[=/usr/local/j2sdk1.3.0] > make > make install I did think about that but ran out of time. What would be nice would be for configure to either detect the presence of the JDK & ANT (with --with-java and --with-ant pairs) and then automatically call a cut down Makefile. ie: -- Begin Makefile -- all:ant clean:ant clean -- End Makefile -- The one big thing for ANT is that it makes the detection of the JDK/JVM version simple, so detecting the JDK/JVM version isn't required anywhere in the Makefiles. > This wouldn't only make it easier on users, but many more people would > perhaps be exposed to the fact that there's a JDBC driver in > the tree at all. Agreed. I still get emails from people asking for the source when it's included in the main source tree. > I have on and off had some ideas about autoconfiscating the > JDBC build but I'm glad I didn't do it since this Ant thing seems to be much better. > But it would still be desirable to have a make wrapper since > that is what people are accustomed to. Yes. I could replace Makefile now, but I wanted to see what everyones opinion on ANT was first. > Btw., how does Ant choose the JDK it uses if I have three or four > installed at random places? (This is perhaps yet another source of > problems, if make and ant use different JDKs by default.) There's the JAVA_HOME environment variable used by the JDK. Normally the JDK can work it out without the user setting it. I use it to switch between 1.1.8 & 1.2.2 (you also have to change PATH). Anyhow, you have set JAVA_HOME then ANT will use that for the compiler. There's also ANT_HOME but I'm running ok without that one set. PS: ANT works with both Sun's javac, jikes (IBM's compiler) and jvc (Micro$oft's Java/VisualJ++) The more I look into ANT's capabilities the more I like it. It's extensible (you can write your own class to implement new tasks) and it even has the ability to use CVS and apply patches on the fly, so if someone has CVS installed they only need to run: ant update and an update target (ANT's name for a rule in Make) then checks out the current source before building. > > 2) Versioning > > > one location. Also as suggested on the Hackers list Make > now extracts the > > version from Makefile.global. This works fine for Make, but > there are two > > problems. > > > > First, ANT can't read this easily. This isn't that major, > but the second one > > is. I've had reports that some people checkout just the > interfaces, and not > > the entire source, so Makefile.global is not available. > > Just checking out interfaces is not advertised AFAIK and it definitely > doesn't work for anything but the JDBC driver. I had an email from someone who said they did this (I didn't know you could before then) because of space reasons. Before 7.0 yes JDBC would be compileable but it has a link to Makefile.global now. > OTOH, nothing is stopping you from inventing your own > versioning scheme for the driver only. Several other things in the tree do this as well > (PyGreSql, PgAccess). True, but historically the JDBC versioning has matched that of the backend, and I think it makes it easier to say JDBC Driver v7.1 is for 7.1.x backends. This is especially as in this version DatabaseMetaData will not work with earlier version backends (uses INNER & OUTER joins). If I get chance today I'll see if I can get it to pull the versions out of Makefile.global. Peter
pgsql-hackers by date: