The Java binding is maintained by Matthew Dovey <matthew.dovey@oucs.ox.ac.uk>
You probably want the current version.
The Java binding is largely specified: it's complete enough that it's possible to build working implementations (I have done so), but it should not be considered stable. It is liable to change: in particular, towards being more idiomatic Java.
The following version of the interface specification are available:
To give a flavour of the Java binding, here is ZOOM's equivalent of the ``Hello World'' program: a tiny Z39.50 client that fetches and displays the MARC record for Farlow & Brett Surman's The Complete Dinosaur from the Library of Congress.
import uk.org.miketaylor.zoom.*;
class Canonical {
public static void main (String[] args) throws Exception {
Connection conn = new Connection("z3950.loc.gov", 7090);
conn.option("databaseName", "Voyager");
conn.option("preferredRecordSyntax", "USMARC");
Query q = new PrefixQuery("@attr 1=7 0253333490");
ResultSet rs = conn.search(q);
System.out.println(rs.getRecord(0).render());
}
}
At least three streams of work have begun on Java bindings, though none has yet reached a releasable level of maturity:
On another tack, they will be supporting external Z39.50 interfaces for their services, so even if they don't use it for internal messaging, they might still look at how ZOOM could help support external messaging via Z39.50.
Contact Ralph LeVan <levan@oclc.org> or Bradley Watson <watsonb@oclc.org> for details.
OCLC's work predates the publishing of the Java binding's specification. We hope that their work and mine can all be brought to a single harmonised API which can be considered the standard Java binding for ZOOM.
As I was writing the binding specification, I ran into a surprising number of issues which may be of interest to others. Some of them are no doubt just down to my lack of familiarity with Java; others seem to highlight real deficiencies in the language[1]. Here they are, for anyone who wants to understand more of the reasoning behind the decisions made in this binding.
Notes