The latest JNA version requires us to define the order of the fields
in a struct explicitely because the JVM does not guarantee the order
of the fields returned by Class.getFields().
---
 src/main/java/org/libvirt/jna/virConnectAuth.java  |   10 ++++++++++
 .../java/org/libvirt/jna/virConnectCredential.java |   12 ++++++++++++
 .../java/org/libvirt/jna/virDomainBlockInfo.java   |    8 ++++++++
 .../java/org/libvirt/jna/virDomainBlockStats.java  |   11 +++++++++++
 src/main/java/org/libvirt/jna/virDomainInfo.java   |   11 +++++++++++
 .../org/libvirt/jna/virDomainInterfaceStats.java   |   13 +++++++++++++
 .../java/org/libvirt/jna/virDomainJobInfo.java     |   18 ++++++++++++++++++
 .../java/org/libvirt/jna/virDomainMemoryStats.java |    7 +++++++
 src/main/java/org/libvirt/jna/virError.java        |   19 +++++++++++++++++++
 src/main/java/org/libvirt/jna/virNodeInfo.java     |   15 +++++++++++++++
 .../java/org/libvirt/jna/virSchedParameter.java    |    9 +++++++++
 .../java/org/libvirt/jna/virStoragePoolInfo.java   |   10 ++++++++++
 .../java/org/libvirt/jna/virStorageVolInfo.java    |    8 ++++++++
 src/main/java/org/libvirt/jna/virVcpuInfo.java     |    9 +++++++++
 14 files changed, 160 insertions(+)

diff --git a/src/main/java/org/libvirt/jna/virConnectAuth.java 
b/src/main/java/org/libvirt/jna/virConnectAuth.java
index 74dd65c..f805b89 100644
--- a/src/main/java/org/libvirt/jna/virConnectAuth.java
+++ b/src/main/java/org/libvirt/jna/virConnectAuth.java
@@ -3,6 +3,9 @@ package org.libvirt.jna;
 import com.sun.jna.Pointer;
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virConnectAuth structure
  */
