New project structure and push version to 0.4.0

This commit is contained in:
Klaus Reimer 2012-11-12 20:39:16 +01:00
parent e7948fc191
commit 2cb5374e98
131 changed files with 218 additions and 369 deletions

8
.gitignore vendored
View File

@ -1,7 +1,7 @@
/target
/.settings
/.classpath
/.project
target
.settings
.classpath
.project
libtool
install-sh
Makefile.in

View File

@ -1,5 +0,0 @@
* Do extensive tests with USB pipes. interrupt data transfer seems to work
(MouseDriver demo is working) but never used bulk transfer and it's unclear
if the queue implementation is working correctly under stress.
* Implement Control transfers in pipe.

123
pom.xml
View File

@ -3,11 +3,11 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.ailis.usb4java</groupId>
<artifactId>usb4java</artifactId>
<packaging>jar</packaging>
<artifactId>usb4java-parent</artifactId>
<packaging>pom</packaging>
<name>usb4java</name>
<version>0.3.5-SNAPSHOT</version>
<url>http://kayahr.github.com/${project.artifactId}/</url>
<version>0.4.0-SNAPSHOT</version>
<url>http://kayahr.github.com/usb4java/</url>
<description>
USB library for Java based on libusb-0.1.x and implementing javax.usb
(JSR-80).
@ -41,79 +41,37 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<releasesUrl>http://nexus.ailis.de/content/repositories/releases/de/ailis/${project.artifactId}/${project.artifactId}/${project.version}</releasesUrl>
<snapshotsUrl>http://nexus.ailis.de/content/repositories/snapshots/de/ailis/${project.artifactId}/${project.artifactId}</snapshotsUrl>
<releasesUrl>http://nexus.ailis.de/content/repositories/releases/de/ailis/usb4java/usb4java/${project.version}</releasesUrl>
<snapshotsUrl>http://nexus.ailis.de/content/repositories/snapshots/de/ailis/usb4java/usb4java</snapshotsUrl>
</properties>
<scm>
<connection>scm:git:git://github.com/kayahr/${project.artifactId}.git</connection>
<developerConnection>scm:git:ssh://git@github.com/kayahr/${project.artifactId}.git</developerConnection>
<url>http://github.com/kayahr/${project.artifactId}</url>
<connection>scm:git:git://github.com/kayahr/usb4java.git</connection>
<developerConnection>scm:git:ssh://git@github.com/kayahr/usb4java.git</developerConnection>
<url>http://github.com/kayahr/usb4java</url>
</scm>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/kayahr/${project.artifactId}/issues</url>
<url>https://github.com/kayahr/usb4java/issues</url>
</issueManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0</version>
<configuration>
<chmod>false</chmod>
<locales>en</locales>
<inputEncoding>${project.build.sourceEncoding}</inputEncoding>
<outputEncoding>${project.build.sourceEncoding}</outputEncoding>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
<configuration>
<dependencyDetailEnabled>false</dependencyDetailEnabled>
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
</configuration>
<reports>
<report>summary</report>
<report>dependencies</report>
<report>project-team</report>
<report>issue-tracking</report>
<report>license</report>
<report>scm</report>
</reports>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>2.6</version>
<reportSets>
<reportSet>
<reports>
<report>changes-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</reportPlugins>
</configuration>
</plugin>
</plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<repositories>
@ -136,7 +94,7 @@
<distributionManagement>
<site>
<id>project-website</id>
<url>file://${project.basedir}/../${project.artifactId}-site/</url>
<url>file://${project.basedir}/../usb4java-site/</url>
</site>
<repository>
<id>ailis-releases</id>
@ -150,12 +108,29 @@
</snapshotRepository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>javax.usb</groupId>
<artifactId>usb</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>de.ailis.usb4java</groupId>
<artifactId>usb4java</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>de.ailis.usb4java</groupId>
<artifactId>usb4java-natives</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.usb</groupId>
<artifactId>usb</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
</dependencyManagement>
<modules>
<module>usb4java</module>
<module>usb4java-natives</module>
</modules>
</project>

View File

