Daniel Veillard wrote:
On Sat, Jul 25, 2009 at 08:02:09AM -0400, Bryan Kearney wrote:
> ---
> README | 12 ++--
> src/org/libvirt/Connect.java | 102 ++++++++++++++++++++++++++++----------
> src/org/libvirt/Network.java | 65 +++++++++++-------------
> src/org/libvirt/jna/Libvirt.java | 23 ++++++++-
> src/test.java | 58 +++++++++++----------
> 5 files changed, 164 insertions(+), 96 deletions(-)
>
> diff --git a/README b/README
> index 4fd68be..655090f 100644
> --- a/README
> +++ b/README
> @@ -4,7 +4,7 @@ To use it, your program needs to access both the java library (.jar
file),
> and the JNI library (.so file)
>
> 1. You must have the libvirt.jar file in your classpath.
> -By default the installs it to /usr/share/java/libvirt-0.2.1.jar
> +By default the installs it to /usr/local/share/java/libvirt-0.2.1.jar
>
> 2. You must have the libvirt_jni.so accessible by the dynamic linker.
> By default the RPM installs it to /usr/lib or /usr/lib64, so the linker will
> @@ -13,16 +13,16 @@ the LD_LIBRARY_PATH variable to the directory containing the
libvirt_jni.so
> file.
>
> There is a rudimentary functional test program that the libvirt-java-devel
> -installs put it into /usr/share/doc/libvirt-java-devel-0.2.1/test.java
> +installs put it into /usr/local/share/doc/libvirt-java-devel-0.2.1/test.java
>
> To run it, first copy the test.java file to writeable directory
> -cp /usr/share/doc/libvirt-java-devel-0.2.1/test.java ~
> +cp /usr/local/share/doc/libvirt-java-devel-0.2.1/test.java ~
>
> Compile the java file to a class:
> -javac -classpath /usr/share/java/libvirt-0.2.1.jar test.java
> +javac -classpath /usr/local/share/java/libvirt-0.2.1.jar test.java
>
> Then run the program:
> -java -classpath .:/usr/share/java/libvirt-0.2.1.jar test
> +java -classpath .:/usr/local/share/java/libvirt-0.2.1.jar test
>
> -There is full javadoc for the API in /usr/share/javadoc/libvirt-java-0.2.1/
> +There is full javadoc for the API in /usr/local/share/javadoc/libvirt-java-0.2.1/
Hum, I disagree, someone with the package installed by rpm should have
this in /usr not /usr/local , I would prefer to not change the doc,
as this should be the default.
This is where it was packaged to... the README was incorrect. I have
fixed the readme.
> diff --git a/src/org/libvirt/Connect.java b/src/org/libvirt/Connect.java
> index bc560d0..b559b52 100644
> --- a/src/org/libvirt/Connect.java
> +++ b/src/org/libvirt/Connect.java
looks rather simple. Maybe we should have dropped looking by UUID in
array form and stick only to UUID strings for Java APIs, but it's done
now.
This is what is causing me issues now. I would love to kill this part of
the API.
> diff --git a/src/org/libvirt/Network.java b/src/org/libvirt/Network.java
> index a194ca7..063345c 100644
> --- a/src/org/libvirt/Network.java
> +++ b/src/org/libvirt/Network.java
> @@ -3,6 +3,8 @@ package org.libvirt;
> import org.libvirt.jna.Libvirt;
> + return autoStart.getValue() != 0 ? true : false ;
is that that much better than C code ;-) ? Can we parenthesize this ?
Done
but overall the code is fine
> diff --git a/src/org/libvirt/jna/Libvirt.java b/src/org/libvirt/jna/Libvirt.java
> index 1874d3e..30ab49d 100644
> --- a/src/org/libvirt/jna/Libvirt.java
> +++ b/src/org/libvirt/jna/Libvirt.java
> @@ -6,6 +6,7 @@ import com.sun.jna.Library ;
> import com.sun.jna.Native;
> import com.sun.jna.Pointer;
> import com.sun.jna.Structure.ByReference;
> +import com.sun.jna.ptr.IntByReference;
> import com.sun.jna.ptr.LongByReference;
> import com.sun.jna.ptr.PointerByReference;
>
> @@ -13,6 +14,10 @@ public interface Libvirt extends Library
> {
> Libvirt INSTANCE = (Libvirt) Native.loadLibrary("libvirt",
Libvirt.class) ;
>
> + // Constants we need
> + public static int VIR_UUID_BUFLEN = 16 ;
> + public static int VIR_UUID_STRING_BUFLEN = (36+1) ;
> +
> //Callbacks
> interface virErrorFunc extends Callback {
> void handleError(Pointer userData, virError error) throws Exception ;
> @@ -50,17 +55,31 @@ public interface Libvirt extends Library
> public int virNodeGetInfo(Pointer virConnectPtr, virNodeInfo virNodeInfo) ;
>
> // Network functions
> + public int virNetworkCreate(Pointer virConnectPtr) ;
> public Pointer virNetworkCreateXML(Pointer virConnectPtr, String xmlDesc) ;
> public Pointer virNetworkDefineXML(Pointer virConnectPtr, String xmlDesc) ;
> - public String virNetworkGetName(Pointer virNetorkPtr) ;
> + public int virNetworkDestroy(Pointer virConnectPtr) ;
> + public int virNetworkFree(Pointer virConnectPtr) ;
> + public int virNetworkGetAutostart(Pointer virNetworkPtr, IntByReference value) ;
> + public String virNetworkGetBridgeName(Pointer virNetworkPtr) ;
> + public String virNetworkGetName(Pointer virNetworkPtr) ;
> + public int virNetworkGetUUID(Pointer virNetworkPtr, byte[] uuidString) ;
> + public int virNetworkGetUUIDString(Pointer virNetworkPtr, byte[] uuidString) ;
> + public String virNetworkGetXMLDesc(Pointer virNetworkPtr, int flags) ;
> public Pointer virNetworkLookupByName(Pointer virConnectPtr, String name) ;
> public Pointer virNetworkLookupByUUIDString(Pointer virConnectPtr, String
uuidstr) ;
> - public Pointer virNetworkLookupByUUID(Pointer virConnectPtr, String uuidstr) ;
> + public Pointer virNetworkLookupByUUID(Pointer virConnectPtr, String uuidstr) ;
> + public int virNetworkSetAutostart(Pointer virConnectPtr, int autoStart) ;
> + public int virNetworkUndefine(Pointer virConnectPtr) ;
>
> // Domain functions
> public Pointer virDomainCreateLinux(Pointer virConnectPtr, String xmlDesc, int
flags) ;
> public Pointer virDomainCreateXML(Pointer virConnectPtr, String xmlDesc, int
flags) ;
> public Pointer virDomainDefineXML(Pointer virConnectPtr, String xmlDesc) ;
> + public Pointer virDomainLookupByID(Pointer virConnectPtr, int id) ;
> + public Pointer virDomainLookupByName(Pointer virConnectPtr, String name) ;
> + public Pointer virDomainLookupByUUID(Pointer virConnectPtr, String uuidstr) ;
> public Pointer virDomainLookupByUUIDString(Pointer virConnectPtr, String
uuidstr) ;
> +
>
> }
nice !
Daniel