Wed, 26 Sep 2007

java-gnome 4.0.4 released!

This blog post is the release note from theNEWSfile which you can read
online … or in the
sources,
of course!

java-gnome 4.0.4 (26 Sep 2007)

Coverage increasing!

Most of our work continues to be on infrastructure and architecture, improving
the code generator that outputs the translation Java layer and JNI C layer
which allow bindings hackers to reach the underlying native libraries.
Nevertheless, there have been a number of publicly visible improvements across
the board, so we wanted to push out a release highlighting these contributions!

Documentation improvements

Continuing our effort to have extensive developer friendly tutorial style
documentation, there have been major additions to a number of existing classes.
Of particular note is the Window class, containing the various utility methods
used to ask the window manager to do things for you (we’ve also started
exposing some of the deeper parts of the GTK toolkit, though only a few things
that were immediately related to window management).

While the topic of thread safety was discussed at considerable length in the
last release, we have added some of the more relevant information to the code
documentation to reinforce its importance.

New coverage

Numerous people have been hard at work developing new coverage. The standards
for accepting patches which expose public API are high, so it’s awesome to see
bundles accepted for being merged to mainline from new contributors Thomas
Schmitz, Wouter Bolsterlee, and Nat Pryce.

The infrastructure for a number of areas important to supporting applications
including Menus, Toolbars, and Actions has been put in place.

A number of Container related Widgets have been added, though coverage is
preliminary. There have, of course, also been a number of minor improvements in
other existing classes, miscellaneous constants and wrappers around
the stock item identifiers.

Internals

Vreixo Formoso carried out an important refactoring to the type database and
Generator family of classes in the code generator, with the result that more of
the array passing and out-parameter cases are now being handled correctly. This
kind of work is usually thankless and taken for granted, but it’s hugely
appreciated!

The real gains are in internal quality. A number of serious bugs and
limitations have been overcome (Glade is working again, for example). The
generated code now guards against improper use (you can’t pass a null pointer
unless it’s allowed by the underlying library). Related to this is handling of
“GError” — Java side, bindings hackers will get GlibException which they
can then re-throw as an appropriate Java Exception, say FileNotFoundException
in the case of not being able to open a file.

This all goes along with numerous build system fixes by Srichand Pendyala to
make for an increasingly robust project. Thanks guys!

Looking ahead

As mentioned above, we have mostly been focused on areas other than public API,
but it is expanding steadily. The hard work on infrastructure, however, is
starting to pay off, and the next release should include coverage of TreeView,
GTK’s powerful but complex list Widget.

We make this service available to our staff and colleagues in order to promote
the discourse of ideas especially as relates to the development of Open Source
worldwide. Blog entries on this site, however, are the musings of the authors
as individuals and do not represent the views of Operational Dynamics