diff --git a/.gitignore b/.gitignore
index b077322..a99373d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,7 @@ build/
deploy/
target/
*.class
+.gradle
# The 3rd party dependencies should never be committed
libs/wpilib
@@ -18,5 +19,5 @@ libs/ctre
libs/navx-mxp
downloads/
-.DS_Store/
+.DS_Store
diff --git a/.travis.yml b/.travis.yml
index 524d20e..bbde734 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,6 +9,8 @@ before_install:
- ant -version
install: ant deps
-script: ant test
+script:
+ - "ant test"
+ - "./gradlew build"
jdk:
- oraclejdk8
diff --git a/build-common.xml b/build-common.xml
index 968d915..d1caa50 100644
--- a/build-common.xml
+++ b/build-common.xml
@@ -11,11 +11,11 @@
-
-
+
+
-
-
+
+
@@ -54,6 +54,12 @@
+
+
+
+
+
+
@@ -61,7 +67,7 @@
-
+
Compiling against WPILib ${wpilib.version} installed at ${wpilib.dir}
-
+
diff --git a/build.gradle b/build.gradle
new file mode 100755
index 0000000..9ab73a1
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,39 @@
+plugins {
+ id 'java'
+}
+ext {
+ baseDir = project.projectDir
+}
+
+subprojects {
+
+ apply plugin: 'java'
+
+ sourceCompatibility = 1.8
+ targetCompatibility = 1.8
+
+ repositories {
+ mavenCentral()
+ }
+
+ group = "org.strongback"
+ version = "2017.2.1-SNAPSHOT"
+
+ repositories {
+ maven {
+ url 'http://first.wpi.edu/FRC/roborio/maven/release'
+ }
+ }
+
+ dependencies {
+ testCompile('junit:junit:4.12')
+ testCompile('org.easytesting:fest-assert:1.4')
+ }
+
+}
+
+task wrapper(type: Wrapper) {
+ gradleVersion = '2.10'
+}
+
+ant.importBuild 'third-party.xml'
diff --git a/build.properties b/build.properties
index b83ee35..b85fd64 100644
--- a/build.properties
+++ b/build.properties
@@ -5,15 +5,3 @@ strongback.version=2017.2.0
# replace the value with the URL of the WPILib Eclipse Update Site
#
wpilib.updatesite.url=http://first.wpi.edu/FRC/roborio/release/eclipse/
-
-#
-# Starting in 2017, WPILib will no longer have built-in support for the TalonSRX
-# from Cross the Road Electronics (CTRE). Instead, the `CANTalon` class and associated
-# functionality is available directly from CTRE as a separate JAR.
-#
-ctre.download.url=http://www.ctr-electronics.com/downloads/lib/CTRE_FRCLibs_NON-WINDOWS.zip
-
-#
-# The navX-MXP library is available in a ZIP file that has only the Java and C++ libraries.
-#
-navx.download.url=http://www.kauailabs.com/public_files/navx-mxp/navx-mxp-libs.zip
\ No newline at end of file
diff --git a/build.xml b/build.xml
index 7769940..a67adf4 100644
--- a/build.xml
+++ b/build.xml
@@ -13,12 +13,12 @@
+
+
-
-
@@ -92,10 +92,10 @@
-
+
-
+
@@ -256,62 +256,4 @@
-
-
-
-
-
-
-
-
-
-
- Downloading the CTRE library and installing into '${ctre.dir}'.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- # Downloaded and installed by Strongback build system${line.separator}
- ${ctre.version.properties}
-
-
-
-
-
-
-
-
-
-
-
- Downloading the navX-MXP library and installing into '${navx.dir}'.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100755
index 0000000..e8c6bf7
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100755
index 0000000..970e24c
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Sat Jan 23 19:15:02 EST 2016
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-all.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..97fac78
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100755
index 0000000..8a0b282
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..b58b187
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,5 @@
+include ':strongback'
+include ':strongback-testing'
+include ':strongback-tests'
+include ':strongback-tools'
+include ':strongback-examples'
\ No newline at end of file
diff --git a/strongback-examples/build.gradle b/strongback-examples/build.gradle
new file mode 100644
index 0000000..029763a
--- /dev/null
+++ b/strongback-examples/build.gradle
@@ -0,0 +1,3 @@
+dependencies {
+ compile project(":strongback")
+}
\ No newline at end of file
diff --git a/strongback-examples/src/org/strongback/example/simple/SimpleAutoTankDriveRobot.java b/strongback-examples/src/main/java/org/strongback/example/simple/SimpleAutoTankDriveRobot.java
similarity index 100%
rename from strongback-examples/src/org/strongback/example/simple/SimpleAutoTankDriveRobot.java
rename to strongback-examples/src/main/java/org/strongback/example/simple/SimpleAutoTankDriveRobot.java
diff --git a/strongback-examples/src/org/strongback/example/simple/SimpleTankDriveRobot.java b/strongback-examples/src/main/java/org/strongback/example/simple/SimpleTankDriveRobot.java
similarity index 100%
rename from strongback-examples/src/org/strongback/example/simple/SimpleTankDriveRobot.java
rename to strongback-examples/src/main/java/org/strongback/example/simple/SimpleTankDriveRobot.java
diff --git a/strongback-testing/build.gradle b/strongback-testing/build.gradle
new file mode 100644
index 0000000..2e84707
--- /dev/null
+++ b/strongback-testing/build.gradle
@@ -0,0 +1,7 @@
+plugins {
+ id "maven"
+}
+
+dependencies {
+ compile project(":strongback")
+}
\ No newline at end of file
diff --git a/strongback-testing/src/org/strongback/ExecutableTimer.java b/strongback-testing/src/main/java/org/strongback/ExecutableTimer.java
similarity index 100%
rename from strongback-testing/src/org/strongback/ExecutableTimer.java
rename to strongback-testing/src/main/java/org/strongback/ExecutableTimer.java
diff --git a/strongback-testing/src/org/strongback/command/CommandTester.java b/strongback-testing/src/main/java/org/strongback/command/CommandTester.java
similarity index 100%
rename from strongback-testing/src/org/strongback/command/CommandTester.java
rename to strongback-testing/src/main/java/org/strongback/command/CommandTester.java
diff --git a/strongback-testing/src/org/strongback/command/WatchedCommand.java b/strongback-testing/src/main/java/org/strongback/command/WatchedCommand.java
similarity index 100%
rename from strongback-testing/src/org/strongback/command/WatchedCommand.java
rename to strongback-testing/src/main/java/org/strongback/command/WatchedCommand.java
diff --git a/strongback-testing/src/org/strongback/mock/Mock.java b/strongback-testing/src/main/java/org/strongback/mock/Mock.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/Mock.java
rename to strongback-testing/src/main/java/org/strongback/mock/Mock.java
diff --git a/strongback-testing/src/org/strongback/mock/MockAccelerometer.java b/strongback-testing/src/main/java/org/strongback/mock/MockAccelerometer.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockAccelerometer.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockAccelerometer.java
diff --git a/strongback-testing/src/org/strongback/mock/MockAngleSensor.java b/strongback-testing/src/main/java/org/strongback/mock/MockAngleSensor.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockAngleSensor.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockAngleSensor.java
diff --git a/strongback-testing/src/org/strongback/mock/MockClock.java b/strongback-testing/src/main/java/org/strongback/mock/MockClock.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockClock.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockClock.java
diff --git a/strongback-testing/src/org/strongback/mock/MockCompass.java b/strongback-testing/src/main/java/org/strongback/mock/MockCompass.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockCompass.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockCompass.java
diff --git a/strongback-testing/src/org/strongback/mock/MockController.java b/strongback-testing/src/main/java/org/strongback/mock/MockController.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockController.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockController.java
diff --git a/strongback-testing/src/org/strongback/mock/MockCurrentSensor.java b/strongback-testing/src/main/java/org/strongback/mock/MockCurrentSensor.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockCurrentSensor.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockCurrentSensor.java
diff --git a/strongback-testing/src/org/strongback/mock/MockDistanceSensor.java b/strongback-testing/src/main/java/org/strongback/mock/MockDistanceSensor.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockDistanceSensor.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockDistanceSensor.java
diff --git a/strongback-testing/src/org/strongback/mock/MockGyroscope.java b/strongback-testing/src/main/java/org/strongback/mock/MockGyroscope.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockGyroscope.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockGyroscope.java
diff --git a/strongback-testing/src/org/strongback/mock/MockMotor.java b/strongback-testing/src/main/java/org/strongback/mock/MockMotor.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockMotor.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockMotor.java
diff --git a/strongback-testing/src/org/strongback/mock/MockPIDController.java b/strongback-testing/src/main/java/org/strongback/mock/MockPIDController.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockPIDController.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockPIDController.java
diff --git a/strongback-testing/src/org/strongback/mock/MockPneumaticsModule.java b/strongback-testing/src/main/java/org/strongback/mock/MockPneumaticsModule.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockPneumaticsModule.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockPneumaticsModule.java
diff --git a/strongback-testing/src/org/strongback/mock/MockPowerPanel.java b/strongback-testing/src/main/java/org/strongback/mock/MockPowerPanel.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockPowerPanel.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockPowerPanel.java
diff --git a/strongback-testing/src/org/strongback/mock/MockRelay.java b/strongback-testing/src/main/java/org/strongback/mock/MockRelay.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockRelay.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockRelay.java
diff --git a/strongback-testing/src/org/strongback/mock/MockSolenoid.java b/strongback-testing/src/main/java/org/strongback/mock/MockSolenoid.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockSolenoid.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockSolenoid.java
diff --git a/strongback-testing/src/org/strongback/mock/MockSwitch.java b/strongback-testing/src/main/java/org/strongback/mock/MockSwitch.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockSwitch.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockSwitch.java
diff --git a/strongback-testing/src/org/strongback/mock/MockTalonSRX.java b/strongback-testing/src/main/java/org/strongback/mock/MockTalonSRX.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockTalonSRX.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockTalonSRX.java
diff --git a/strongback-testing/src/org/strongback/mock/MockTemperatureSensor.java b/strongback-testing/src/main/java/org/strongback/mock/MockTemperatureSensor.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockTemperatureSensor.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockTemperatureSensor.java
diff --git a/strongback-testing/src/org/strongback/mock/MockThreeAxisAccelerometer.java b/strongback-testing/src/main/java/org/strongback/mock/MockThreeAxisAccelerometer.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockThreeAxisAccelerometer.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockThreeAxisAccelerometer.java
diff --git a/strongback-testing/src/org/strongback/mock/MockTwoAxisAccelerometer.java b/strongback-testing/src/main/java/org/strongback/mock/MockTwoAxisAccelerometer.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockTwoAxisAccelerometer.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockTwoAxisAccelerometer.java
diff --git a/strongback-testing/src/org/strongback/mock/MockVoltageSensor.java b/strongback-testing/src/main/java/org/strongback/mock/MockVoltageSensor.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockVoltageSensor.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockVoltageSensor.java
diff --git a/strongback-testing/src/org/strongback/mock/MockZeroable.java b/strongback-testing/src/main/java/org/strongback/mock/MockZeroable.java
similarity index 100%
rename from strongback-testing/src/org/strongback/mock/MockZeroable.java
rename to strongback-testing/src/main/java/org/strongback/mock/MockZeroable.java
diff --git a/strongback-tests/build.gradle b/strongback-tests/build.gradle
new file mode 100644
index 0000000..fc3c898
--- /dev/null
+++ b/strongback-tests/build.gradle
@@ -0,0 +1,4 @@
+dependencies {
+ testCompile project(":strongback")
+ testCompile project(":strongback-testing")
+}
\ No newline at end of file
diff --git a/strongback-tests/build.xml b/strongback-tests/build.xml
index f6ed207..7d972a8 100644
--- a/strongback-tests/build.xml
+++ b/strongback-tests/build.xml
@@ -9,13 +9,13 @@
-
+
[run-tests] Running all unit tests...
-
+
@@ -23,7 +23,7 @@
-
+
diff --git a/strongback-tests/src/org/strongback/AccumulatingEventWriter.java b/strongback-tests/src/test/java/org/strongback/AccumulatingEventWriter.java
similarity index 100%
rename from strongback-tests/src/org/strongback/AccumulatingEventWriter.java
rename to strongback-tests/src/test/java/org/strongback/AccumulatingEventWriter.java
diff --git a/strongback-tests/src/org/strongback/AsyncEventRecorderTest.java b/strongback-tests/src/test/java/org/strongback/AsyncEventRecorderTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/AsyncEventRecorderTest.java
rename to strongback-tests/src/test/java/org/strongback/AsyncEventRecorderTest.java
diff --git a/strongback-tests/src/org/strongback/ExecutableTimerTest.java b/strongback-tests/src/test/java/org/strongback/ExecutableTimerTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/ExecutableTimerTest.java
rename to strongback-tests/src/test/java/org/strongback/ExecutableTimerTest.java
diff --git a/strongback-tests/src/org/strongback/StrongbackTest.java b/strongback-tests/src/test/java/org/strongback/StrongbackTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/StrongbackTest.java
rename to strongback-tests/src/test/java/org/strongback/StrongbackTest.java
diff --git a/strongback-tests/src/org/strongback/command/CommandGroupTest.java b/strongback-tests/src/test/java/org/strongback/command/CommandGroupTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/command/CommandGroupTest.java
rename to strongback-tests/src/test/java/org/strongback/command/CommandGroupTest.java
diff --git a/strongback-tests/src/org/strongback/command/CommandRunnerTest.java b/strongback-tests/src/test/java/org/strongback/command/CommandRunnerTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/command/CommandRunnerTest.java
rename to strongback-tests/src/test/java/org/strongback/command/CommandRunnerTest.java
diff --git a/strongback-tests/src/org/strongback/command/sample/Pause.java b/strongback-tests/src/test/java/org/strongback/command/sample/Pause.java
similarity index 100%
rename from strongback-tests/src/org/strongback/command/sample/Pause.java
rename to strongback-tests/src/test/java/org/strongback/command/sample/Pause.java
diff --git a/strongback-tests/src/org/strongback/component/AbstractDoubleValueTest.java b/strongback-tests/src/test/java/org/strongback/component/AbstractDoubleValueTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/component/AbstractDoubleValueTest.java
rename to strongback-tests/src/test/java/org/strongback/component/AbstractDoubleValueTest.java
diff --git a/strongback-tests/src/org/strongback/component/AngleSensorTest.java b/strongback-tests/src/test/java/org/strongback/component/AngleSensorTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/component/AngleSensorTest.java
rename to strongback-tests/src/test/java/org/strongback/component/AngleSensorTest.java
diff --git a/strongback-tests/src/org/strongback/component/CompassTest.java b/strongback-tests/src/test/java/org/strongback/component/CompassTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/component/CompassTest.java
rename to strongback-tests/src/test/java/org/strongback/component/CompassTest.java
diff --git a/strongback-tests/src/org/strongback/component/CounterTest.java b/strongback-tests/src/test/java/org/strongback/component/CounterTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/component/CounterTest.java
rename to strongback-tests/src/test/java/org/strongback/component/CounterTest.java
diff --git a/strongback-tests/src/org/strongback/component/DistanceSensorTest.java b/strongback-tests/src/test/java/org/strongback/component/DistanceSensorTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/component/DistanceSensorTest.java
rename to strongback-tests/src/test/java/org/strongback/component/DistanceSensorTest.java
diff --git a/strongback-tests/src/org/strongback/component/FuseTest.java b/strongback-tests/src/test/java/org/strongback/component/FuseTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/component/FuseTest.java
rename to strongback-tests/src/test/java/org/strongback/component/FuseTest.java
diff --git a/strongback-tests/src/org/strongback/component/GyroscopeTest.java b/strongback-tests/src/test/java/org/strongback/component/GyroscopeTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/component/GyroscopeTest.java
rename to strongback-tests/src/test/java/org/strongback/component/GyroscopeTest.java
diff --git a/strongback-tests/src/org/strongback/component/LimitedMotorTest.java b/strongback-tests/src/test/java/org/strongback/component/LimitedMotorTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/component/LimitedMotorTest.java
rename to strongback-tests/src/test/java/org/strongback/component/LimitedMotorTest.java
diff --git a/strongback-tests/src/org/strongback/component/SwitchTest.java b/strongback-tests/src/test/java/org/strongback/component/SwitchTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/component/SwitchTest.java
rename to strongback-tests/src/test/java/org/strongback/component/SwitchTest.java
diff --git a/strongback-tests/src/org/strongback/control/SoftwarePIDControllerTest.java b/strongback-tests/src/test/java/org/strongback/control/SoftwarePIDControllerTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/control/SoftwarePIDControllerTest.java
rename to strongback-tests/src/test/java/org/strongback/control/SoftwarePIDControllerTest.java
diff --git a/strongback-tests/src/org/strongback/control/TestableRobotState.java b/strongback-tests/src/test/java/org/strongback/control/TestableRobotState.java
similarity index 100%
rename from strongback-tests/src/org/strongback/control/TestableRobotState.java
rename to strongback-tests/src/test/java/org/strongback/control/TestableRobotState.java
diff --git a/strongback-tests/src/org/strongback/hardware/HardwareTalonSRX_AnalogInputSensorTest.java b/strongback-tests/src/test/java/org/strongback/hardware/HardwareTalonSRX_AnalogInputSensorTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/hardware/HardwareTalonSRX_AnalogInputSensorTest.java
rename to strongback-tests/src/test/java/org/strongback/hardware/HardwareTalonSRX_AnalogInputSensorTest.java
diff --git a/strongback-tests/src/org/strongback/hardware/HardwareTalonSRX_EncoderInputSensorTest.java b/strongback-tests/src/test/java/org/strongback/hardware/HardwareTalonSRX_EncoderInputSensorTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/hardware/HardwareTalonSRX_EncoderInputSensorTest.java
rename to strongback-tests/src/test/java/org/strongback/hardware/HardwareTalonSRX_EncoderInputSensorTest.java
diff --git a/strongback-tests/src/org/strongback/mock/AbstractDoubleMockTest.java b/strongback-tests/src/test/java/org/strongback/mock/AbstractDoubleMockTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/mock/AbstractDoubleMockTest.java
rename to strongback-tests/src/test/java/org/strongback/mock/AbstractDoubleMockTest.java
diff --git a/strongback-tests/src/org/strongback/mock/MockAccelerometerTest.java b/strongback-tests/src/test/java/org/strongback/mock/MockAccelerometerTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/mock/MockAccelerometerTest.java
rename to strongback-tests/src/test/java/org/strongback/mock/MockAccelerometerTest.java
diff --git a/strongback-tests/src/org/strongback/mock/MockAngleSensorTest.java b/strongback-tests/src/test/java/org/strongback/mock/MockAngleSensorTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/mock/MockAngleSensorTest.java
rename to strongback-tests/src/test/java/org/strongback/mock/MockAngleSensorTest.java
diff --git a/strongback-tests/src/org/strongback/mock/MockCompassTest.java b/strongback-tests/src/test/java/org/strongback/mock/MockCompassTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/mock/MockCompassTest.java
rename to strongback-tests/src/test/java/org/strongback/mock/MockCompassTest.java
diff --git a/strongback-tests/src/org/strongback/mock/MockPneumaticsModuleTest.java b/strongback-tests/src/test/java/org/strongback/mock/MockPneumaticsModuleTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/mock/MockPneumaticsModuleTest.java
rename to strongback-tests/src/test/java/org/strongback/mock/MockPneumaticsModuleTest.java
diff --git a/strongback-tests/src/org/strongback/util/ValuesTest.java b/strongback-tests/src/test/java/org/strongback/util/ValuesTest.java
similarity index 100%
rename from strongback-tests/src/org/strongback/util/ValuesTest.java
rename to strongback-tests/src/test/java/org/strongback/util/ValuesTest.java
diff --git a/strongback-tools/build.gradle b/strongback-tools/build.gradle
new file mode 100644
index 0000000..c0b1b9c
--- /dev/null
+++ b/strongback-tools/build.gradle
@@ -0,0 +1,3 @@
+plugins {
+ id "maven"
+}
diff --git a/strongback-tools/src/org/strongback/tools/logdecoder/LogDecoder.java b/strongback-tools/src/main/java/org/strongback/tools/logdecoder/LogDecoder.java
similarity index 100%
rename from strongback-tools/src/org/strongback/tools/logdecoder/LogDecoder.java
rename to strongback-tools/src/main/java/org/strongback/tools/logdecoder/LogDecoder.java
diff --git a/strongback-tools/src/org/strongback/tools/newproject/NewProject.java b/strongback-tools/src/main/java/org/strongback/tools/newproject/NewProject.java
similarity index 100%
rename from strongback-tools/src/org/strongback/tools/newproject/NewProject.java
rename to strongback-tools/src/main/java/org/strongback/tools/newproject/NewProject.java
diff --git a/strongback-tools/src/org/strongback/tools/utils/FileUtils.java b/strongback-tools/src/main/java/org/strongback/tools/utils/FileUtils.java
similarity index 100%
rename from strongback-tools/src/org/strongback/tools/utils/FileUtils.java
rename to strongback-tools/src/main/java/org/strongback/tools/utils/FileUtils.java
diff --git a/strongback-tools/src/org/strongback/tools/utils/Parser.java b/strongback-tools/src/main/java/org/strongback/tools/utils/Parser.java
similarity index 100%
rename from strongback-tools/src/org/strongback/tools/utils/Parser.java
rename to strongback-tools/src/main/java/org/strongback/tools/utils/Parser.java
diff --git a/strongback-tools/src/org/strongback/tools/utils/Printer.java b/strongback-tools/src/main/java/org/strongback/tools/utils/Printer.java
similarity index 100%
rename from strongback-tools/src/org/strongback/tools/utils/Printer.java
rename to strongback-tools/src/main/java/org/strongback/tools/utils/Printer.java
diff --git a/strongback-tools/src/org/strongback/tools/utils/PropertiesUtils.java b/strongback-tools/src/main/java/org/strongback/tools/utils/PropertiesUtils.java
similarity index 100%
rename from strongback-tools/src/org/strongback/tools/utils/PropertiesUtils.java
rename to strongback-tools/src/main/java/org/strongback/tools/utils/PropertiesUtils.java
diff --git a/strongback-tools/src/org/strongback/tools/utils/Version.java b/strongback-tools/src/main/java/org/strongback/tools/utils/Version.java
similarity index 100%
rename from strongback-tools/src/org/strongback/tools/utils/Version.java
rename to strongback-tools/src/main/java/org/strongback/tools/utils/Version.java
diff --git a/strongback-tools/src/strongback.properties b/strongback-tools/src/main/resources/strongback.properties
similarity index 100%
rename from strongback-tools/src/strongback.properties
rename to strongback-tools/src/main/resources/strongback.properties
diff --git a/strongback-tools/test/org/strongback/tools/newproject/NewProjectTest.java b/strongback-tools/src/test/java/org/strongback/tools/newproject/NewProjectTest.java
similarity index 100%
rename from strongback-tools/test/org/strongback/tools/newproject/NewProjectTest.java
rename to strongback-tools/src/test/java/org/strongback/tools/newproject/NewProjectTest.java
diff --git a/strongback-tools/test/org/strongback/tools/utils/FileUtilsTest.java b/strongback-tools/src/test/java/org/strongback/tools/utils/FileUtilsTest.java
similarity index 100%
rename from strongback-tools/test/org/strongback/tools/utils/FileUtilsTest.java
rename to strongback-tools/src/test/java/org/strongback/tools/utils/FileUtilsTest.java
diff --git a/strongback-tools/test/org/strongback/tools/utils/VersionTest.java b/strongback-tools/src/test/java/org/strongback/tools/utils/VersionTest.java
similarity index 100%
rename from strongback-tools/test/org/strongback/tools/utils/VersionTest.java
rename to strongback-tools/src/test/java/org/strongback/tools/utils/VersionTest.java
diff --git a/strongback/build.gradle b/strongback/build.gradle
new file mode 100644
index 0000000..2b7b838
--- /dev/null
+++ b/strongback/build.gradle
@@ -0,0 +1,19 @@
+plugins {
+ id "maven"
+ id "jaci.openrio.gradle.GradleRIO" version "2017.1.5"
+}
+
+wpi {
+ wpilibVersion = '2017.3.1'
+}
+
+dependencies {
+ compile wpilib()
+ compile fileTree(dir: "${project.baseDir}/libs/ctre", include: '**/*.jar')
+ compile fileTree(dir: "${project.baseDir}/libs/navx-mxp", include: '**/*.jar')
+ compile('io.dropwizard.metrics:metrics-core:3.1.0')
+ compile('junit:junit:4.11')
+}
+
+compileJava.dependsOn(':download-navx')
+compileJava.dependsOn(':download-ctre')
\ No newline at end of file
diff --git a/strongback/src/org/strongback/AsyncEventRecorder.java b/strongback/src/main/java/org/strongback/AsyncEventRecorder.java
similarity index 100%
rename from strongback/src/org/strongback/AsyncEventRecorder.java
rename to strongback/src/main/java/org/strongback/AsyncEventRecorder.java
diff --git a/strongback/src/org/strongback/AsyncSwitchReactor.java b/strongback/src/main/java/org/strongback/AsyncSwitchReactor.java
similarity index 100%
rename from strongback/src/org/strongback/AsyncSwitchReactor.java
rename to strongback/src/main/java/org/strongback/AsyncSwitchReactor.java
diff --git a/strongback/src/org/strongback/DataRecordable.java b/strongback/src/main/java/org/strongback/DataRecordable.java
similarity index 100%
rename from strongback/src/org/strongback/DataRecordable.java
rename to strongback/src/main/java/org/strongback/DataRecordable.java
diff --git a/strongback/src/org/strongback/DataRecorder.java b/strongback/src/main/java/org/strongback/DataRecorder.java
similarity index 100%
rename from strongback/src/org/strongback/DataRecorder.java
rename to strongback/src/main/java/org/strongback/DataRecorder.java
diff --git a/strongback/src/org/strongback/DataRecorderChannel.java b/strongback/src/main/java/org/strongback/DataRecorderChannel.java
similarity index 100%
rename from strongback/src/org/strongback/DataRecorderChannel.java
rename to strongback/src/main/java/org/strongback/DataRecorderChannel.java
diff --git a/strongback/src/org/strongback/DataRecorderChannels.java b/strongback/src/main/java/org/strongback/DataRecorderChannels.java
similarity index 100%
rename from strongback/src/org/strongback/DataRecorderChannels.java
rename to strongback/src/main/java/org/strongback/DataRecorderChannels.java
diff --git a/strongback/src/org/strongback/DataRecorderDriver.java b/strongback/src/main/java/org/strongback/DataRecorderDriver.java
similarity index 100%
rename from strongback/src/org/strongback/DataRecorderDriver.java
rename to strongback/src/main/java/org/strongback/DataRecorderDriver.java
diff --git a/strongback/src/org/strongback/DataWriter.java b/strongback/src/main/java/org/strongback/DataWriter.java
similarity index 100%
rename from strongback/src/org/strongback/DataWriter.java
rename to strongback/src/main/java/org/strongback/DataWriter.java
diff --git a/strongback/src/org/strongback/EventRecorder.java b/strongback/src/main/java/org/strongback/EventRecorder.java
similarity index 100%
rename from strongback/src/org/strongback/EventRecorder.java
rename to strongback/src/main/java/org/strongback/EventRecorder.java
diff --git a/strongback/src/org/strongback/Executable.java b/strongback/src/main/java/org/strongback/Executable.java
similarity index 100%
rename from strongback/src/org/strongback/Executable.java
rename to strongback/src/main/java/org/strongback/Executable.java
diff --git a/strongback/src/org/strongback/Executables.java b/strongback/src/main/java/org/strongback/Executables.java
similarity index 100%
rename from strongback/src/org/strongback/Executables.java
rename to strongback/src/main/java/org/strongback/Executables.java
diff --git a/strongback/src/org/strongback/Executor.java b/strongback/src/main/java/org/strongback/Executor.java
similarity index 100%
rename from strongback/src/org/strongback/Executor.java
rename to strongback/src/main/java/org/strongback/Executor.java
diff --git a/strongback/src/org/strongback/ExecutorDriver.java b/strongback/src/main/java/org/strongback/ExecutorDriver.java
similarity index 100%
rename from strongback/src/org/strongback/ExecutorDriver.java
rename to strongback/src/main/java/org/strongback/ExecutorDriver.java
diff --git a/strongback/src/org/strongback/FileDataWriter.java b/strongback/src/main/java/org/strongback/FileDataWriter.java
similarity index 100%
rename from strongback/src/org/strongback/FileDataWriter.java
rename to strongback/src/main/java/org/strongback/FileDataWriter.java
diff --git a/strongback/src/org/strongback/FileEventWriter.java b/strongback/src/main/java/org/strongback/FileEventWriter.java
similarity index 100%
rename from strongback/src/org/strongback/FileEventWriter.java
rename to strongback/src/main/java/org/strongback/FileEventWriter.java
diff --git a/strongback/src/org/strongback/Logger.java b/strongback/src/main/java/org/strongback/Logger.java
similarity index 100%
rename from strongback/src/org/strongback/Logger.java
rename to strongback/src/main/java/org/strongback/Logger.java
diff --git a/strongback/src/org/strongback/MappedFileDataWriter.java b/strongback/src/main/java/org/strongback/MappedFileDataWriter.java
similarity index 100%
rename from strongback/src/org/strongback/MappedFileDataWriter.java
rename to strongback/src/main/java/org/strongback/MappedFileDataWriter.java
diff --git a/strongback/src/org/strongback/NoOpLogger.java b/strongback/src/main/java/org/strongback/NoOpLogger.java
similarity index 100%
rename from strongback/src/org/strongback/NoOpLogger.java
rename to strongback/src/main/java/org/strongback/NoOpLogger.java
diff --git a/strongback/src/org/strongback/Strongback.java b/strongback/src/main/java/org/strongback/Strongback.java
similarity index 100%
rename from strongback/src/org/strongback/Strongback.java
rename to strongback/src/main/java/org/strongback/Strongback.java
diff --git a/strongback/src/org/strongback/StrongbackRequirementException.java b/strongback/src/main/java/org/strongback/StrongbackRequirementException.java
similarity index 100%
rename from strongback/src/org/strongback/StrongbackRequirementException.java
rename to strongback/src/main/java/org/strongback/StrongbackRequirementException.java
diff --git a/strongback/src/org/strongback/SwitchReactor.java b/strongback/src/main/java/org/strongback/SwitchReactor.java
similarity index 100%
rename from strongback/src/org/strongback/SwitchReactor.java
rename to strongback/src/main/java/org/strongback/SwitchReactor.java
diff --git a/strongback/src/org/strongback/SystemLogger.java b/strongback/src/main/java/org/strongback/SystemLogger.java
similarity index 100%
rename from strongback/src/org/strongback/SystemLogger.java
rename to strongback/src/main/java/org/strongback/SystemLogger.java
diff --git a/strongback/src/org/strongback/annotation/Experimental.java b/strongback/src/main/java/org/strongback/annotation/Experimental.java
similarity index 100%
rename from strongback/src/org/strongback/annotation/Experimental.java
rename to strongback/src/main/java/org/strongback/annotation/Experimental.java
diff --git a/strongback/src/org/strongback/annotation/Immutable.java b/strongback/src/main/java/org/strongback/annotation/Immutable.java
similarity index 100%
rename from strongback/src/org/strongback/annotation/Immutable.java
rename to strongback/src/main/java/org/strongback/annotation/Immutable.java
diff --git a/strongback/src/org/strongback/annotation/NotImplemented.java b/strongback/src/main/java/org/strongback/annotation/NotImplemented.java
similarity index 100%
rename from strongback/src/org/strongback/annotation/NotImplemented.java
rename to strongback/src/main/java/org/strongback/annotation/NotImplemented.java
diff --git a/strongback/src/org/strongback/annotation/NotThreadSafe.java b/strongback/src/main/java/org/strongback/annotation/NotThreadSafe.java
similarity index 100%
rename from strongback/src/org/strongback/annotation/NotThreadSafe.java
rename to strongback/src/main/java/org/strongback/annotation/NotThreadSafe.java
diff --git a/strongback/src/org/strongback/annotation/ThreadSafe.java b/strongback/src/main/java/org/strongback/annotation/ThreadSafe.java
similarity index 100%
rename from strongback/src/org/strongback/annotation/ThreadSafe.java
rename to strongback/src/main/java/org/strongback/annotation/ThreadSafe.java
diff --git a/strongback/src/org/strongback/command/Command.java b/strongback/src/main/java/org/strongback/command/Command.java
similarity index 100%
rename from strongback/src/org/strongback/command/Command.java
rename to strongback/src/main/java/org/strongback/command/Command.java
diff --git a/strongback/src/org/strongback/command/CommandGroup.java b/strongback/src/main/java/org/strongback/command/CommandGroup.java
similarity index 100%
rename from strongback/src/org/strongback/command/CommandGroup.java
rename to strongback/src/main/java/org/strongback/command/CommandGroup.java
diff --git a/strongback/src/org/strongback/command/CommandRunner.java b/strongback/src/main/java/org/strongback/command/CommandRunner.java
similarity index 100%
rename from strongback/src/org/strongback/command/CommandRunner.java
rename to strongback/src/main/java/org/strongback/command/CommandRunner.java
diff --git a/strongback/src/org/strongback/command/CommandState.java b/strongback/src/main/java/org/strongback/command/CommandState.java
similarity index 100%
rename from strongback/src/org/strongback/command/CommandState.java
rename to strongback/src/main/java/org/strongback/command/CommandState.java
diff --git a/strongback/src/org/strongback/command/Commands.java b/strongback/src/main/java/org/strongback/command/Commands.java
similarity index 100%
rename from strongback/src/org/strongback/command/Commands.java
rename to strongback/src/main/java/org/strongback/command/Commands.java
diff --git a/strongback/src/org/strongback/command/ControllerCommand.java b/strongback/src/main/java/org/strongback/command/ControllerCommand.java
similarity index 100%
rename from strongback/src/org/strongback/command/ControllerCommand.java
rename to strongback/src/main/java/org/strongback/command/ControllerCommand.java
diff --git a/strongback/src/org/strongback/command/Requirable.java b/strongback/src/main/java/org/strongback/command/Requirable.java
similarity index 100%
rename from strongback/src/org/strongback/command/Requirable.java
rename to strongback/src/main/java/org/strongback/command/Requirable.java
diff --git a/strongback/src/org/strongback/command/Scheduler.java b/strongback/src/main/java/org/strongback/command/Scheduler.java
similarity index 100%
rename from strongback/src/org/strongback/command/Scheduler.java
rename to strongback/src/main/java/org/strongback/command/Scheduler.java
diff --git a/strongback/src/org/strongback/command/UnmanagedControllerCommand.java b/strongback/src/main/java/org/strongback/command/UnmanagedControllerCommand.java
similarity index 100%
rename from strongback/src/org/strongback/command/UnmanagedControllerCommand.java
rename to strongback/src/main/java/org/strongback/command/UnmanagedControllerCommand.java
diff --git a/strongback/src/org/strongback/components/Accelerometer.java b/strongback/src/main/java/org/strongback/components/Accelerometer.java
similarity index 100%
rename from strongback/src/org/strongback/components/Accelerometer.java
rename to strongback/src/main/java/org/strongback/components/Accelerometer.java
diff --git a/strongback/src/org/strongback/components/AngleSensor.java b/strongback/src/main/java/org/strongback/components/AngleSensor.java
similarity index 100%
rename from strongback/src/org/strongback/components/AngleSensor.java
rename to strongback/src/main/java/org/strongback/components/AngleSensor.java
diff --git a/strongback/src/org/strongback/components/Clock.java b/strongback/src/main/java/org/strongback/components/Clock.java
similarity index 100%
rename from strongback/src/org/strongback/components/Clock.java
rename to strongback/src/main/java/org/strongback/components/Clock.java
diff --git a/strongback/src/org/strongback/components/Compass.java b/strongback/src/main/java/org/strongback/components/Compass.java
similarity index 100%
rename from strongback/src/org/strongback/components/Compass.java
rename to strongback/src/main/java/org/strongback/components/Compass.java
diff --git a/strongback/src/org/strongback/components/Counter.java b/strongback/src/main/java/org/strongback/components/Counter.java
similarity index 100%
rename from strongback/src/org/strongback/components/Counter.java
rename to strongback/src/main/java/org/strongback/components/Counter.java
diff --git a/strongback/src/org/strongback/components/CurrentSensor.java b/strongback/src/main/java/org/strongback/components/CurrentSensor.java
similarity index 100%
rename from strongback/src/org/strongback/components/CurrentSensor.java
rename to strongback/src/main/java/org/strongback/components/CurrentSensor.java
diff --git a/strongback/src/org/strongback/components/DistanceSensor.java b/strongback/src/main/java/org/strongback/components/DistanceSensor.java
similarity index 100%
rename from strongback/src/org/strongback/components/DistanceSensor.java
rename to strongback/src/main/java/org/strongback/components/DistanceSensor.java
diff --git a/strongback/src/org/strongback/components/Fuse.java b/strongback/src/main/java/org/strongback/components/Fuse.java
similarity index 100%
rename from strongback/src/org/strongback/components/Fuse.java
rename to strongback/src/main/java/org/strongback/components/Fuse.java
diff --git a/strongback/src/org/strongback/components/Gyroscope.java b/strongback/src/main/java/org/strongback/components/Gyroscope.java
similarity index 100%
rename from strongback/src/org/strongback/components/Gyroscope.java
rename to strongback/src/main/java/org/strongback/components/Gyroscope.java
diff --git a/strongback/src/org/strongback/components/LimitedMotor.java b/strongback/src/main/java/org/strongback/components/LimitedMotor.java
similarity index 100%
rename from strongback/src/org/strongback/components/LimitedMotor.java
rename to strongback/src/main/java/org/strongback/components/LimitedMotor.java
diff --git a/strongback/src/org/strongback/components/Motor.java b/strongback/src/main/java/org/strongback/components/Motor.java
similarity index 100%
rename from strongback/src/org/strongback/components/Motor.java
rename to strongback/src/main/java/org/strongback/components/Motor.java
diff --git a/strongback/src/org/strongback/components/PneumaticsModule.java b/strongback/src/main/java/org/strongback/components/PneumaticsModule.java
similarity index 100%
rename from strongback/src/org/strongback/components/PneumaticsModule.java
rename to strongback/src/main/java/org/strongback/components/PneumaticsModule.java
diff --git a/strongback/src/org/strongback/components/PowerPanel.java b/strongback/src/main/java/org/strongback/components/PowerPanel.java
similarity index 100%
rename from strongback/src/org/strongback/components/PowerPanel.java
rename to strongback/src/main/java/org/strongback/components/PowerPanel.java
diff --git a/strongback/src/org/strongback/components/Relay.java b/strongback/src/main/java/org/strongback/components/Relay.java
similarity index 100%
rename from strongback/src/org/strongback/components/Relay.java
rename to strongback/src/main/java/org/strongback/components/Relay.java
diff --git a/strongback/src/org/strongback/components/Solenoid.java b/strongback/src/main/java/org/strongback/components/Solenoid.java
similarity index 100%
rename from strongback/src/org/strongback/components/Solenoid.java
rename to strongback/src/main/java/org/strongback/components/Solenoid.java
diff --git a/strongback/src/org/strongback/components/SolenoidWithPosition.java b/strongback/src/main/java/org/strongback/components/SolenoidWithPosition.java
similarity index 100%
rename from strongback/src/org/strongback/components/SolenoidWithPosition.java
rename to strongback/src/main/java/org/strongback/components/SolenoidWithPosition.java
diff --git a/strongback/src/org/strongback/components/SpeedController.java b/strongback/src/main/java/org/strongback/components/SpeedController.java
similarity index 100%
rename from strongback/src/org/strongback/components/SpeedController.java
rename to strongback/src/main/java/org/strongback/components/SpeedController.java
diff --git a/strongback/src/org/strongback/components/SpeedSensor.java b/strongback/src/main/java/org/strongback/components/SpeedSensor.java
similarity index 100%
rename from strongback/src/org/strongback/components/SpeedSensor.java
rename to strongback/src/main/java/org/strongback/components/SpeedSensor.java
diff --git a/strongback/src/org/strongback/components/Stoppable.java b/strongback/src/main/java/org/strongback/components/Stoppable.java
similarity index 100%
rename from strongback/src/org/strongback/components/Stoppable.java
rename to strongback/src/main/java/org/strongback/components/Stoppable.java
diff --git a/strongback/src/org/strongback/components/Switch.java b/strongback/src/main/java/org/strongback/components/Switch.java
similarity index 100%
rename from strongback/src/org/strongback/components/Switch.java
rename to strongback/src/main/java/org/strongback/components/Switch.java
diff --git a/strongback/src/org/strongback/components/TalonSRX.java b/strongback/src/main/java/org/strongback/components/TalonSRX.java
similarity index 100%
rename from strongback/src/org/strongback/components/TalonSRX.java
rename to strongback/src/main/java/org/strongback/components/TalonSRX.java
diff --git a/strongback/src/org/strongback/components/TemperatureSensor.java b/strongback/src/main/java/org/strongback/components/TemperatureSensor.java
similarity index 100%
rename from strongback/src/org/strongback/components/TemperatureSensor.java
rename to strongback/src/main/java/org/strongback/components/TemperatureSensor.java
diff --git a/strongback/src/org/strongback/components/ThreeAxisAcceleration.java b/strongback/src/main/java/org/strongback/components/ThreeAxisAcceleration.java
similarity index 100%
rename from strongback/src/org/strongback/components/ThreeAxisAcceleration.java
rename to strongback/src/main/java/org/strongback/components/ThreeAxisAcceleration.java
diff --git a/strongback/src/org/strongback/components/ThreeAxisAccelerometer.java b/strongback/src/main/java/org/strongback/components/ThreeAxisAccelerometer.java
similarity index 100%
rename from strongback/src/org/strongback/components/ThreeAxisAccelerometer.java
rename to strongback/src/main/java/org/strongback/components/ThreeAxisAccelerometer.java
diff --git a/strongback/src/org/strongback/components/TwoAxisAcceleration.java b/strongback/src/main/java/org/strongback/components/TwoAxisAcceleration.java
similarity index 100%
rename from strongback/src/org/strongback/components/TwoAxisAcceleration.java
rename to strongback/src/main/java/org/strongback/components/TwoAxisAcceleration.java
diff --git a/strongback/src/org/strongback/components/TwoAxisAccelerometer.java b/strongback/src/main/java/org/strongback/components/TwoAxisAccelerometer.java
similarity index 100%
rename from strongback/src/org/strongback/components/TwoAxisAccelerometer.java
rename to strongback/src/main/java/org/strongback/components/TwoAxisAccelerometer.java
diff --git a/strongback/src/org/strongback/components/VoltageSensor.java b/strongback/src/main/java/org/strongback/components/VoltageSensor.java
similarity index 100%
rename from strongback/src/org/strongback/components/VoltageSensor.java
rename to strongback/src/main/java/org/strongback/components/VoltageSensor.java
diff --git a/strongback/src/org/strongback/components/Zeroable.java b/strongback/src/main/java/org/strongback/components/Zeroable.java
similarity index 100%
rename from strongback/src/org/strongback/components/Zeroable.java
rename to strongback/src/main/java/org/strongback/components/Zeroable.java
diff --git a/strongback/src/org/strongback/components/package-info.java b/strongback/src/main/java/org/strongback/components/package-info.java
similarity index 100%
rename from strongback/src/org/strongback/components/package-info.java
rename to strongback/src/main/java/org/strongback/components/package-info.java
diff --git a/strongback/src/org/strongback/components/ui/ContinuousRange.java b/strongback/src/main/java/org/strongback/components/ui/ContinuousRange.java
similarity index 100%
rename from strongback/src/org/strongback/components/ui/ContinuousRange.java
rename to strongback/src/main/java/org/strongback/components/ui/ContinuousRange.java
diff --git a/strongback/src/org/strongback/components/ui/DirectionalAxis.java b/strongback/src/main/java/org/strongback/components/ui/DirectionalAxis.java
similarity index 100%
rename from strongback/src/org/strongback/components/ui/DirectionalAxis.java
rename to strongback/src/main/java/org/strongback/components/ui/DirectionalAxis.java
diff --git a/strongback/src/org/strongback/components/ui/FlightStick.java b/strongback/src/main/java/org/strongback/components/ui/FlightStick.java
similarity index 100%
rename from strongback/src/org/strongback/components/ui/FlightStick.java
rename to strongback/src/main/java/org/strongback/components/ui/FlightStick.java
diff --git a/strongback/src/org/strongback/components/ui/Gamepad.java b/strongback/src/main/java/org/strongback/components/ui/Gamepad.java
similarity index 100%
rename from strongback/src/org/strongback/components/ui/Gamepad.java
rename to strongback/src/main/java/org/strongback/components/ui/Gamepad.java
diff --git a/strongback/src/org/strongback/components/ui/InputDevice.java b/strongback/src/main/java/org/strongback/components/ui/InputDevice.java
similarity index 100%
rename from strongback/src/org/strongback/components/ui/InputDevice.java
rename to strongback/src/main/java/org/strongback/components/ui/InputDevice.java
diff --git a/strongback/src/org/strongback/control/Controller.java b/strongback/src/main/java/org/strongback/control/Controller.java
similarity index 100%
rename from strongback/src/org/strongback/control/Controller.java
rename to strongback/src/main/java/org/strongback/control/Controller.java
diff --git a/strongback/src/org/strongback/control/PIDController.java b/strongback/src/main/java/org/strongback/control/PIDController.java
similarity index 100%
rename from strongback/src/org/strongback/control/PIDController.java
rename to strongback/src/main/java/org/strongback/control/PIDController.java
diff --git a/strongback/src/org/strongback/control/SoftwarePIDController.java b/strongback/src/main/java/org/strongback/control/SoftwarePIDController.java
similarity index 100%
rename from strongback/src/org/strongback/control/SoftwarePIDController.java
rename to strongback/src/main/java/org/strongback/control/SoftwarePIDController.java
diff --git a/strongback/src/org/strongback/control/TalonController.java b/strongback/src/main/java/org/strongback/control/TalonController.java
similarity index 100%
rename from strongback/src/org/strongback/control/TalonController.java
rename to strongback/src/main/java/org/strongback/control/TalonController.java
diff --git a/strongback/src/org/strongback/drive/MecanumDrive.java b/strongback/src/main/java/org/strongback/drive/MecanumDrive.java
similarity index 100%
rename from strongback/src/org/strongback/drive/MecanumDrive.java
rename to strongback/src/main/java/org/strongback/drive/MecanumDrive.java
diff --git a/strongback/src/org/strongback/drive/TankDrive.java b/strongback/src/main/java/org/strongback/drive/TankDrive.java
similarity index 100%
rename from strongback/src/org/strongback/drive/TankDrive.java
rename to strongback/src/main/java/org/strongback/drive/TankDrive.java
diff --git a/strongback/src/org/strongback/function/DoubleBiFunction.java b/strongback/src/main/java/org/strongback/function/DoubleBiFunction.java
similarity index 100%
rename from strongback/src/org/strongback/function/DoubleBiFunction.java
rename to strongback/src/main/java/org/strongback/function/DoubleBiFunction.java
diff --git a/strongback/src/org/strongback/function/DoubleToDoubleFunction.java b/strongback/src/main/java/org/strongback/function/DoubleToDoubleFunction.java
similarity index 100%
rename from strongback/src/org/strongback/function/DoubleToDoubleFunction.java
rename to strongback/src/main/java/org/strongback/function/DoubleToDoubleFunction.java
diff --git a/strongback/src/org/strongback/function/IntBiFunction.java b/strongback/src/main/java/org/strongback/function/IntBiFunction.java
similarity index 100%
rename from strongback/src/org/strongback/function/IntBiFunction.java
rename to strongback/src/main/java/org/strongback/function/IntBiFunction.java
diff --git a/strongback/src/org/strongback/function/IntToBooleanFunction.java b/strongback/src/main/java/org/strongback/function/IntToBooleanFunction.java
similarity index 100%
rename from strongback/src/org/strongback/function/IntToBooleanFunction.java
rename to strongback/src/main/java/org/strongback/function/IntToBooleanFunction.java
diff --git a/strongback/src/org/strongback/function/IntToIntFunction.java b/strongback/src/main/java/org/strongback/function/IntToIntFunction.java
similarity index 100%
rename from strongback/src/org/strongback/function/IntToIntFunction.java
rename to strongback/src/main/java/org/strongback/function/IntToIntFunction.java
diff --git a/strongback/src/org/strongback/hardware/Hardware.java b/strongback/src/main/java/org/strongback/hardware/Hardware.java
similarity index 100%
rename from strongback/src/org/strongback/hardware/Hardware.java
rename to strongback/src/main/java/org/strongback/hardware/Hardware.java
diff --git a/strongback/src/org/strongback/hardware/HardwareDoubleSolenoid.java b/strongback/src/main/java/org/strongback/hardware/HardwareDoubleSolenoid.java
similarity index 100%
rename from strongback/src/org/strongback/hardware/HardwareDoubleSolenoid.java
rename to strongback/src/main/java/org/strongback/hardware/HardwareDoubleSolenoid.java
diff --git a/strongback/src/org/strongback/hardware/HardwareMotor.java b/strongback/src/main/java/org/strongback/hardware/HardwareMotor.java
similarity index 100%
rename from strongback/src/org/strongback/hardware/HardwareMotor.java
rename to strongback/src/main/java/org/strongback/hardware/HardwareMotor.java
diff --git a/strongback/src/org/strongback/hardware/HardwarePneumaticsModule.java b/strongback/src/main/java/org/strongback/hardware/HardwarePneumaticsModule.java
similarity index 100%
rename from strongback/src/org/strongback/hardware/HardwarePneumaticsModule.java
rename to strongback/src/main/java/org/strongback/hardware/HardwarePneumaticsModule.java
diff --git a/strongback/src/org/strongback/hardware/HardwareRelay.java b/strongback/src/main/java/org/strongback/hardware/HardwareRelay.java
similarity index 100%
rename from strongback/src/org/strongback/hardware/HardwareRelay.java
rename to strongback/src/main/java/org/strongback/hardware/HardwareRelay.java
diff --git a/strongback/src/org/strongback/hardware/HardwareSpark.java b/strongback/src/main/java/org/strongback/hardware/HardwareSpark.java
similarity index 100%
rename from strongback/src/org/strongback/hardware/HardwareSpark.java
rename to strongback/src/main/java/org/strongback/hardware/HardwareSpark.java
diff --git a/strongback/src/org/strongback/hardware/HardwareTalonController.java b/strongback/src/main/java/org/strongback/hardware/HardwareTalonController.java
similarity index 100%
rename from strongback/src/org/strongback/hardware/HardwareTalonController.java
rename to strongback/src/main/java/org/strongback/hardware/HardwareTalonController.java
diff --git a/strongback/src/org/strongback/hardware/HardwareTalonSRX.java b/strongback/src/main/java/org/strongback/hardware/HardwareTalonSRX.java
similarity index 100%
rename from strongback/src/org/strongback/hardware/HardwareTalonSRX.java
rename to strongback/src/main/java/org/strongback/hardware/HardwareTalonSRX.java
diff --git a/strongback/src/org/strongback/util/Collections.java b/strongback/src/main/java/org/strongback/util/Collections.java
similarity index 100%
rename from strongback/src/org/strongback/util/Collections.java
rename to strongback/src/main/java/org/strongback/util/Collections.java
diff --git a/strongback/src/org/strongback/util/Iterators.java b/strongback/src/main/java/org/strongback/util/Iterators.java
similarity index 100%
rename from strongback/src/org/strongback/util/Iterators.java
rename to strongback/src/main/java/org/strongback/util/Iterators.java
diff --git a/strongback/src/org/strongback/util/Metronome.java b/strongback/src/main/java/org/strongback/util/Metronome.java
similarity index 100%
rename from strongback/src/org/strongback/util/Metronome.java
rename to strongback/src/main/java/org/strongback/util/Metronome.java
diff --git a/strongback/src/org/strongback/util/Values.java b/strongback/src/main/java/org/strongback/util/Values.java
similarity index 100%
rename from strongback/src/org/strongback/util/Values.java
rename to strongback/src/main/java/org/strongback/util/Values.java
diff --git a/third-party.xml b/third-party.xml
new file mode 100644
index 0000000..f61abad
--- /dev/null
+++ b/third-party.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Downloading the CTRE library and installing into '${ctre.dir}'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # Downloaded and installed by Strongback build system${line.separator}
+ ${ctre.version.properties}
+
+
+
+
+
+
+
+
+
+
+ Downloading the navX-MXP library and installing into '${navx.dir}'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/thirdparty.properties b/thirdparty.properties
new file mode 100644
index 0000000..864fad5
--- /dev/null
+++ b/thirdparty.properties
@@ -0,0 +1,11 @@
+#
+# Starting in 2017, WPILib will no longer have built-in support for the TalonSRX
+# from Cross the Road Electronics (CTRE). Instead, the `CANTalon` class and associated
+# functionality is available directly from CTRE as a separate JAR.
+#
+ctre.download.url=http://www.ctr-electronics.com/downloads/lib/CTRE_FRCLibs_NON-WINDOWS.zip
+
+#
+# The navX-MXP library is available in a ZIP file that has only the Java and C++ libraries.
+#
+navx.download.url=http://www.kauailabs.com/public_files/navx-mxp/navx-mxp-libs.zip
\ No newline at end of file