Ok, after being a little quiet recently things are picking up (well at least
for now).

Anyhow, here's whats happening on the JDBC front:

1) ANT vs Make

As someone (sorry forgotten your name) suggested using ANT instead of Make
for building the driver. Well yesterday was pretty quiet here so I finally
took the plunge and rewrote both the Makefile and its supporting class into
ANT's xml build file.

Lets just say this is definitely the way to go. The size of the Makefile &
CheckVersions.java came to about 19K. build.xml is just over 2K and does
exactly the same thing (and is faster).

The real beauty about ANT is that it's platform independent as it's written
in Java itself. ANT is part of the Apache Jakarta Project, and more details
are available from http://jakarta.apache.org/ant/

So as of last night we now have two methods of compiling the driver:

Method 1: Make
  make			This builds and runs a test to see which version to
build. If this fails then run one of:
  make jdbc1		This builds the JDBC1 driver
  make jdbc2		Build the JDBC2 standard driver
  make enterprise	Build the JDBC2 Enterprise driver
  make examples	Build the JDBC1 & 2 Examples
  make examples2	Build the JDBC2 only examples
  make corba		Build the corba example

Method 2: ANT
  ant			Builds the correct driver dependent on what JDK you
have installed.
  ant clean		Removes any built classes and jar files
  ant examples		Builds the examples correct for the JDK version in
use

I suggest we keep supporting both methods for now to see how people get on.
CVS has an early version of build.xml, but I'm currently refining it today.

2) Versioning

Ok, one problem in the past was keeping the driver uptodate with the correct
version numbers. Before it was stored in three locations. Now back in
October I moved this all into the org.postgresql.Driver class, so there was
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.

Hackers: Any ideas on how to solve this problem? If necessary I'll manually
set it before release so it's not broken, but it needs sorting.

3) Web site

www.retep.org.uk has now moved from Demon to Hub. However I'm having some
problems still, mainly with my linux box at home. It's probably not going to
be before next Wednesday before I get everything backup to speed. I'll try
to get the updates on there, but can't guarantee it at the moment.

4) Email addresses

As of this Friday (22nd December) the petermount@maidstone.gov.uk address
will cease to exist. The peter@maidast.demon.co.uk one should be dead by now
so obviously don't use that one either.

Please only use the peter@retep.org.uk one for contacting me from now on.

Thanks, Peter

-- 
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


Wed, 20 Dec 2000 11:42:49 -0000
Peter Mount <petermount@maidstone.gov.uk>
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.

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

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.

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.

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.)

> 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.

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).

-- 
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/


Thu, 21 Dec 2000 19:30:14 +0100 (CET)
Peter Eisentraut <peter_e@gmx.net>
Re: Status of JDBC Interface