@@ -11,4 +14,11 @@ public class virConnectAuth extends Structure {
     public int ncredtype;
     public Libvirt.VirConnectAuthCallback cb;
     public Pointer cbdata;
+
+    protected List getFieldOrder() {
+       return Arrays.asList("credtype",
+                            "ncredtype",
+                            "cb",
+                            "cbdata");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virConnectCredential.java 
b/src/main/java/org/libvirt/jna/virConnectCredential.java
index ba47482..7a750d1 100644
--- a/src/main/java/org/libvirt/jna/virConnectCredential.java
+++ b/src/main/java/org/libvirt/jna/virConnectCredential.java
@@ -2,6 +2,9 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virConnectCredential structure
  */
@@ -13,4 +16,13 @@ public class virConnectCredential extends Structure 
implements Structure.ByRefer
     // public Pointer result;
     public String result;
     public int resultlen;
+
+    protected List getFieldOrder() {
+       return Arrays.asList("type",
+                            "prompt",
+                            "challenge",
+                            "defresult",
+                            "result",
+                            "resultlen");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virDomainBlockInfo.java 
b/src/main/java/org/libvirt/jna/virDomainBlockInfo.java
index 234a381..fdf8bb1 100644
--- a/src/main/java/org/libvirt/jna/virDomainBlockInfo.java
+++ b/src/main/java/org/libvirt/jna/virDomainBlockInfo.java
@@ -2,9 +2,17 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 public class virDomainBlockInfo extends Structure {
     public long capacity;
     public long allocation;
     public long physical;
 
+    protected List getFieldOrder() {
+       return Arrays.asList("capacity",
+                            "allocation",
+                            "physical");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virDomainBlockStats.java 
b/src/main/java/org/libvirt/jna/virDomainBlockStats.java
index f29dba0..c7f0d8c 100644
--- a/src/main/java/org/libvirt/jna/virDomainBlockStats.java
+++ b/src/main/java/org/libvirt/jna/virDomainBlockStats.java
@@ -2,6 +2,9 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virDomainBlockStats structure
  */
@@ -16,4 +19,12 @@ public class virDomainBlockStats extends Structure {
     // is correct
     public long errs; // this is a long long in the code, so a long mapping is
     // correct
+
+    protected List getFieldOrder() {
+       return Arrays.asList("rd_req",
+                            "rd_bytes",
+                            "wr_req",
+                            "wr_bytes",
+                            "errs");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virDomainInfo.java 
b/src/main/java/org/libvirt/jna/virDomainInfo.java
index a93c0a5..8525f37 100644
--- a/src/main/java/org/libvirt/jna/virDomainInfo.java
+++ b/src/main/java/org/libvirt/jna/virDomainInfo.java
@@ -3,6 +3,9 @@ package org.libvirt.jna;
 import com.sun.jna.NativeLong;
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virDomainInfo structure
  */
@@ -12,4 +15,12 @@ public class virDomainInfo extends Structure {
     public NativeLong memory;
     public short nrVirtCpu;
     public long cpuTime;
+
+    protected List getFieldOrder() {
+       return Arrays.asList("state",
+                            "maxMem",
+                            "memory",
+                            "nrVirtCpu",
+                            "cpuTime");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virDomainInterfaceStats.java 
b/src/main/java/org/libvirt/jna/virDomainInterfaceStats.java
index 1cb0e66..39ceb52 100644
--- a/src/main/java/org/libvirt/jna/virDomainInterfaceStats.java
+++ b/src/main/java/org/libvirt/jna/virDomainInterfaceStats.java
@@ -2,6 +2,9 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virDomainInterfaceStats structure
  */
@@ -23,4 +26,14 @@ public class virDomainInterfaceStats extends Structure {
     public long tx_drop; // this is a long long in the code, so a long mapping
     // is correct
 
+    protected List getFieldOrder() {
+       return Arrays.asList("rx_bytes",
+                            "rx_packets",
+                            "rx_errs",
+                            "rx_drop",
+                            "tx_bytes",
+                            "tx_packets",
+                            "tx_errs",
+                            "tx_drop");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virDomainJobInfo.java 
b/src/main/java/org/libvirt/jna/virDomainJobInfo.java
index 98b4f59..f8b63e0 100644
--- a/src/main/java/org/libvirt/jna/virDomainJobInfo.java
+++ b/src/main/java/org/libvirt/jna/virDomainJobInfo.java
@@ -2,6 +2,9 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 public class virDomainJobInfo extends Structure {
     public int type;
     public long timeElapsed;
@@ -15,4 +18,19 @@ public class virDomainJobInfo extends Structure {
     public long fileTotal;
     public long fileProcessed;
     public long fileRemaining;
+
+    protected List getFieldOrder() {
+       return Arrays.asList("type",
+                            "timeElapsed",
+                            "timeRemaining",
+                            "dataTotal",
+                            "dataProcessed",
+                            "dataRemaining",
+                            "memTotal",
+                            "memProcessed",
+                            "memRemaining",
+                            "fileTotal",
+                            "fileProcessed",
+                            "fileRemaining");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virDomainMemoryStats.java 
b/src/main/java/org/libvirt/jna/virDomainMemoryStats.java
index 7a9f5d2..1d4e075 100644
--- a/src/main/java/org/libvirt/jna/virDomainMemoryStats.java
+++ b/src/main/java/org/libvirt/jna/virDomainMemoryStats.java
@@ -2,7 +2,14 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 public class virDomainMemoryStats extends Structure {
     public int tag ;
     public long val ;
+
+    protected List getFieldOrder() {
+       return Arrays.asList("tag", "val");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virError.java 
b/src/main/java/org/libvirt/jna/virError.java
index e2580dd..b3fad6d 100644
--- a/src/main/java/org/libvirt/jna/virError.java
+++ b/src/main/java/org/libvirt/jna/virError.java
@@ -3,6 +3,9 @@ package org.libvirt.jna;
 import com.sun.jna.Pointer;
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virError structure
  */
@@ -19,4 +22,20 @@ public class virError extends Structure {
     public int int1;
     public int int2;
     public NetworkPointer net;
+
+    protected List getFieldOrder() {
+       return Arrays.asList(
+           "code",
+           "domain",
+           "message",
+           "level",
+           "conn",
+           "dom",
+           "str1",
+           "str2",
+           "str3",
+           "int1",
+           "int2",
+           "net");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virNodeInfo.java 
b/src/main/java/org/libvirt/jna/virNodeInfo.java
index 532aad9..6f0d002 100644
--- a/src/main/java/org/libvirt/jna/virNodeInfo.java
+++ b/src/main/java/org/libvirt/jna/virNodeInfo.java
@@ -3,6 +3,9 @@ package org.libvirt.jna;
 import com.sun.jna.NativeLong;
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virNodeInfo structure
  */
@@ -21,4 +24,16 @@ public class virNodeInfo extends Structure {
     public int sockets;
     public int cores;
     public int threads;
+
+    protected List getFieldOrder() {
+        return Arrays.asList(
+            "model",
+            "memory",
+            "cpus",
+            "mhz",
+            "nodes",
+            "sockets",
+            "cores",
+            "threads");
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/org/libvirt/jna/virSchedParameter.java 
b/src/main/java/org/libvirt/jna/virSchedParameter.java
index 0013fff..e213f04 100644
--- a/src/main/java/org/libvirt/jna/virSchedParameter.java
+++ b/src/main/java/org/libvirt/jna/virSchedParameter.java
@@ -2,6 +2,9 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virSchedParameter structure
  */
@@ -9,4 +12,10 @@ public class virSchedParameter extends Structure {
     public byte field[] = new byte[Libvirt.VIR_DOMAIN_SCHED_FIELD_LENGTH];
     public int type;
     public virSchedParameterValue value;
+
+    protected List getFieldOrder() {
+        return Arrays.asList("field",
+                             "type",
+                             "value");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virStoragePoolInfo.java 
b/src/main/java/org/libvirt/jna/virStoragePoolInfo.java
index 5a98e08..860b78e 100644
--- a/src/main/java/org/libvirt/jna/virStoragePoolInfo.java
+++ b/src/main/java/org/libvirt/jna/virStoragePoolInfo.java
@@ -2,6 +2,9 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virStoragePoolInfo structure
  */
@@ -13,4 +16,11 @@ public class virStoragePoolInfo extends Structure {
     // mapping is correct
     public long available; // this is a long long in the code, so a long 
mapping
     // is correct
+
+    protected List getFieldOrder() {
+        return Arrays.asList("state",
+                             "capacity",
+                             "allocation",
+                             "available");
+    }
 }
diff --git a/src/main/java/org/libvirt/jna/virStorageVolInfo.java 
b/src/main/java/org/libvirt/jna/virStorageVolInfo.java
index db8a5bd..d07b22e 100644
--- a/src/main/java/org/libvirt/jna/virStorageVolInfo.java
+++ b/src/main/java/org/libvirt/jna/virStorageVolInfo.java
@@ -2,6 +2,9 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virStorageVolInfo structure
  */
@@ -12,4 +15,9 @@ public class virStorageVolInfo extends Structure {
     public long allocation; // this is a long long in the code, so a long
     // mapping is correct
 
+    protected List getFieldOrder() {
+        return Arrays.asList("type",
+                             "capacity",
+                             "allocation");
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/org/libvirt/jna/virVcpuInfo.java 
b/src/main/java/org/libvirt/jna/virVcpuInfo.java
index 16f237d..7bf3448 100644
--- a/src/main/java/org/libvirt/jna/virVcpuInfo.java
+++ b/src/main/java/org/libvirt/jna/virVcpuInfo.java
@@ -2,6 +2,9 @@ package org.libvirt.jna;
 
 import com.sun.jna.Structure;
 
+import java.util.List;
+import java.util.Arrays;
+
 /**
  * JNA mapping for the virVcpuInfo structure
  */
@@ -12,4 +15,10 @@ public class virVcpuInfo extends Structure {
     // is correct
     public int cpu;
 
+    protected List getFieldOrder() {
+        return Arrays.asList("number",
+                             "state",
+                             "cpuTime",
+                             "cpu");
+    }
 }
-- 
1.7.9.5

-- 
AV-Test GmbH, Henricistraße 20, 04155 Leipzig, Germany
Phone: +49 341 265 310 19
Web:<http://www.av-test.org>

Eingetragen am / Registered at: Amtsgericht Stendal (HRB 114076)
Geschaeftsfuehrer (CEO): Andreas Marx, Guido Habicht, Maik Morgenstern

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to