@ -1,212 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<!--
Checkstyle configuration that checks the Ailis coding conventions from:
- the Java Language Specification at
http://java.sun.com/docs/books/jls/second_edition/html/index.html
- the Sun Code Conventions at http://java.sun.com/docs/codeconv/
- the Javadoc guidelines at
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
- the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
- some best practices
Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.sf.net (or in your downloaded distribution).
Most Checks are configurable, be sure to consult the documentation.
To completely disable a check, just comment it out or delete it from the file.
Finally, it is worth reading the documentation.
-->
<module name="Checker">
<!--
If you set the basedir property below, then all reported file
names will be relative to the specified directory. See
http://checkstyle.sourceforge.net/5.x/config.html#Checker
<property name="basedir" value="${basedir}"/>
-->
<!-- Checks that each Java package has a Javadoc file used for commenting. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
<module name="JavadocPackage">
<property name="allowLegacy" value="false"/>
</module>
<!-- Checks whether files end with a new line. -->
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
<module name="NewlineAtEndOfFile"/>
<!-- Checks that property files contain the same keys. -->
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
<module name="Translation"/>
<module name="FileLength"/>
<!-- Following interprets the header file as regular expressions. -->
<!-- <module name="RegexpHeader"/> -->
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
<module name="RegexpSingleline">
<!-- \s matches whitespace character, $ matches end of line. -->
<property name="format" value="\s+$"/>
<property name="message" value="Line has trailing spaces."/>
</module>
<module name="TreeWalker">
<property name="cacheFile" value="${checkstyle.cache.file}"/>
<!-- Checks for Javadoc comments. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
<module name="JavadocMethod">
<property name="scope" value="private" />
<property name="allowMissingParamTags" value="true" />
<property name="allowMissingReturnTag" value="true" />
<property name="allowMissingThrowsTags" value="true" />
</module>
<module name="JavadocType">
<property name="scope" value="private" />
</module>
<module name="JavadocVariable"/>
<module name="JavadocStyle"/>
<!-- Checks for Naming Conventions. -->
<!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
<module name="MethodName">
<property name="format" value="^[a-zA-Z][a-zA-Z0-9_]*$"/>
</module>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName">
<property name="format" value="^[A-Z][a-zA-Z0-9_]*$"/>
</module>
<!-- Checks for Headers -->
<!-- See http://checkstyle.sf.net/config_header.html -->
<!-- <module name="Header"> -->
<!-- The follow property value demonstrates the ability -->
<!-- to have access to ANT properties. In this case it uses -->
<!-- the ${basedir} property to allow Checkstyle to be run -->
<!-- from any directory within a project. See property -->
<!-- expansion, -->
<!-- http://checkstyle.sf.net/config.html#properties -->
<!-- <property -->
<!-- name="headerFile" -->
<!-- value="${basedir}/java.header"/> -->
<!-- </module> -->
<!-- Checks for imports -->
<!-- See http://checkstyle.sf.net/config_import.html -->
<module name="AvoidStarImport"/>
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<!-- Checks for Size Violations. -->
<!-- See http://checkstyle.sf.net/config_sizes.html -->
<module name="LineLength"/>
<module name="MethodLength"/>
<module name="ParameterNumber">
<property name="max" value="10" />
<property name="tokens" value="METHOD_DEF" />
</module>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="EmptyForIteratorPad"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<!-- Modifier Checks -->
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>
<!-- Checks for blocks. You know, those {}'s -->
<!-- See http://checkstyle.sf.net/config_blocks.html -->
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock"/>
<module name="LeftCurly">
<property name="option" value="nl"/>
</module>
<!-- <module name="NeedBraces"/> -->
<module name="RightCurly">
<property name="option" value="alone"/>
</module>
<!-- Checks for common coding problems -->
<!-- See http://checkstyle.sf.net/config_coding.html -->
<!-- <module name="AvoidInlineConditionals"/> -->
<module name="DoubleCheckedLocking"/> <!-- MY FAVOURITE -->
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<!-- <module name="HiddenField"/> -->
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1, 0, 1, 2, 17, 37, 255, 65535" />
</module>
<module name="MissingSwitchDefault"/>
<module name="RedundantThrows">
<property name="allowUnchecked" value="true" />
<property name="allowSubclasses" value="true" />
</module>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<!-- Checks for class design -->
<!-- See http://checkstyle.sf.net/config_design.html -->
<module name="DesignForExtension"/>
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier">
<property name="protectedAllowed" value="true" />
</module>
<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<module name="ArrayTypeStyle"/>
<module name="FinalParameters"/>
<module name="TodoComment"/>
<module name="UpperEll"/>
</module>
</module>

View File

