diff --git a/LibusbJava/LibusbJava.cpp b/LibusbJava/LibusbJava.cpp
index cc7f129..5e539a4 100644
--- a/LibusbJava/LibusbJava.cpp
+++ b/LibusbJava/LibusbJava.cpp
@@ -542,7 +542,7 @@ JNIEXPORT jobject JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1busses
* Method: usb_open
* Signature: (Lch/ntb/usb/Usb_Device;)I
*/
-JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1open
+JNIEXPORT jlong JNICALL Java_ch_ntb_usb_LibusbJava_usb_1open
(JNIEnv *env, jclass obj, jobject dev)
{
clearLibusbJavaError();
@@ -558,7 +558,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1open
struct usb_device *device;
for (device = tmpBus->devices; device; device = device->next) {
if (device->devnum == devnum){
- return (jint) usb_open(device);
+ return (jlong) usb_open(device);
}
}
}
@@ -572,7 +572,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1open
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1close
- (JNIEnv *env, jclass obj, jint dev_handle)
+ (JNIEnv *env, jclass obj, jlong dev_handle)
{
clearLibusbJavaError();
return (jint) usb_close((usb_dev_handle *) dev_handle);
@@ -584,7 +584,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1close
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1configuration
- (JNIEnv *env, jclass obj, jint dev_handle, jint configuration)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint configuration)
{
clearLibusbJavaError();
return usb_set_configuration((usb_dev_handle *) dev_handle, configuration);
@@ -596,7 +596,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1configuration
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1altinterface
- (JNIEnv *env, jclass obj, jint dev_handle, jint alternate)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint alternate)
{
clearLibusbJavaError();
return usb_set_altinterface((usb_dev_handle *) dev_handle, alternate);
@@ -608,7 +608,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1altinterface
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1clear_1halt
- (JNIEnv *env, jclass obj, jint dev_handle, jint ep)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint ep)
{
clearLibusbJavaError();
return usb_clear_halt((usb_dev_handle *) dev_handle, (unsigned) ep);
@@ -620,7 +620,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1clear_1halt
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1reset
- (JNIEnv *env, jclass obj, jint dev_handle)
+ (JNIEnv *env, jclass obj, jlong dev_handle)
{
clearLibusbJavaError();
return usb_reset((usb_dev_handle *) dev_handle);
@@ -632,7 +632,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1reset
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1claim_1interface
- (JNIEnv *env, jclass obj, jint dev_handle, jint interface)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint interface)
{
clearLibusbJavaError();
return usb_claim_interface((usb_dev_handle *) dev_handle, interface);
@@ -644,7 +644,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1claim_1interface
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1release_1interface
- (JNIEnv *env, jclass obj, jint dev_handle, jint interface)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint interface)
{
clearLibusbJavaError();
return usb_release_interface((usb_dev_handle *) dev_handle, interface);
@@ -656,7 +656,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1release_1interface
* Signature: (IIIII[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1control_1msg
- (JNIEnv *env, jclass obj, jint dev_handle, jint requesttype, jint request, jint value, jint index, jbyteArray jbytes, jint size, jint timeout)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint requesttype, jint request, jint value, jint index, jbyteArray jbytes, jint size, jint timeout)
{
clearLibusbJavaError();
jbyte *bytes = env->GetByteArrayElements(jbytes, NULL);
@@ -671,7 +671,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1control_1msg
* Signature: (III)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string
- (JNIEnv *env, jclass obj, jint dev_handle, jint index, jint langid)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint index, jint langid)
{
clearLibusbJavaError();
char string[256];
@@ -687,7 +687,7 @@ JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string
* Signature: (II)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string_1simple
- (JNIEnv *env, jclass obj, jint dev_handle, jint index)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint index)
{
clearLibusbJavaError();
char string[256];
@@ -703,7 +703,7 @@ JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string_1simple
* Signature: (IBBI)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor
- (JNIEnv *env, jclass obj, jint dev_handle, jbyte type, jbyte index, jint size)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jbyte type, jbyte index, jint size)
{
clearLibusbJavaError();
char *string = (char *) malloc(size * sizeof(char));
@@ -720,7 +720,7 @@ JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor
* Signature: (IIBBI)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor_1by_1endpoint
- (JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyte type, jbyte index, jint size)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyte type, jbyte index, jint size)
{
clearLibusbJavaError();
char *string = (char *) malloc(size * sizeof(char));
@@ -737,7 +737,7 @@ JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor_1by_1e
* Signature: (II[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1write
- (JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
{
clearLibusbJavaError();
jbyte *bytes = env->GetByteArrayElements(jbytes, NULL);
@@ -750,7 +750,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1write
* Signature: (II[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1read
- (JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
{
clearLibusbJavaError();
char *bytes = (char *) malloc(size * sizeof(char));
@@ -767,7 +767,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1read
* Signature: (II[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1write
- (JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
{
clearLibusbJavaError();
jbyte *bytes = env->GetByteArrayElements(jbytes, NULL);
@@ -780,7 +780,7 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1write
* Signature: (II[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1read
- (JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
+ (JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
{
clearLibusbJavaError();
char *bytes = (char *) malloc(size * sizeof(char));
diff --git a/LibusbJava/LibusbJava.h b/LibusbJava/LibusbJava.h
index 560b80e..b1982cf 100644
--- a/LibusbJava/LibusbJava.h
+++ b/LibusbJava/LibusbJava.h
@@ -50,138 +50,138 @@ JNIEXPORT jobject JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1busses
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_open
- * Signature: (Lch/ntb/usb/Usb_Device;)I
+ * Signature: (Lch/ntb/usb/Usb_Device;)J
*/
-JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1open
+JNIEXPORT jlong JNICALL Java_ch_ntb_usb_LibusbJava_usb_1open
(JNIEnv *, jclass, jobject);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_close
- * Signature: (I)I
+ * Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1close
- (JNIEnv *, jclass, jint);
+ (JNIEnv *, jclass, jlong);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_set_configuration
- * Signature: (II)I
+ * Signature: (JI)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1configuration
- (JNIEnv *, jclass, jint, jint);
+ (JNIEnv *, jclass, jlong, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_set_altinterface
- * Signature: (II)I
+ * Signature: (JI)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1altinterface
- (JNIEnv *, jclass, jint, jint);
+ (JNIEnv *, jclass, jlong, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_clear_halt
- * Signature: (II)I
+ * Signature: (JI)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1clear_1halt
- (JNIEnv *, jclass, jint, jint);
+ (JNIEnv *, jclass, jlong, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_reset
- * Signature: (I)I
+ * Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1reset
- (JNIEnv *, jclass, jint);
+ (JNIEnv *, jclass, jlong);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_claim_interface
- * Signature: (II)I
+ * Signature: (JI)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1claim_1interface
- (JNIEnv *, jclass, jint, jint);
+ (JNIEnv *, jclass, jlong, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_release_interface
- * Signature: (II)I
+ * Signature: (JI)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1release_1interface
- (JNIEnv *, jclass, jint, jint);
+ (JNIEnv *, jclass, jlong, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_control_msg
- * Signature: (IIIII[BII)I
+ * Signature: (JIIII[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1control_1msg
- (JNIEnv *, jclass, jint, jint, jint, jint, jint, jbyteArray, jint, jint);
+ (JNIEnv *, jclass, jlong, jint, jint, jint, jint, jbyteArray, jint, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_get_string
- * Signature: (III)Ljava/lang/String;
+ * Signature: (JII)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string
- (JNIEnv *, jclass, jint, jint, jint);
+ (JNIEnv *, jclass, jlong, jint, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_get_string_simple
- * Signature: (II)Ljava/lang/String;
+ * Signature: (JI)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string_1simple
- (JNIEnv *, jclass, jint, jint);
+ (JNIEnv *, jclass, jlong, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_get_descriptor
- * Signature: (IBBI)Ljava/lang/String;
+ * Signature: (JBBI)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor
- (JNIEnv *, jclass, jint, jbyte, jbyte, jint);
+ (JNIEnv *, jclass, jlong, jbyte, jbyte, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_get_descriptor_by_endpoint
- * Signature: (IIBBI)Ljava/lang/String;
+ * Signature: (JIBBI)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor_1by_1endpoint
- (JNIEnv *, jclass, jint, jint, jbyte, jbyte, jint);
+ (JNIEnv *, jclass, jlong, jint, jbyte, jbyte, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_bulk_write
- * Signature: (II[BII)I
+ * Signature: (JI[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1write
- (JNIEnv *, jclass, jint, jint, jbyteArray, jint, jint);
+ (JNIEnv *, jclass, jlong, jint, jbyteArray, jint, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_bulk_read
- * Signature: (II[BII)I
+ * Signature: (JI[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1read
- (JNIEnv *, jclass, jint, jint, jbyteArray, jint, jint);
+ (JNIEnv *, jclass, jlong, jint, jbyteArray, jint, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_interrupt_write
- * Signature: (II[BII)I
+ * Signature: (JI[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1write
- (JNIEnv *, jclass, jint, jint, jbyteArray, jint, jint);
+ (JNIEnv *, jclass, jlong, jint, jbyteArray, jint, jint);
/*
* Class: ch_ntb_usb_LibusbJava
* Method: usb_interrupt_read
- * Signature: (II[BII)I
+ * Signature: (JI[BII)I
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1read
- (JNIEnv *, jclass, jint, jint, jbyteArray, jint, jint);
+ (JNIEnv *, jclass, jlong, jint, jbyteArray, jint, jint);
/*
* Class: ch_ntb_usb_LibusbJava
diff --git a/LibusbJava/build.xml b/LibusbJava/build.xml
index c2b7697..eba4149 100644
--- a/LibusbJava/build.xml
+++ b/LibusbJava/build.xml
@@ -16,7 +16,7 @@
-
+
@@ -63,20 +63,20 @@
-
+
+
-
-
+
-
-
+
+
diff --git a/LibusbJava/project.properties b/LibusbJava/project.properties
index ccf8275..d84b4ae 100644
--- a/LibusbJava/project.properties
+++ b/LibusbJava/project.properties
@@ -8,6 +8,8 @@ build.dir.bin=bin
# filenames
build.lib.libusb=libusb.a
build.lib.libusbpp=libusbpp.a
+build.linux.lib.libusb=libusb.so
+build.linux.lib.libusbpp=libusbpp.so
build.mac.lib.libusb=libusb.dylib
build.mac.lib.libusbpp=libusbpp.dylib
build.shlib.srcname=LibusbJava.cpp
diff --git a/LibusbJava/resource.rc b/LibusbJava/resource.rc
index e19bd34..a94ee7d 100644
--- a/LibusbJava/resource.rc
+++ b/LibusbJava/resource.rc
@@ -2,6 +2,6 @@
#define RC_FILE_SUB_TYPE VFT2_UNKNOWN
#define RC_PRODUCT_STR "Java LibUsb-Win32 wrapper - DLL"
#define RC_FILE_NAME_STR "LibusbJava.dll"
-#define RC_VERSION_STR "0.2.1.0"
+#define RC_VERSION_STR "0.2.2.0"
#include "common.rc"
diff --git a/LibusbJava/version.properties b/LibusbJava/version.properties
index 4e6d305..4ce68b5 100644
--- a/LibusbJava/version.properties
+++ b/LibusbJava/version.properties
@@ -1,5 +1,5 @@
-# NOTE: if the version is changed -> change the define in resource.rc"
+# NOTE: if the version is changed -> change the define in resource.rc
version.major=0
version.minor=2
-version.micro=1
+version.micro=2
version.nano=0
\ No newline at end of file
diff --git a/java/build.xml b/java/build.xml
index e651cb1..b5307e7 100644
--- a/java/build.xml
+++ b/java/build.xml
@@ -32,7 +32,7 @@
-
+
@@ -60,7 +60,7 @@
-
+
diff --git a/java/src/ch/ntb/usb/Device.java b/java/src/ch/ntb/usb/Device.java
index aed65e5..feccd3d 100644
--- a/java/src/ch/ntb/usb/Device.java
+++ b/java/src/ch/ntb/usb/Device.java
@@ -27,7 +27,7 @@ public class Device {
private int idVendor, idProduct, dev_configuration, dev_interface,
dev_altinterface;
- private int usbDevHandle;
+ private long usbDevHandle;
private boolean resetOnFirstOpen, resetDone;
@@ -181,7 +181,7 @@ public class Device {
dev = initDevice();
if (dev != null) {
- int res = LibusbJava.usb_open(dev);
+ long res = LibusbJava.usb_open(dev);
if (res == 0) {
throw new USBException("LibusbJava.usb_open: "
+ LibusbJava.usb_strerror());
@@ -411,16 +411,17 @@ public class Device {
return writeInterrupt(out_ep_address, data, size, timeout,
false);
}
- throw new USBTimeoutException("LibusbJava.usb_bulk_write: "
- + LibusbJava.usb_strerror());
+ throw new USBTimeoutException(
+ "LibusbJava.usb_interrupt_write: "
+ + LibusbJava.usb_strerror());
}
- throw new USBException("LibusbJava.usb_bulk_write: "
+ throw new USBException("LibusbJava.usb_interrupt_write: "
+ LibusbJava.usb_strerror());
}
logger.info("length written: " + lenWritten);
if (logger.isLoggable(Level.FINEST)) {
- StringBuffer sb = new StringBuffer("bulkwrite, ep 0x"
+ StringBuffer sb = new StringBuffer("interruptwrite, ep 0x"
+ Integer.toHexString(out_ep_address) + ": " + lenWritten
+ " Bytes sent: ");
for (int i = 0; i < lenWritten; i++) {
@@ -472,16 +473,16 @@ public class Device {
return readInterrupt(in_ep_address, data, size, timeout,
false);
}
- throw new USBTimeoutException("LibusbJava.usb_bulk_read: "
+ throw new USBTimeoutException("LibusbJava.usb_interrupt_read: "
+ LibusbJava.usb_strerror());
}
- throw new USBException("LibusbJava.usb_bulk_read: "
+ throw new USBException("LibusbJava.usb_interrupt_read: "
+ LibusbJava.usb_strerror());
}
logger.info("length read: " + lenRead);
if (logger.isLoggable(Level.FINEST)) {
- StringBuffer sb = new StringBuffer("bulkread, ep 0x"
+ StringBuffer sb = new StringBuffer("interrupt, ep 0x"
+ Integer.toHexString(in_ep_address) + ": " + lenRead
+ " Bytes received: ");
for (int i = 0; i < lenRead; i++) {
@@ -582,7 +583,7 @@ public class Device {
* @throws USBException
* throws an USBException if the action fails
*/
- private void claim_interface(int usb_dev_handle, int configuration,
+ private void claim_interface(long usb_dev_handle, int configuration,
int interface_, int altinterface) throws USBException {
if (LibusbJava.usb_set_configuration(usb_dev_handle, configuration) < 0) {
usbDevHandle = 0;
@@ -619,7 +620,7 @@ public class Device {
* @throws USBException
* throws an USBException if the action fails
*/
- private void release_interface(int dev_handle, int interface_)
+ private void release_interface(long dev_handle, int interface_)
throws USBException {
if (LibusbJava.usb_release_interface(dev_handle, interface_) < 0) {
usbDevHandle = 0;
diff --git a/java/src/ch/ntb/usb/LibusbJava.java b/java/src/ch/ntb/usb/LibusbJava.java
index dd6ee65..0b5f417 100644
--- a/java/src/ch/ntb/usb/LibusbJava.java
+++ b/java/src/ch/ntb/usb/LibusbJava.java
@@ -102,7 +102,7 @@ public class LibusbJava {
* @return a handle used in future communication with the device. 0 if an
* error has occurred.
*/
- public static native int usb_open(Usb_Device dev);
+ public static native long usb_open(Usb_Device dev);
/**
* usb_close closes a device opened with
@@ -112,7 +112,7 @@ public class LibusbJava {
* The handle to the device.
* @return 0 on success or < 0 on error.
*/
- public static native int usb_close(int dev_handle);
+ public static native int usb_close(long dev_handle);
/**
* Sets the active configuration of a device
@@ -124,7 +124,7 @@ public class LibusbJava {
* bConfigurationValue.
* @return 0 on success or < 0 on error.
*/
- public static native int usb_set_configuration(int dev_handle,
+ public static native int usb_set_configuration(long dev_handle,
int configuration);
/**
@@ -137,7 +137,7 @@ public class LibusbJava {
* bAlternateSetting.
* @return 0 on success or < 0 on error.
*/
- public static native int usb_set_altinterface(int dev_handle, int alternate);
+ public static native int usb_set_altinterface(long dev_handle, int alternate);
/**
* Clears any halt status on an endpoint.
@@ -148,7 +148,7 @@ public class LibusbJava {
* The value specified in the descriptor field bEndpointAddress.
* @return 0 on success or < 0 on error.
*/
- public static native int usb_clear_halt(int dev_handle, int ep);
+ public static native int usb_clear_halt(long dev_handle, int ep);
/**
* Resets a device by sending a RESET down the port it is connected to.
@@ -162,7 +162,7 @@ public class LibusbJava {
* The handle to the device.
* @return 0 on success or < 0 on error.
*/
- public static native int usb_reset(int dev_handle);
+ public static native int usb_reset(long dev_handle);
/**
* Claim an interface of a device.
@@ -178,7 +178,7 @@ public class LibusbJava {
* bInterfaceNumber.
* @return 0 on success or < 0 on error.
*/
- public static native int usb_claim_interface(int dev_handle, int interface_);
+ public static native int usb_claim_interface(long dev_handle, int interface_);
/**
* Releases a previously claimed interface
@@ -190,7 +190,7 @@ public class LibusbJava {
* bInterfaceNumber.
* @return 0 on success or < 0 on error.
*/
- public static native int usb_release_interface(int dev_handle,
+ public static native int usb_release_interface(long dev_handle,
int interface_);
// Control Transfers
@@ -209,7 +209,7 @@ public class LibusbJava {
* @param timeout
* @return the number of bytes written/read or < 0 on error.
*/
- public static native int usb_control_msg(int dev_handle, int requesttype,
+ public static native int usb_control_msg(long dev_handle, int requesttype,
int request, int value, int index, byte[] bytes, int size,
int timeout);
@@ -223,7 +223,7 @@ public class LibusbJava {
* @param langid
* @return the descriptor String or null
*/
- public static native String usb_get_string(int dev_handle, int index,
+ public static native String usb_get_string(long dev_handle, int index,
int langid);
/**
@@ -236,13 +236,13 @@ public class LibusbJava {
* @param index
* @return the descriptor String or null
*/
- public static native String usb_get_string_simple(int dev_handle, int index);
+ public static native String usb_get_string_simple(long dev_handle, int index);
/**
* Retrieves a descriptor from the device identified by the type and index
* of the descriptor from the default control pipe.
*
- * See {@link #usb_get_descriptor_by_endpoint(int, int, byte, byte, int)}
+ * See {@link #usb_get_descriptor_by_endpoint(long, int, byte, byte, int)}
* for a function that allows the control endpoint to be specified.
*
* @param dev_handle
@@ -254,7 +254,7 @@ public class LibusbJava {
* resulting String)
* @return the descriptor String or null
*/
- public static native String usb_get_descriptor(int dev_handle, byte type,
+ public static native String usb_get_descriptor(long dev_handle, byte type,
byte index, int size);
/**
@@ -271,7 +271,7 @@ public class LibusbJava {
* resulting String)
* @return the descriptor String or null
*/
- public static native String usb_get_descriptor_by_endpoint(int dev_handle,
+ public static native String usb_get_descriptor_by_endpoint(long dev_handle,
int ep, byte type, byte index, int size);
// Bulk Transfers
@@ -286,7 +286,7 @@ public class LibusbJava {
* @param timeout
* @return the number of bytes written on success or < 0 on error.
*/
- public static native int usb_bulk_write(int dev_handle, int ep,
+ public static native int usb_bulk_write(long dev_handle, int ep,
byte[] bytes, int size, int timeout);
/**
@@ -300,7 +300,7 @@ public class LibusbJava {
* @param timeout
* @return the number of bytes read on success or < 0 on error.
*/
- public static native int usb_bulk_read(int dev_handle, int ep,
+ public static native int usb_bulk_read(long dev_handle, int ep,
byte[] bytes, int size, int timeout);
// Interrupt Transfers
@@ -315,7 +315,7 @@ public class LibusbJava {
* @param timeout
* @return the number of bytes written on success or < 0 on error.
*/
- public static native int usb_interrupt_write(int dev_handle, int ep,
+ public static native int usb_interrupt_write(long dev_handle, int ep,
byte[] bytes, int size, int timeout);
/**
@@ -329,7 +329,7 @@ public class LibusbJava {
* @param timeout
* @return the number of bytes read on success or < 0 on error.
*/
- public static native int usb_interrupt_read(int dev_handle, int ep,
+ public static native int usb_interrupt_read(long dev_handle, int ep,
byte[] bytes, int size, int timeout);
/**
diff --git a/java/src/ch/ntb/usb/Usb_Config_Descriptor.java b/java/src/ch/ntb/usb/Usb_Config_Descriptor.java
index 7f87948..506044a 100644
--- a/java/src/ch/ntb/usb/Usb_Config_Descriptor.java
+++ b/java/src/ch/ntb/usb/Usb_Config_Descriptor.java
@@ -44,7 +44,7 @@ public class Usb_Config_Descriptor extends Usb_Descriptor {
private int extralen;
/**
- * Returns the value to use as an argument to select this configuration ({@link LibusbJava#usb_set_configuration(int, int)}).
+ * Returns the value to use as an argument to select this configuration ({@link LibusbJava#usb_set_configuration(long, int)}).
*
* @return the value to use as an argument to select this configuration
*/
diff --git a/java/src/ch/ntb/usb/Usb_Interface_Descriptor.java b/java/src/ch/ntb/usb/Usb_Interface_Descriptor.java
index 21bc1df..a6a81a9 100644
--- a/java/src/ch/ntb/usb/Usb_Interface_Descriptor.java
+++ b/java/src/ch/ntb/usb/Usb_Interface_Descriptor.java
@@ -53,7 +53,7 @@ public class Usb_Interface_Descriptor extends Usb_Descriptor {
}
/**
- * Returns the value used to select the alternate setting ({@link LibusbJava#usb_set_altinterface(int, int)}).
+ * Returns the value used to select the alternate setting ({@link LibusbJava#usb_set_altinterface(long, int)}).
*
* @return the alternate setting
*/
diff --git a/java/src/ch/ntb/usb/usbView/UsbTreeModel.java b/java/src/ch/ntb/usb/usbView/UsbTreeModel.java
index bca4e8f..26ddb43 100644
--- a/java/src/ch/ntb/usb/usbView/UsbTreeModel.java
+++ b/java/src/ch/ntb/usb/usbView/UsbTreeModel.java
@@ -31,6 +31,8 @@ public class UsbTreeModel implements TreeModel, TreeSelectionListener {
private Usb_Bus rootBus;
+ private static final String USB_ROOT = "USB";
+
private JTextArea textArea;
private Vector treeModelListeners = new Vector();
@@ -52,14 +54,26 @@ public class UsbTreeModel implements TreeModel, TreeSelectionListener {
* Returns the root of the tree.
*/
public Object getRoot() {
- return rootBus;
+ return USB_ROOT;
}
/**
* Returns the child of parent at index index in the parent's child array.
*/
public Object getChild(Object parent, int index) {
- if (parent instanceof Usb_Bus) {
+
+ if (parent instanceof String && ((String) parent).compareTo(USB_ROOT) == 0)
+ {
+ Usb_Bus curBus = rootBus;
+
+ for (int i = 0; curBus != null; curBus = curBus.getNext(), i++)
+ {
+ if (i == index)
+ return curBus;
+ }
+ }
+
+ else if (parent instanceof Usb_Bus) {
Usb_Device device = ((Usb_Bus) parent).getDevices();
int count = 0;
while (device != null) {
@@ -104,8 +118,23 @@ public class UsbTreeModel implements TreeModel, TreeSelectionListener {
/**
* Returns the number of children of parent.
*/
- public int getChildCount(Object parent) {
- if (parent instanceof Usb_Bus) {
+ public int getChildCount(Object parent)
+ {
+ if (parent instanceof String && ((String) parent).compareTo(USB_ROOT) == 0)
+ {
+ int count = 0;
+
+ Usb_Bus curBus = rootBus;
+
+ for (; curBus != null; curBus = curBus.getNext())
+ {
+ count++;
+ }
+
+ return count;
+
+ }
+ else if (parent instanceof Usb_Bus) {
Usb_Device device = ((Usb_Bus) parent).getDevices();
int count = 0;
while (device != null) {
@@ -243,7 +272,7 @@ public class UsbTreeModel implements TreeModel, TreeSelectionListener {
|| (dev.getDescriptor().getIProduct() > 0) || (dev
.getDescriptor().getISerialNumber() > 0))) {
if (tmpDevDesc.equals(devDesc)) {
- int handle = LibusbJava.usb_open(dev);
+ long handle = LibusbJava.usb_open(dev);
sb.append("\nString descriptors\n");
if (handle <= 0) {
sb.append("\terror opening the device\n");
@@ -319,7 +348,7 @@ public class UsbTreeModel implements TreeModel, TreeSelectionListener {
for (int i = 0; i < tmpConfDesc.length; i++) {
if ((tmpConfDesc.equals(confDesc))
&& (confDesc.getIConfiguration() > 0)) {
- int handle = LibusbJava.usb_open(dev);
+ long handle = LibusbJava.usb_open(dev);
sb.append("\nString descriptors\n");
if (handle <= 0) {
sb.append("\terror opening the device\n");
@@ -395,9 +424,9 @@ public class UsbTreeModel implements TreeModel, TreeSelectionListener {
Usb_Interface_Descriptor[] tmpIntDescs = ints[j]
.getAltsetting();
for (int k = 0; k < ints.length; k++) {
- if (tmpIntDescs[i].equals(intDesc)
+ if (i < tmpIntDescs.length && tmpIntDescs[i].equals(intDesc)
&& (intDesc.getIInterface() > 0)) {
- int handle = LibusbJava.usb_open(dev);
+ long handle = LibusbJava.usb_open(dev);
sb.append("\nString descriptors\n");
if (handle <= 0) {
sb
diff --git a/java/test/ch/ntb/usb/test/DeviceTest.java b/java/test/ch/ntb/usb/test/DeviceTest.java
index 57a4858..a12b491 100644
--- a/java/test/ch/ntb/usb/test/DeviceTest.java
+++ b/java/test/ch/ntb/usb/test/DeviceTest.java
@@ -174,9 +174,7 @@ public class DeviceTest {
devinfo.setMode(TransferMode.Bulk);
doOpen();
for (int i = 0; i < NumberOfIterations; i++) {
- initTestData();
doWriteRead();
- compare(testData, readData);
}
doClose();
}
@@ -225,80 +223,99 @@ public class DeviceTest {
@Test
public void controlMsg() throws Exception {
- dev.open(devinfo.getConfiguration(), devinfo.getInterface(), devinfo
- .getAltinterface());
- // GET STATUS (device)
- byte[] data = getTestData(2);
- int length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
- | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
- USB.REQ_GET_STATUS, 0, 0, data, data.length, devinfo
- .getTimeout(), false);
- assertEquals((byte) 0x01, data[0]);
- assertEquals((byte) 0x00, data[1]);
- // GET STATUS (interface)
- data = getTestData(2);
- length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
- | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_INTERFACE,
- USB.REQ_GET_STATUS, 0, 0, data, data.length, devinfo
- .getTimeout(), false);
- assertEquals((byte) 0x00, data[0]);
- assertEquals((byte) 0x00, data[1]);
- // GET STATUS (endpoint)
- data = getTestData(2);
- length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
- | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_ENDPOINT,
- USB.REQ_GET_STATUS, 0, 0, data, data.length, devinfo
- .getTimeout(), false);
- assertEquals((byte) 0x00, data[0]);
- assertEquals((byte) 0x00, data[1]);
- // GET CONFIGURATION
- data = getTestData(1);
- length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
- | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
- USB.REQ_GET_CONFIGURATION, 0, 0, data, data.length, devinfo
- .getTimeout(), false);
- assertEquals((byte) devinfo.getConfiguration(), data[0]);
- // // GET INTERFACE
- // data = byte[1];
- // length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
- // | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_INTERFACE,
- // USB.REQ_GET_INTERFACE, 0, devinfo.getInterface(), data, data.length,
- // devinfo
- // .getTimeout(), false);
- // logData(data, length);
- // GET DESCRIPTOR (device descriptor)
- data = getTestData(128);
- length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
- | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
- USB.REQ_GET_DESCRIPTOR, 1 << 8, 0, data, data.length, devinfo
- .getTimeout(), false);
- validateDeviceDescriptor(data, length);
- // GET DESCRIPTOR (string descriptor (1))
- data = getTestData(128);
- length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
- | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
- USB.REQ_GET_DESCRIPTOR, (3 << 8) + 1, 0, data, data.length,
- devinfo.getTimeout(), false);
- String s = getString(data, length);
- assertEquals(s, Manufacturer);
- // GET DESCRIPTOR (string descriptor (2))
- data = getTestData(128);
- length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
- | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
- USB.REQ_GET_DESCRIPTOR, (3 << 8) + 2, 0, data, data.length,
- devinfo.getTimeout(), false);
- s = getString(data, length);
- assertEquals(s, Product);
- // GET DESCRIPTOR (string descriptor (3))
- data = getTestData(128);
- length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
- | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
- USB.REQ_GET_DESCRIPTOR, (3 << 8) + 3, 0, data, data.length,
- devinfo.getTimeout(), false);
- s = getString(data, length);
- assertEquals(s, SerialVersion);
- // close the device
- dev.close();
+ try {
+ dev.open(devinfo.getConfiguration(), devinfo.getInterface(), devinfo
+ .getAltinterface());
+ // GET STATUS (device)
+ byte[] data = getTestData(2);
+ int length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
+ | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
+ USB.REQ_GET_STATUS, 0, 0, data, data.length, devinfo
+ .getTimeout(), false);
+ assertTrue(length > 0);
+ assertEquals((byte) 0x01, data[0]);
+ assertEquals((byte) 0x00, data[1]);
+ // GET STATUS (interface)
+ data = getTestData(2);
+ length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
+ | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_INTERFACE,
+ USB.REQ_GET_STATUS, 0, 0, data, data.length, devinfo
+ .getTimeout(), false);
+ assertTrue(length > 0);
+ assertEquals((byte) 0x00, data[0]);
+ assertEquals((byte) 0x00, data[1]);
+ // GET STATUS (endpoint)
+ data = getTestData(2);
+ length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
+ | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_ENDPOINT,
+ USB.REQ_GET_STATUS, 0, 0, data, data.length, devinfo
+ .getTimeout(), false);
+ assertTrue(length > 0);
+ assertEquals((byte) 0x00, data[0]);
+ assertEquals((byte) 0x00, data[1]);
+ // GET CONFIGURATION
+ data = getTestData(1);
+ length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
+ | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
+ USB.REQ_GET_CONFIGURATION, 0, 0, data, data.length, devinfo
+ .getTimeout(), false);
+ assertTrue(length > 0);
+ assertEquals((byte) devinfo.getConfiguration(), data[0]);
+ // // GET INTERFACE
+ // data = byte[1];
+ // length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
+ // | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_INTERFACE,
+ // USB.REQ_GET_INTERFACE, 0, devinfo.getInterface(), data, data.length,
+ // devinfo
+ // .getTimeout(), false);
+ // logData(data, length);
+ // GET DESCRIPTOR (device descriptor)
+ data = getTestData(128);
+ length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
+ | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
+ USB.REQ_GET_DESCRIPTOR, 1 << 8, 0, data, data.length, devinfo
+ .getTimeout(), false);
+ validateDeviceDescriptor(data, length);
+ // GET DESCRIPTOR (string descriptor (1))
+ data = getTestData(128);
+ length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
+ | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
+ USB.REQ_GET_DESCRIPTOR, (3 << 8) + 1, 0, data, data.length,
+ devinfo.getTimeout(), false);
+ String s = getString(data, length);
+ assertEquals(s, Manufacturer);
+ // GET DESCRIPTOR (string descriptor (2))
+ data = getTestData(128);
+ length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
+ | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
+ USB.REQ_GET_DESCRIPTOR, (3 << 8) + 2, 0, data, data.length,
+ devinfo.getTimeout(), false);
+ s = getString(data, length);
+ assertEquals(s, Product);
+ // GET DESCRIPTOR (string descriptor (3))
+ data = getTestData(128);
+ length = dev.controlMsg(USB.REQ_TYPE_DIR_DEVICE_TO_HOST
+ | USB.REQ_TYPE_TYPE_STANDARD | USB.REQ_TYPE_RECIP_DEVICE,
+ USB.REQ_GET_DESCRIPTOR, (3 << 8) + 3, 0, data, data.length,
+ devinfo.getTimeout(), false);
+ s = getString(data, length);
+ assertEquals(s, SerialVersion);
+ // close the device
+ dev.close();
+ } catch (Exception e) {
+ closeOnException();
+ } catch (AssertionError e) {
+ closeOnException();
+ throw e;
+ }
+ }
+
+ private void closeOnException() {
+ try {
+ dev.close();
+ } catch (USBException e1) {
+ // ignore exceptions
+ }
}
private void validateDeviceDescriptor(byte[] data, int length) {
@@ -472,22 +489,27 @@ public class DeviceTest {
private void doWriteRead() throws Exception {
initTestData();
- if (devinfo.getMode().equals(TransferMode.Bulk)) {
- if (devinfo.getOutEPBulk() != -1) {
- dev.writeBulk(devinfo.getOutEPBulk(), testData,
- testData.length, devinfo.getTimeout(), false);
- } else if (devinfo.getInEPBulk() != -1) {
- dev.readBulk(devinfo.getInEPBulk(), readData, readData.length,
- devinfo.getTimeout(), false);
- }
- } else if (devinfo.getMode().equals(TransferMode.Interrupt)) {
- if (devinfo.getOutEPInt() != -1) {
- dev.writeInterrupt(devinfo.getOutEPInt(), testData,
- testData.length, devinfo.getTimeout(), false);
- } else if (devinfo.getInEPInt() != -1) {
- dev.readInterrupt(devinfo.getInEPInt(), readData,
- readData.length, devinfo.getTimeout(), false);
+ try {
+ if (devinfo.getMode().equals(TransferMode.Bulk)) {
+ if (devinfo.getOutEPBulk() != -1) {
+ dev.writeBulk(devinfo.getOutEPBulk(), testData,
+ testData.length, devinfo.getTimeout(), false);
+ } else if (devinfo.getInEPBulk() != -1) {
+ dev.readBulk(devinfo.getInEPBulk(), readData,
+ readData.length, devinfo.getTimeout(), false);
+ }
+ } else if (devinfo.getMode().equals(TransferMode.Interrupt)) {
+ if (devinfo.getOutEPInt() != -1) {
+ dev.writeInterrupt(devinfo.getOutEPInt(), testData,
+ testData.length, devinfo.getTimeout(), false);
+ } else if (devinfo.getInEPInt() != -1) {
+ dev.readInterrupt(devinfo.getInEPInt(), readData,
+ readData.length, devinfo.getTimeout(), false);
+ }
}
+ } catch (Exception e) {
+ closeOnException();
+ throw e;
}
if (devinfo.doCompareData()) {
compare(testData, readData);
diff --git a/java/test/ch/ntb/usb/test/MX500.java b/java/test/ch/ntb/usb/test/MX500.java
index a444d47..0c4483b 100644
--- a/java/test/ch/ntb/usb/test/MX500.java
+++ b/java/test/ch/ntb/usb/test/MX500.java
@@ -7,7 +7,6 @@
*/
package ch.ntb.usb.test;
-import ch.ntb.usb.USB;
import ch.ntb.usb.testApp.AbstractDeviceInfo;
public class MX500 extends AbstractDeviceInfo {
@@ -16,7 +15,7 @@ public class MX500 extends AbstractDeviceInfo {
public void initValues() {
setIdVendor((short) 0x046d);
setIdProduct((short) 0xc025);
- setTimeout(5000);
+ setTimeout(2000);
setConfiguration(1);
setInterface(0);
setAltinterface(0);
@@ -24,8 +23,8 @@ public class MX500 extends AbstractDeviceInfo {
setInEPInt(0x81);
setOutEPBulk(-1);
setInEPBulk(-1);
- setSleepTimeout(2000);
- setMaxDataSize(USB.HIGHSPEED_MAX_BULK_PACKET_SIZE);
+ setSleepTimeout(5000);
+ setMaxDataSize(5);
setMode(TransferMode.Interrupt);
// we only read data -> don't compare
setDoCompareData(false);
diff --git a/java/test/ch/ntb/usb/test/TestLibUsbJava.java b/java/test/ch/ntb/usb/test/TestLibUsbJava.java
index 120bb3a..257e8b3 100644
--- a/java/test/ch/ntb/usb/test/TestLibUsbJava.java
+++ b/java/test/ch/ntb/usb/test/TestLibUsbJava.java
@@ -109,7 +109,7 @@ public class TestLibUsbJava {
}
private static int printDevice(Usb_Device dev, int level) {
- int udev;
+ long udev;
String mfr;
String product;
String sn;
diff --git a/java/version.properties b/java/version.properties
index c9e5c87..1017780 100644
--- a/java/version.properties
+++ b/java/version.properties
@@ -1,4 +1,4 @@
#Thu Aug 24 14:28:28 CEST 2006
version.major=0
version.minor=5
-version.release=4
+version.release=5