On Tue, 24 Dec 2002, Michael Wood wrote:
> On Mon, Dec 23, 2002 at 03:34:21PM -0200, Marcus Brito wrote:
> > Subject says all: what's the current status of the Java/JNI bindings?
> > Currently, it doesn't even compile. If noone is maintaining it, I'd like
> > to acquire more information so I can continue the work.
> >
> > Side note: I'm a java programmer, not a C programmer. I'll sure need
> > some with with the JNI stuff :)
>
> Subversion uses SWIG for the Python bindings, and the people who are
> currently working on Java bindings seem to think that SWIG should be
> used for the Java bindings too. I am in no way involved in that, so
> you'll have to wait for a reply from them as to the status.
>
> Maybe the subversion/bindings/java directory should be removed? Or
> there should at least be a README there to tell people that the they are
> out of date and that the SWIG bindings should be worked on instead.
I've done more work on the SWIG/JNI bindings (C code, build system, etc.),
which is waiting for commit on PacBell and AT&T for connection of DSL at my
new residence (don't hold your breath).
I've decided to pillage the existing (incomplete) JNI code to create a set
of Java interfaces which will be implemented using SWIG. These interfaces
could also be implemented using straight JNI or even completely
re-implemented in 100% Java (something I strongly recommend against).
Here's the first draft of a README I started a while back (very rough and
slightly out of date already), which you'll eventually be able to find in
the repository at trunk/subversion/bindings/java/README:
Subversion Java integration
===========================
$LastChangedDate: $
Contents:
I. STATUS
II. WHY NOT 100% PURE JAVA?
III. WHY SWIG?
IV. STATUS
V. TODO
I. STATUS
A SWIG-based JNI implementation of Java bindings for Subversion
are under development. They can be built via the
"swig-java-lib" target of the source tree's top-level make
file. If you don't have such a make file, see the INSTALL
document in the same directory for further instructions.
The Subversion Java libraries require extensive development to
be reach a functional state. Consumption by end users is not
yet advised.
Java bindings for Subversion were originally initiated by
Alexander Mueller (xela) as hand-coded JNI bindings, with the
intent of producing a desktop GUI client, and were eventually
discarded in favor of a C++/wxWindows implementation which
wraps the C reference libraries. Developers of the SWIG
implementation are encouraged to refer to xela's initial work
for guidance.
II. WHY NOT 100% PURE JAVA?
tigris.org's C library is the reference implementation of a
Subversion client's logic, and is the most robust client
implementation available. An alternative to its rapidly
maturing code base and active developer community which is of
similar quality would require significant effort, effort more
efficiently contributed towards further development of the
loadable libraries shared by all existing implementations.
III. WHY SWIG?
It's likely that Greg Stein has already answered this on the
dev@subversion.tigris.org mailing list. Search the archive
(http://subversion.tigris.org/servlets/SearchList?list=dev) and
fill in this space with answers of his from there.
The main accessor class for the SWIG-generated Java code is
org.tigris.subversion.swig.Subversion. It consists of a set of
static methods which wrap the raw and hard to understand
generated code.
IV. TODO
Update xela's JUnit work, adding a swig-java-check target to
the top-level build system.
swig-java-check: swig-java-lib
Start making the client library functional:
* Add a file (to an existing working copy)
* Update to a specific global revision
* Commit a file
* Check out a working copy
* etc.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Dec 31 03:01:48 2002