@ -1,51 +0,0 @@
-----------------------------------------------------------------------------
Download
-----------------------------------------------------------------------------
Download
* Binaries
First of all you need the platform independent Java library for usb4java:
* {{{${releasesUrl}/usb4java-${project.version}.jar}usb4java-${project.version}.jar}}
[]
Additionally you need the JNI library for the platform on which you want
to use usb4java. The JARs for Windows and Mac OS X also contain the libusb
shared library. On Linux machines this library is provided by the linux
distribution (Usually a package called libusb, make sure it is version 0.x
and not the newer 1.x).
* {{{${releasesUrl}/usb4java-${project.version}-linux-x86.jar}usb4java-${project.version}-linux-x86.jar}}
* {{{${releasesUrl}/usb4java-${project.version}-linux-x86_64.jar}usb4java-${project.version}-linux-x86_64.jar}}
* {{{${releasesUrl}/usb4java-${project.version}-windows-x86.jar}usb4java-${project.version}-windows-x86.jar}}
* {{{${releasesUrl}/usb4java-${project.version}-windows-x86_64.jar}usb4java-${project.version}-windows-x86_64.jar}}
* {{{${releasesUrl}/usb4java-${project.version}-macosx-universal.jar}usb4java-${project.version}-macosx-universal.jar}}
[]
If you prefer using bleeding edge snapshots then you can download
them from the {{{$snapshotsUrl/}snapshot repository}}.
* Sources
You can also compile usb4java manually. Simply download one of the following
archives and run <<mvn package>>. The source archive contains the pre-compiled
shared libraries for Linux, Windows and Mac OS X but also the C source code
of the JNI library if you want to compile it yourself or want to use usb4java
on a different platform.
* {{{http://www.ailis.de/nexus/content/repositories/releases/de/ailis/usb4java/usb4java/${project.version}/usb4java-${project.version}-src.tar.bz2}usb4java-${project.version}-src.tar.bz2}}
* {{{http://www.ailis.de/nexus/content/repositories/releases/de/ailis/usb4java/usb4java/${project.version}/usb4java-${project.version}-src.zip}usb4java-${project.version}-src.zip}}
[]
Sources are also available in the {{{./source-repository.html}source repository}}.

15
usb4java-natives/pom.xml Normal file
View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.ailis.usb4java</groupId>
<artifactId>usb4java-parent</artifactId>
<version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>usb4java-natives</artifactId>
<packaging>jar</packaging>
<name>usb4java native libraries</name>
</project>

View File

@ -1,8 +1,15 @@
#!/bin/sh
#
# Builds libusb4java for 32 bit linux.
# If running on 32 bit linux you need libusb-dev.
# If running on 64 bit linux you need ia32-libs-dev and libc6-dev-i386.
#
# If running on 32 bit linux you just need libusb-dev.
#
# If running on 64 bit linux you need ia32-libs-dev and libc6-dev-i386
# or gcc-multilib and libusb-0.1-4:i386 or something like that an newer
# systems. Depending on your multilib installation it may be required to
# create a manual symlink libusb.so in /lib/i386-linux-gnu or otherwise
# compilation will fail because the compiler can't find the 32 bit
# library.
set -e
cd $(dirname $0)/..
@ -27,4 +34,5 @@ fi
make clean install-strip DESTDIR=$TMPDIR
mkdir -p $DISTDIR
cp -faL $TMPDIR/lib/libusb4java.so $DISTDIR/
chmod -x $DISTDIR/libusb4java.so
rm -rf $TMPDIR

View File

@ -26,4 +26,5 @@ fi
make clean install-strip DESTDIR=$TMPDIR
mkdir -p $DISTDIR
cp -faL $TMPDIR/lib/libusb4java.so $DISTDIR/
chmod -x $DISTDIR/libusb4java.so
rm -rf $TMPDIR

View File

@ -1,6 +1,8 @@
#!/bin/sh
#
# Builds universal libusb4java for Mac OS X (x86_64, x86, ppc)
# This is meant to be run on a Mac (With XCode command line stuff
# installed), it doesn't cross compile on linux!
set -e
cd $(dirname $0)/..

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Cross-compiles libusb4java for 64 bit windows using mingw.
# Cross-compiles libusb4java for 32 bit windows using mingw.
# libusb-dev is needed.
set -e
@ -42,4 +42,5 @@ make clean install-strip DESTDIR=$TMPDIR
mkdir -p $DISTDIR
cp -faL $TMPDIR/bin/libusb4java-0.dll $DISTDIR/libusb4java.dll
cp -faL $BINS/libusb0_x86.dll $DISTDIR/libusb0.dll
chmod -x $DISTDIR/libusb4java.dll
rm -rf $TMPDIR

View File

@ -42,4 +42,5 @@ make clean install-strip DESTDIR=$TMPDIR
mkdir -p $DISTDIR
cp -faL $TMPDIR/bin/libusb4java-0.dll $DISTDIR/libusb4java.dll
cp -faL $BINS/libusb0.dll $DISTDIR/libusb0.dll
chmod -x $DISTDIR/libusb4java.dll
rm -rf $TMPDIR

View File

@ -1,5 +1,5 @@
AC_PREREQ([2.61])
AC_INIT([libusb4java], [0.3.1], [k@ailis.de])
AC_INIT([libusb4java], [0.4.0], [k@ailis.de])
AM_INIT_AUTOMAKE(foreign -Wall -Werror)
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])

73
usb4java/pom.xml Normal file
View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.ailis.usb4java</groupId>
<artifactId>usb4java-parent</artifactId>
<version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>usb4java</artifactId>
<packaging>jar</packaging>
<name>usb4java java library</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0</version>
<configuration>
<chmod>false</chmod>
<locales>en</locales>
<inputEncoding>${project.build.sourceEncoding}</inputEncoding>
<outputEncoding>${project.build.sourceEncoding}</outputEncoding>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
<configuration>
<dependencyDetailEnabled>false</dependencyDetailEnabled>
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
</configuration>
<reports>
<report>summary</report>
<report>dependencies</report>
<report>project-team</report>
<report>issue-tracking</report>
<report>license</report>
<report>scm</report>
</reports>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>2.6</version>
<reportSets>
<reportSet>
<reports>
<report>changes-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</reportPlugins>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.usb</groupId>
<artifactId>usb</artifactId>
</dependency>
<dependency>
<groupId>de.ailis.usb4java</groupId>
<artifactId>usb4java-natives</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -8,44 +8,56 @@
<author email="k@ailis.de">Klaus Reimer</author>
</properties>
<body>
<release version="0.4.0" date="2012-11-12" description="Major update">
<action dev="kayahr" type="fix" date="2012-02-20">
Corrected endpoint index in JNI libraries.
</action>
<action dev="kayahr" type="add" date="2012-11-12">
Refactored loading of native libraries. The libraries are now a
standard Java dependency and are automatically extracted during
runtime. So no java.library.path or LD_LIBRARY_PATH tinkering
needed anymore. Just put the two JARs into your class path and
that's it.
</action>
</release>
<release version="0.3.4" date="2011-10-31" description="Minor update">
<action dev="k" type="fix" date="2011-10-31">
<action dev="kayahr" type="fix" date="2011-10-31">
Improved error messages when loading the JNI library fails.
</action>
</release>
<release version="0.3.3" date="2011-03-28" description="Minor update">
<action dev="k" type="fix" date="2011-03-28">
<action dev="kayahr" type="fix" date="2011-03-28">
Fixed library paths in dylibs so they can be placed in
*.app/Contents/MacOS.
</action>
</release>
<release version="0.3.2" date="2011-03-27" description="Minor update">
<action dev="k" type="add" date="2011-03-27">
<action dev="kayahr" type="add" date="2011-03-27">
Now trying to load the JNI library with the following library names:
usb4java, usb4java32, libusb4java, libusb4java32.
</action>
</release>
<release version="0.3.1" date="2011-03-05" description="Hotfix">
<action dev="k" type="fix" date="2011-03-05">
<action dev="kayahr" type="fix" date="2011-03-05">
Fixed missing support for custom buffer offsets and lengths.
</action>
</release>
<release version="0.3.0" date="2011-02-20" description="Minor update">
<action dev="k" type="fix" date="2011-02-20">
<action dev="kayahr" type="fix" date="2011-02-20">
Fixed problem with empty control requests on Mac OS X.
</action>
<action dev="k" type="add" date="2011-02-20">
<action dev="kayahr" type="add" date="2011-02-20">
Implemented configuration to control the communication timeout.
</action>
</release>
<release version="0.2.0" date="2011-02-11" description="Minor update">
<action dev="k" type="add" date="2011-02-11">
<action dev="kayahr" type="add" date="2011-02-11">
Implemented configuration to control the scan mode and to improve
scan performance by filtering for specific vendor and product ids.
</action>
</release>
<release version="0.1.1" date="2011-02-08" description="Hotfix">
<action dev="k" type="fix" date="2011-02-08">
<action dev="kayahr" type="fix" date="2011-02-08">
libusb reports broken bus root devices when detaching USB devices
and when user has no root permissions on linux. Fixed it by
only trusting root devices which are also in the device list of a bus.

Some files were not shown because too many files have changed in this diff Show More