[libvirt] libvirt-java storage support and refactoring

Chris Lalancette clalance at redhat.com
Sat Aug 2 16:39:44 UTC 2008


Tóth István wrote:
> I've found that libvirt for the most part has a very perdicitble and 
> repetitive API (great design!), and  as a result I've found myself  
> copying the same code over and over again.
> I've decided to make generic JNI functions, that can handle multiple 
> libvirt functions  with function pointers.
> The generic functions are in generic.c and they are used extensively in 
> the new Storage JNI implementation.
> 
> I'd like to have your input on this architecture, my current plan is to 
> refactor all trivial JNI functions to use these generics, unless there 
> are objections.

(I haven't really read your patches, but...)

It's definitely good to get rid of a lot of the duplicated code.  However, you
might want to take a look at the ruby-libvirt bindings as a different way to do
it.  Basically, there are a few macros which generate much of the "duplicated"
type code, and in my opinion, it's a little easier to read than lots of function
callbacks.  The downside is that it's harder to debug with something like gdb,
but I'm not sure that is something you do with JNI bindings anyway.

Just a thought.

Chris Lalancette




More information about the libvir-list mailing list