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).
* **`org.gnome.gtk.Window`**
* **`org.gnome.gtk.Widget`**
* **`org.gnome.gdk.Screen`**
* **`org.gnome.gdk.Window`**
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.
* **`org.gnome.gdk.Gdk`**'s `lock`
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:
* **`org.gnome.gtk.Toolbar`**
* **`org.gnome.gtk.ToolItem`**
* **`org.gnome.gtk.ToolButton`**
* **`org.gnome.gtk.ToggleToolButton`**
* **`org.gnome.gtk.MenuToolButton`**
* **`org.gnome.gtk.SeparatorToolItem`**
* **`org.gnome.gtk.MenuItem`**
* **`org.gnome.gtk.CheckMenuItem`**
* **`org.gnome.gtk.SeparatorMenuItem`**
* **`org.gnome.gtk.Action`**
* **`org.gnome.gtk.ActionGroup`**
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, including:
* **`org.gnome.gtk.Notebook`**
* **`org.gnome.gtk.ScrolledWindow`**
* **`org.gnome.gtk.Misc`**
* **`org.gnome.gtk.ButtonBox`**
* **`org.gnome.gtk.HButtonBox`**
* **`org.gnome.gtk.VButtonBox`**
* **`org.gnome.gtk.Label`**
and even:
* **`org.gnome.gtk.StatusIcon`**
Along with these goes a variety of miscellaneous constants and wrappers around
the stock item identifiers:
* **`org.gnome.gtk.Alignment`**
* **`org.gnome.gtk.ImageType`**
* **`org.gnome.gtk.ButtonBoxStyle`**
* **`org.gnome.gtk.Justification`**
* **`org.gnome.gtk.Orientation`**
* **`org.gnome.gtk.Stock`**
* **`org.gnome.gdk.Gravity`**
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.
AfC
Gentoo packages
===============
The java-gnome bindings suite is now available in [Gentoo
Linux](http://www.gentoo.org/). An `.ebuild` for 4.0.3 has been merged to
Portage in
* `dev-java/java-gnome`
If you need help installing it, see the the Gentoo page in the
[download](/4.0/get/gentoo.php) section here.
Thanks to the people who pushed this through: Xerces MC for having submitted an
initial `.ebuild`, Petteri Räty (Gentoo dev and Java team lead) for having
fixed it up, and Christoph Brill for testing.
AfC