diff --git a/pom.xml b/pom.xml
index e3c76f7..adfb23d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
usb4java
jar
usb4java
- 0.1.2-SNAPSHOT
+ 0.2.0-SNAPSHOT
http://www.ailis.de/~k/projects/usb4java
USB library for Java based on libusb-0.1.x and implementing javax.usb
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index e8c80b1..f7d29d8 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -8,6 +8,12 @@
Klaus Reimer
+
+
+ Implemented configuration to control the scan mode and to improve
+ scan performance by filtering for specific vendor and product ids.
+
+
libusb reports broken bus root devices when detaching USB devices
diff --git a/src/main/java/de/ailis/usb4java/Services.java b/src/main/java/de/ailis/usb4java/Services.java
index 1f30417..8784858 100644
--- a/src/main/java/de/ailis/usb4java/Services.java
+++ b/src/main/java/de/ailis/usb4java/Services.java
@@ -34,7 +34,7 @@ public final class Services implements UsbServices
"usb4java JSR-80 implementation";
/** The implementation version. */
- private static final String IMP_VERSION = "0.1.0";
+ private static final String IMP_VERSION = "0.2.0";
/** The API version. */
private static final String API_VERSION = "1.0.1";
diff --git a/src/site/apt/configuration.apt.vm b/src/site/apt/configuration.apt.vm
new file mode 100644
index 0000000..8005e0e
--- /dev/null
+++ b/src/site/apt/configuration.apt.vm
@@ -0,0 +1,67 @@
+ -----------------------------------------------------------------------------
+ Configuration
+ -----------------------------------------------------------------------------
+
+Configuration
+
+ To tell the USB Host Manager of to use the
+ implementation you have to put the following property into the
+ file which must be located in the root of
+ your classpath:
+
++----+
+javax.usb.services = de.ailis.usb4java.Services
++----+
+
+ can be configured by adding more properties to this file as
+ described in the following sections.
+
+
+* Hierarchy scanning
+
+ Normally USB devices in are maintained in a tree. The root of
+ the tree is a virtual USB hub provided by . All physical root
+ hubs are connected to this virtual hub and all child hubs and devices are
+ connected to these root hubs. Unfortunately has problems on
+ platforms like Mac OS X to read the real USB device hierarchy from the operating
+ system. So to allow to be used on Mac OS X this hierachy scan
+ can be disabled (and is disabled by default when running on Mac OS X). The
+ result is that all USB devices are directly connected to the virtual root
+ USB hub. At least this allows finding and communicating with the devices but
+ you can't check which devices are connected to which hub in this case.
+
+ To disable hierarchy scanning add this to the file:
+
++----+
+de.ailis.usb4java.scanHierarchy = false
++----+
+
+ When you want to enable it on Mac OS X for some reason then set it to
+ <<>>.
+
+
+* Device filtering
+
+ To improve USB device scan performance you can configure device filters
+ with these two properties:
+
++----+
+de.ailis.usb4java.vendors = 12ab cd56
+de.ailis.usb4java.products = 01aa
++----+
+
+ With a configuration like this ignores all devices which does
+ not have vendor ID <<<12ab>>> or <<>> and not product ID <<<01aa>>>.
+
+ The purpose of this device filtering is performance. When your machine
+ has many USB devices connected then it may slow down your application when
+ has to read all the descriptors of all connected devices on
+ startup and everytime a USB device has been attached or detached.
+ So filtering for vendor ID and/or product ID will hide all
+ uninteresting devices from . When using this feature then it is
+ recommended to disable hierarchy scan, too, because then hubs can be totally
+ ignored. With enabled hierarchy scan has to traverse all hubs to
+ find interesting devices.
+
+
+
\ No newline at end of file
diff --git a/src/site/apt/quickstart.apt.vm b/src/site/apt/quickstart.apt.vm
index 0dd3f77..34217f1 100644
--- a/src/site/apt/quickstart.apt.vm
+++ b/src/site/apt/quickstart.apt.vm
@@ -112,8 +112,8 @@ The high-level API
* Configuration
To use the implementation you have to create a file named
- in the root of your class path with the following
- content:
+ <{{{./configuration.html}javax.usb.properties}}> in the root of your class
+ path with the following content:
+-----------------------------------------------------------------------------+
javax.usb.services = de.ailis.usb4java.Services
diff --git a/src/site/site.xml b/src/site/site.xml
index 8f373f2..fd6685b 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -23,6 +23,7 @@
+