summaryrefslogtreecommitdiff
path: root/tools/findbugs/bin
diff options
context:
space:
mode:
authormikesamuel <mikesamuel@ad8eed46-c659-4a31-e19d-951d88f54425>2013-02-26 03:37:22 +0000
committermikesamuel <mikesamuel@ad8eed46-c659-4a31-e19d-951d88f54425>2013-02-26 03:37:22 +0000
commit489a0ec7301a86af8497d24748336db09ca278da (patch)
tree7b92c050f7904af3f81b3113542796424bdd1dda /tools/findbugs/bin
parent269ace1e335c40c4d704196db62607f93edefeac (diff)
downloadsanitizer-489a0ec7301a86af8497d24748336db09ca278da.tar.gz
upgraded to most recent version of findbugs
git-svn-id: http://owasp-java-html-sanitizer.googlecode.com/svn/trunk@155 ad8eed46-c659-4a31-e19d-951d88f54425
Diffstat (limited to 'tools/findbugs/bin')
-rwxr-xr-xtools/findbugs/bin/addMessages73
-rwxr-xr-xtools/findbugs/bin/computeBugHistory78
-rwxr-xr-xtools/findbugs/bin/convertXmlToText73
-rwxr-xr-xtools/findbugs/bin/copyBuggySource75
-rwxr-xr-xtools/findbugs/bin/defectDensity77
-rwxr-xr-xtools/findbugs/bin/deprecated/bugHistory75
-rwxr-xr-xtools/findbugs/bin/deprecated/unionBugs78
-rwxr-xr-xtools/findbugs/bin/deprecated/unionResults80
-rwxr-xr-xtools/findbugs/bin/deprecated/updateBugs78
-rwxr-xr-xtools/findbugs/bin/experimental/backdateHistoryUsingSource75
-rwxr-xr-xtools/findbugs/bin/experimental/churn75
-rwxr-xr-xtools/findbugs/bin/experimental/obfuscate75
-rwxr-xr-xtools/findbugs/bin/experimental/treemapVisualization75
-rwxr-xr-xtools/findbugs/bin/fb192
-rwxr-xr-xtools/findbugs/bin/fbwrap84
-rwxr-xr-xtools/findbugs/bin/filterBugs78
-rwxr-xr-xtools/findbugs/bin/findbugs199
-rwxr-xr-xtools/findbugs/bin/findbugs-csr76
-rwxr-xr-xtools/findbugs/bin/findbugs-dbStats76
-rwxr-xr-xtools/findbugs/bin/findbugs-msv76
-rw-r--r--tools/findbugs/bin/findbugs.bat240
-rwxr-xr-xtools/findbugs/bin/findbugs.icobin0 -> 7358 bytes
-rwxr-xr-xtools/findbugs/bin/findbugs2177
-rwxr-xr-xtools/findbugs/bin/listBugDatabaseInfo75
-rwxr-xr-xtools/findbugs/bin/mineBugHistory73
-rwxr-xr-xtools/findbugs/bin/printAppVersion75
-rwxr-xr-xtools/findbugs/bin/printClass73
-rwxr-xr-xtools/findbugs/bin/rejarForAnalysis75
-rwxr-xr-xtools/findbugs/bin/setBugDatabaseInfo75
-rwxr-xr-xtools/findbugs/bin/unionBugs80
-rwxr-xr-xtools/findbugs/bin/xpathFind75
31 files changed, 2786 insertions, 0 deletions
diff --git a/tools/findbugs/bin/addMessages b/tools/findbugs/bin/addMessages
new file mode 100755
index 0000000..5b9e5be
--- /dev/null
+++ b/tools/findbugs/bin/addMessages
@@ -0,0 +1,73 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.AddMessages
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
diff --git a/tools/findbugs/bin/computeBugHistory b/tools/findbugs/bin/computeBugHistory
new file mode 100755
index 0000000..24ce26c
--- /dev/null
+++ b/tools/findbugs/bin/computeBugHistory
@@ -0,0 +1,78 @@
+#! /bin/sh
+
+# Merge a historical bug collection and a bug collection, producing an updated
+# historical bug collection
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.Update
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/convertXmlToText b/tools/findbugs/bin/convertXmlToText
new file mode 100755
index 0000000..e8493d6
--- /dev/null
+++ b/tools/findbugs/bin/convertXmlToText
@@ -0,0 +1,73 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.PrintingBugReporter
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
diff --git a/tools/findbugs/bin/copyBuggySource b/tools/findbugs/bin/copyBuggySource
new file mode 100755
index 0000000..355819b
--- /dev/null
+++ b/tools/findbugs/bin/copyBuggySource
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.CopyBuggySource
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/defectDensity b/tools/findbugs/bin/defectDensity
new file mode 100755
index 0000000..a297a03
--- /dev/null
+++ b/tools/findbugs/bin/defectDensity
@@ -0,0 +1,77 @@
+#! /bin/sh
+
+# Generate a defect density table from a bug collection
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.DefectDensity
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/deprecated/bugHistory b/tools/findbugs/bin/deprecated/bugHistory
new file mode 100755
index 0000000..5f5599b
--- /dev/null
+++ b/tools/findbugs/bin/deprecated/bugHistory
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.BugHistory
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/deprecated/unionBugs b/tools/findbugs/bin/deprecated/unionBugs
new file mode 100755
index 0000000..9da0b84
--- /dev/null
+++ b/tools/findbugs/bin/deprecated/unionBugs
@@ -0,0 +1,78 @@
+#! /bin/sh
+
+# Create the union of two results files, preserving
+# annotations in both files in the result.
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.UnionResults
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/deprecated/unionResults b/tools/findbugs/bin/deprecated/unionResults
new file mode 100755
index 0000000..01d2126
--- /dev/null
+++ b/tools/findbugs/bin/deprecated/unionResults
@@ -0,0 +1,80 @@
+#! /bin/sh
+
+# Deprecated
+
+# Create the union of two results files, preserving
+# annotations in both files in the result.
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.UnionResults
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/deprecated/updateBugs b/tools/findbugs/bin/deprecated/updateBugs
new file mode 100755
index 0000000..24ce26c
--- /dev/null
+++ b/tools/findbugs/bin/deprecated/updateBugs
@@ -0,0 +1,78 @@
+#! /bin/sh
+
+# Merge a historical bug collection and a bug collection, producing an updated
+# historical bug collection
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.Update
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/experimental/backdateHistoryUsingSource b/tools/findbugs/bin/experimental/backdateHistoryUsingSource
new file mode 100755
index 0000000..55030fa
--- /dev/null
+++ b/tools/findbugs/bin/experimental/backdateHistoryUsingSource
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.BackdateHistoryUsingSource
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/experimental/churn b/tools/findbugs/bin/experimental/churn
new file mode 100755
index 0000000..998de6a
--- /dev/null
+++ b/tools/findbugs/bin/experimental/churn
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.Churn
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/experimental/obfuscate b/tools/findbugs/bin/experimental/obfuscate
new file mode 100755
index 0000000..ead5619
--- /dev/null
+++ b/tools/findbugs/bin/experimental/obfuscate
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.ObfuscateBugs
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/experimental/treemapVisualization b/tools/findbugs/bin/experimental/treemapVisualization
new file mode 100755
index 0000000..9795ff8
--- /dev/null
+++ b/tools/findbugs/bin/experimental/treemapVisualization
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.TreemapVisualization
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/fb b/tools/findbugs/bin/fb
new file mode 100755
index 0000000..4b96508
--- /dev/null
+++ b/tools/findbugs/bin/fb
@@ -0,0 +1,192 @@
+#! /bin/sh
+
+# Launch FindBugs from the command line.
+
+escape_arg() {
+ echo "$1" | sed -e "s,\\([\\\"' ]\\),\\\\\\1,g"
+}
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+
+fb_appjar="$findbugs_home/lib/findbugs.jar"
+
+ShowHelpAndExit() {
+ fb_mainclass="edu.umd.cs.findbugs.ShowHelp"
+ fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+ exit 0
+}
+
+# Set defaults
+fb_mainclass="edu.umd.cs.findbugs.workflow.FB"
+user_jvmargs=''
+ea_arg=''
+debug_arg=''
+conservespace_arg=''
+workhard_arg=''
+user_props=''
+
+# Handle command line arguments.
+while [ $# -gt 0 ]; do
+ case $1 in
+ -textui)
+ fb_mainclass="edu.umd.cs.findbugs.FindBugs2"
+ ;;
+
+ -jvmArgs)
+ shift
+ user_jvmargs="$1"
+ ;;
+
+ -ea)
+ ea_arg='-ea'
+ ;;
+
+ -maxHeap)
+ shift
+ fb_maxheap="-Xmx$1m"
+ ;;
+
+ -javahome)
+ shift
+ fb_javacmd="$1/bin/java"
+ ;;
+
+ -debug)
+ debug_arg="-Dfindbugs.debug=true"
+ ;;
+
+ -conserveSpace)
+ conservespace_arg="-Dfindbugs.conserveSpace=true"
+ ;;
+
+ -property)
+ shift
+ user_props="-D$1 $user_props"
+ ;;
+
+ -D*=*)
+ user_props="$1 $user_props"
+ ;;
+
+ -version)
+ fb_mainclass=edu.umd.cs.findbugs.Version
+ fb_appargs="-release"
+ while [ $# -gt 0 ]; do
+ shift
+ done
+ fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+ exit 0
+ ;;
+
+ -help)
+ ShowHelpAndExit
+ ;;
+
+ # All unrecognized arguments will be accumulated and
+ # passed to the application.
+ *)
+ fb_appargs="$fb_appargs `escape_arg "$1"`"
+ ;;
+ esac
+
+ shift
+done
+
+fb_jvmargs="$user_jvmargs $debug_arg $conservespace_arg $workhard_arg $user_props $ea_arg"
+if [ $maxheap ]; then
+ fb_maxheap="-Xmx${maxheap}m"
+fi
+
+# Extra JVM args for MacOSX.
+if [ $fb_osname = "Darwin" ]; then
+ fb_jvmargs="$fb_jvmargs \
+ -Xdock:name=FindBugs -Xdock:icon=${findbugs_home}/lib/buggy.icns \
+ -Dapple.laf.useScreenMenuBar=true"
+fi
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/fbwrap b/tools/findbugs/bin/fbwrap
new file mode 100755
index 0000000..85aba91
--- /dev/null
+++ b/tools/findbugs/bin/fbwrap
@@ -0,0 +1,84 @@
+#! /bin/sh
+
+# A convenient way to call the main() method of a class
+# in findbugs.jar.
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+if [ $# -eq 0 ]; then
+ echo "Usage: fbwrap <main class name> <args...>"
+ exit 1
+fi
+
+fb_mainclass="$1"
+shift
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/filterBugs b/tools/findbugs/bin/filterBugs
new file mode 100755
index 0000000..9116229
--- /dev/null
+++ b/tools/findbugs/bin/filterBugs
@@ -0,0 +1,78 @@
+#! /bin/sh
+
+# General purpose utility for filtering/transforming
+# bug collection and/or historical bug collections
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.Filter
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/findbugs b/tools/findbugs/bin/findbugs
new file mode 100755
index 0000000..471cf31
--- /dev/null
+++ b/tools/findbugs/bin/findbugs
@@ -0,0 +1,199 @@
+#! /bin/sh
+
+# Launch FindBugs from the command line.
+
+escape_arg() {
+ echo "$1" | sed -e "s,\\([\\\"' ]\\),\\\\\\1,g"
+}
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_appjar="$findbugs_home/lib/findbugs.jar"
+
+ShowHelpAndExit() {
+ fb_mainclass="edu.umd.cs.findbugs.ShowHelp"
+ fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+ exit 0
+}
+
+# Set defaults
+fb_mainclass="edu.umd.cs.findbugs.LaunchAppropriateUI"
+user_jvmargs=''
+ea_arg=''
+debug_arg=''
+conservespace_arg=''
+workhard_arg=''
+user_props=''
+
+# Handle command line arguments.
+while [ $# -gt 0 ]; do
+ case $1 in
+ -gui)
+ # this is the default
+ ;;
+
+ -gui1)
+ user_props="-Dfindbugs.launchUI=1 $user_props"
+ ;;
+
+ -textui)
+ fb_mainclass="edu.umd.cs.findbugs.FindBugs2"
+ ;;
+
+ -jvmArgs)
+ shift
+ user_jvmargs="$1"
+ ;;
+
+ -ea)
+ ea_arg='-ea'
+ ;;
+
+ -maxHeap)
+ shift
+ fb_maxheap="-Xmx$1m"
+ ;;
+
+ -javahome)
+ shift
+ fb_javacmd="$1/bin/java"
+ ;;
+
+ -debug)
+ debug_arg="-Dfindbugs.debug=true"
+ ;;
+
+ -conserveSpace)
+ conservespace_arg="-Dfindbugs.conserveSpace=true"
+ ;;
+
+ -property)
+ shift
+ user_props="-D$1 $user_props"
+ ;;
+
+ -D*=*)
+ user_props="$1 $user_props"
+ ;;
+
+ -version)
+ fb_mainclass=edu.umd.cs.findbugs.Version
+ fb_appargs="-release"
+ while [ $# -gt 0 ]; do
+ shift
+ done
+ fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+ exit 0
+ ;;
+
+ -help)
+ ShowHelpAndExit
+ ;;
+
+ # All unrecognized arguments will be accumulated and
+ # passed to the application.
+ *)
+ fb_appargs="$fb_appargs `escape_arg "$1"`"
+ ;;
+ esac
+
+ shift
+done
+
+fb_jvmargs="$user_jvmargs $debug_arg $conservespace_arg $workhard_arg $user_props $ea_arg"
+if [ $maxheap ]; then
+ fb_maxheap="-Xmx${maxheap}m"
+fi
+
+# Extra JVM args for MacOSX.
+if [ $fb_osname = "Darwin" ]; then
+ fb_jvmargs="$fb_jvmargs \
+ -Xdock:name=FindBugs -Xdock:icon=${findbugs_home}/lib/buggy.icns \
+ -Dapple.laf.useScreenMenuBar=true"
+fi
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/findbugs-csr b/tools/findbugs/bin/findbugs-csr
new file mode 100755
index 0000000..374d602
--- /dev/null
+++ b/tools/findbugs/bin/findbugs-csr
@@ -0,0 +1,76 @@
+#! /bin/sh
+
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.CloudSyncAndReport
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/findbugs-dbStats b/tools/findbugs/bin/findbugs-dbStats
new file mode 100755
index 0000000..1ada8ee
--- /dev/null
+++ b/tools/findbugs/bin/findbugs-dbStats
@@ -0,0 +1,76 @@
+#! /bin/sh
+
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.cloud.db.DBStats
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/findbugs-msv b/tools/findbugs/bin/findbugs-msv
new file mode 100755
index 0000000..ab00dd2
--- /dev/null
+++ b/tools/findbugs/bin/findbugs-msv
@@ -0,0 +1,76 @@
+#! /bin/sh
+
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.MergeSummarizeAndView
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/findbugs.bat b/tools/findbugs/bin/findbugs.bat
new file mode 100644
index 0000000..0cc4621
--- /dev/null
+++ b/tools/findbugs/bin/findbugs.bat
@@ -0,0 +1,240 @@
+@echo off
+:: Launch FindBugs on a Windows system.
+:: Adapted from scripts found at http://www.ericphelps.com/batch/
+:: This will only work on Windows NT or later!
+
+:: Don't affect environment outside of this invocation
+setlocal
+
+:: ----------------------------------------------------------------------
+:: Set up default values
+:: ----------------------------------------------------------------------
+set appjar=findbugs.jar
+set javahome=
+set launcher=java.exe
+set start=start "FindBugs"
+set jvmargs=
+set debugArg=
+set conserveSpaceArg=
+set workHardArg=
+set args=
+set javaProps=
+set maxheap=768
+
+REM default UI is gui2
+set launchUI=2
+
+:: Try finding the default FINDBUGS_HOME directory
+:: from the directory path of this script
+set default_findbugs_home=%~dp0..
+
+:: Honor JAVA_HOME environment variable if it is set
+if "%JAVA_HOME%"=="" goto nojavahome
+if not exist "%JAVA_HOME%\bin\javaw.exe" goto nojavahome
+set javahome=%JAVA_HOME%\bin\
+:nojavahome
+
+goto loop
+
+:: ----------------------------------------------------------------------
+:: Process command-line arguments
+:: ----------------------------------------------------------------------
+
+:shift2
+shift
+:shift1
+shift
+
+:loop
+
+:: Remove surrounding quotes from %1 and %2
+set firstArg=%~1
+set secondArg=%~2
+
+if "%firstArg%"=="" goto launch
+
+:: AddMessages
+if not "%firstArg%"=="-addMessages" goto notAddMessages
+set fb_mainclass=edu.umd.cs.findbugs.AddMessages
+goto shift1
+:notAddMessages
+
+:: computeBugHistory
+if not "%firstArg%"=="-computeBugHistory" goto notUpdate
+set fb_mainclass=edu.umd.cs.findbugs.workflow.Update
+goto shift1
+:notUpdate
+
+:: convertXmlToText
+if not "%firstArg%"=="-xmltotext" goto notXmlToText
+set fb_mainclass=edu.umd.cs.findbugs.PrintingBugReporter
+goto shift1
+:notXmlToText
+
+:: copyBuggySource
+if not "%firstArg%"=="-copyBS" goto notCopyBS
+set fb_mainclass=edu.umd.cs.findbugs.workflow.CopyBuggySource
+goto shift1
+:notCopyBS
+
+:: defectDensity
+if not "%firstArg%"=="-defectDensity" goto notDefectDensity
+set fb_mainclass=edu.umd.cs.findbugs.workflow.DefectDensity
+goto shift1
+:notDefectDensity
+
+:: filterBugs
+if not "%firstArg%"=="-filterBugs" goto notFilterBugs
+set fb_mainclass=edu.umd.cs.findbugs.workflow.Filter
+goto shift1
+:notFilterBugs
+
+:: listBugDatabaseInfo
+if not "%firstArg%"=="-listBugDatabaseInfo" goto notListBugDatabaseInfo
+set fb_mainclass=edu.umd.cs.findbugs.workflow.ListBugDatabaseInfo
+goto shift1
+:notListBugDatabaseInfo
+
+:: mineBugHistory
+if not "%firstArg%"=="-mineBugHistory" goto notMineBugHistory
+set fb_mainclass=edu.umd.cs.findbugs.workflow.MineBugHistory
+goto shift1
+:notMineBugHistory
+
+:: printAppVersion
+if not "%firstArg%"=="-printAppVersion" goto notPrintAppVersion
+set fb_mainclass=edu.umd.cs.findbugs.workflow.PrintAppVersion
+goto shift1
+:notPrintAppVersion
+
+:: printClass
+if not "%firstArg%"=="-printClass" goto notPrintClass
+set fb_mainclass=edu.umd.cs.findbugs.workflow.PrintClass
+goto shift1
+:notPrintClass
+
+:: rejarForAnalysis
+if not "%firstArg%"=="-rejar" goto notRejar
+set fb_mainclass=edu.umd.cs.findbugs.workflow.RejarClassesForAnalysis
+goto shift1
+:notRejar
+
+:: setBugDatabaseInfo
+if not "%firstArg%"=="-setInfo" goto notSetBugDatabaseInfo
+set fb_mainclass=edu.umd.cs.findbugs.workflow.SetBugDatabaseInfo
+goto shift1
+:notSetBugDatabaseInfo
+
+:: unionBugs
+if not "%firstArg%"=="-unionBugs" goto notUnionBugs
+set fb_mainclass=edu.umd.cs.findbugs.workflow.UnionResults
+goto shift1
+:notUnionBugs
+
+:: xpathFind
+if not "%firstArg%"=="-xpathFind" goto notXPathFind
+set fb_mainclass=edu.umd.cs.findbugs.workflow.XPathFind
+goto shift1
+:notXPathFind
+
+if not "%firstArg%"=="-gui" goto notGui
+set launchUI=2
+set launcher=javaw.exe
+goto shift1
+:notGui
+
+if not "%firstArg%"=="-gui1" goto notGui1
+set launchUI=1
+set javaProps=-Dfindbugs.launchUI=1 %javaProps%
+set launcher=javaw.exe
+goto shift1
+:notGui1
+
+if not "%firstArg%"=="-textui" goto notTextui
+set launchUI=0
+set launcher=java.exe
+set start=
+goto shift1
+:notTextui
+
+if not "%firstArg%"=="-debug" goto notDebug
+set launcher=java.exe
+set start=
+set debugArg=-Dfindbugs.debug=true
+goto shift1
+:notDebug
+
+if not "%firstArg%"=="-help" goto notHelp
+set launchUI=help
+set launcher=java.exe
+set start=
+goto shift1
+:notHelp
+
+if not "%firstArg%"=="-version" goto notVersion
+set launchUI=version
+set launcher=java.exe
+set start=
+goto shift1
+:notVersion
+
+if "%firstArg%"=="-home" set FINDBUGS_HOME=%secondArg%
+if "%firstArg%"=="-home" goto shift2
+
+if "%firstArg%"=="-jvmArgs" set jvmargs=%secondArg%
+if "%firstArg%"=="-jvmArgs" goto shift2
+
+if "%firstArg%"=="-maxHeap" set maxheap=%secondArg%
+if "%firstArg%"=="-maxHeap" goto shift2
+
+if "%firstArg%"=="-conserveSpace" set conserveSpaceArg=-Dfindbugs.conserveSpace=true
+if "%firstArg%"=="-conserveSpace" goto shift1
+
+if "%firstArg%"=="-workHard" set workHardArg=-Dfindbugs.workHard=true
+if "%firstArg%"=="-workHard" goto shift1
+
+if "%firstArg%"=="-javahome" set javahome=%secondArg%\bin\
+if "%firstArg%"=="-javahome" goto shift2
+
+if "%firstArg%"=="-property" set javaProps=-D%secondArg% %javaProps%
+if "%firstArg%"=="-property" goto shift2
+
+if "%firstArg%"=="" goto launch
+
+set args=%args% "%firstArg%"
+goto shift1
+
+:: ----------------------------------------------------------------------
+:: Launch FindBugs
+:: ----------------------------------------------------------------------
+:launch
+:: Make sure FINDBUGS_HOME is set.
+:: If it isn't, try using the default value based on the
+:: directory path of the invoked script.
+:: Note that this will fail miserably if the value of FINDBUGS_HOME
+:: has quote characters in it.
+if not "%FINDBUGS_HOME%"=="" goto checkHomeValid
+set FINDBUGS_HOME=%default_findbugs_home%
+
+:checkHomeValid
+if not exist "%FINDBUGS_HOME%\lib\%appjar%" goto homeNotSet
+
+:found_home
+:: Launch FindBugs!
+if "%fb_mainclass%"=="" goto runJar
+"%javahome%%launcher%" %debugArg% %conserveSpaceArg% %workHardArg% %javaProps% "-Dfindbugs.home=%FINDBUGS_HOME%" -Xmx%maxheap%m %jvmargs% "-Dfindbugs.launchUI=%launchUI%" -cp "%FINDBUGS_HOME%\lib\%appjar%" %fb_mainclass% %args%
+goto end
+:runjar
+%start% "%javahome%%launcher%" %debugArg% %conserveSpaceArg% %workHardArg% %javaProps% "-Dfindbugs.home=%FINDBUGS_HOME%" -Xmx%maxheap%m %jvmargs% "-Dfindbugs.launchUI=%launchUI%" -jar "%FINDBUGS_HOME%\lib\%appjar%" %args%
+goto end
+
+:: ----------------------------------------------------------------------
+:: Report that FINDBUGS_HOME is not set (and was not specified)
+:: ----------------------------------------------------------------------
+:homeNotSet
+echo Could not find FindBugs home directory. There may be a problem
+echo with the FindBugs installation. Try setting FINDBUGS_HOME, or
+echo re-installing.
+goto end
+
+:end
diff --git a/tools/findbugs/bin/findbugs.ico b/tools/findbugs/bin/findbugs.ico
new file mode 100755
index 0000000..834ff37
--- /dev/null
+++ b/tools/findbugs/bin/findbugs.ico
Binary files differ
diff --git a/tools/findbugs/bin/findbugs2 b/tools/findbugs/bin/findbugs2
new file mode 100755
index 0000000..1367e3d
--- /dev/null
+++ b/tools/findbugs/bin/findbugs2
@@ -0,0 +1,177 @@
+#! /bin/sh
+
+#
+# Simplified findbugs startup script.
+# This is an experiment.
+#
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+# Default UI is GUI2
+fb_launchui="2"
+
+#
+# Stuff we're going to pass to the JVM as JVM arguments.
+#
+jvm_debug=""
+jvm_maxheap="-Xmx768m"
+jvm_ea=""
+jvm_conservespace=""
+jvm_user_props=""
+
+#
+# Process command line args until we hit one we don't recognize.
+#
+finishedArgs=false
+while [ $# -gt 0 ] && [ "$finishedArgs" = "false" ]; do
+
+ arg=$1
+
+ case $arg in
+ -textui)
+ shift
+ fb_launchui="0"
+ ;;
+
+ -gui)
+ shift
+ fb_launchui="2"
+ ;;
+
+ -gui1)
+ shift
+ fb_launchui="1"
+ ;;
+
+ -maxHeap)
+ shift
+ jvm_maxheap="-Xmx$1m"
+ shift
+ ;;
+
+ -ea)
+ shift
+ jvm_ea="-ea"
+ ;;
+
+ -javahome)
+ shift
+ fb_javacmd="$1/bin/java"
+ shift
+ ;;
+
+ -debug)
+ shift
+ jvm_debug="-Dfindbugs.debug=true"
+ ;;
+
+ -conserveSpace)
+ shift
+ jvm_conservespace="-Dfindbugs.conserveSpace=true"
+ ;;
+
+ -property)
+ shift
+ jvm_user_props="-D$1 $jvm_user_props"
+ shift
+ ;;
+
+ -D*=*)
+ jvm_user_props="$1 $user_props"
+ shift
+ ;;
+
+ -version)
+ shift
+ fb_launchui="version"
+ ;;
+
+ -help)
+ shift
+ fb_launchui="help"
+ ;;
+
+ # All arguments starting from the first unrecognized arguments
+ # are passed on to the Java app.
+ *)
+ finishedArgs=true
+ ;;
+ esac
+
+done
+
+# Extra JVM args for MacOSX.
+if [ $fb_osname = "Darwin" ]; then
+ fb_jvmargs="$fb_jvmargs \
+ -Xdock:name=FindBugs -Xdock:icon=${findbugs_home}/lib/buggy.icns \
+ -Dapple.laf.useScreenMenuBar=true"
+fi
+
+#
+# Launch JVM
+#
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home" \
+ $jvm_debug $jvm_maxheap $jvm_ea $jvm_conservespace $jvm_user_props \
+ -Dfindbugs.launchUI=$fb_launchui \
+ -jar $findbugs_home/lib/findbugs.jar \
+ ${@:+"$@"}
diff --git a/tools/findbugs/bin/listBugDatabaseInfo b/tools/findbugs/bin/listBugDatabaseInfo
new file mode 100755
index 0000000..891f455
--- /dev/null
+++ b/tools/findbugs/bin/listBugDatabaseInfo
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.ListBugDatabaseInfo
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/mineBugHistory b/tools/findbugs/bin/mineBugHistory
new file mode 100755
index 0000000..520aa83
--- /dev/null
+++ b/tools/findbugs/bin/mineBugHistory
@@ -0,0 +1,73 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.MineBugHistory
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
diff --git a/tools/findbugs/bin/printAppVersion b/tools/findbugs/bin/printAppVersion
new file mode 100755
index 0000000..7994b8c
--- /dev/null
+++ b/tools/findbugs/bin/printAppVersion
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.PrintAppVersion
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/printClass b/tools/findbugs/bin/printClass
new file mode 100755
index 0000000..0b76853
--- /dev/null
+++ b/tools/findbugs/bin/printClass
@@ -0,0 +1,73 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.visitclass.PrintClass
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
diff --git a/tools/findbugs/bin/rejarForAnalysis b/tools/findbugs/bin/rejarForAnalysis
new file mode 100755
index 0000000..20877ee
--- /dev/null
+++ b/tools/findbugs/bin/rejarForAnalysis
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.RejarClassesForAnalysis
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/setBugDatabaseInfo b/tools/findbugs/bin/setBugDatabaseInfo
new file mode 100755
index 0000000..b1e8ec7
--- /dev/null
+++ b/tools/findbugs/bin/setBugDatabaseInfo
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.SetBugDatabaseInfo
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/unionBugs b/tools/findbugs/bin/unionBugs
new file mode 100755
index 0000000..01d2126
--- /dev/null
+++ b/tools/findbugs/bin/unionBugs
@@ -0,0 +1,80 @@
+#! /bin/sh
+
+# Deprecated
+
+# Create the union of two results files, preserving
+# annotations in both files in the result.
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.workflow.UnionResults
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3
diff --git a/tools/findbugs/bin/xpathFind b/tools/findbugs/bin/xpathFind
new file mode 100755
index 0000000..c0bd5e9
--- /dev/null
+++ b/tools/findbugs/bin/xpathFind
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+program="$0"
+
+# Follow symlinks until we get to the actual file.
+while [ -h "$program" ]; do
+ link=`ls -ld "$program"`
+ link=`expr "$link" : '.*-> \(.*\)'`
+ if [ "`expr "$link" : '/.*'`" = 0 ]; then
+ # Relative
+ dir=`dirname "$program"`
+ program="$dir/$link"
+ else
+ # Absolute
+ program="$link"
+ fi
+done
+
+# Assume findbugs home directory is the parent
+# of the directory containing the script (which should
+# normally be "$findbugs_home/bin").
+dir=`dirname "$program"`
+findbugs_home="$dir/.."
+
+# Handle FHS-compliant installations (e.g., Fink)
+if [ -d "$findbugs_home/share/findbugs" ]; then
+ findbugs_home="$findbugs_home/share/findbugs"
+fi
+
+# Make absolute
+findbugs_home=`cd "$findbugs_home" && pwd`
+
+fb_pathsep=':'
+
+# Handle cygwin, courtesy of Peter D. Stout
+fb_osname=`uname`
+if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ findbugs_home=`cygpath --mixed "$findbugs_home"`
+ fb_pathsep=';'
+fi
+# Handle MKS, courtesy of Kelly O'Hair
+if [ "${fb_osname}" = "Windows_NT" ]; then
+ fb_pathsep=';'
+fi
+
+if [ ! -d "$findbugs_home" ]; then
+ echo "The path $findbugs_home,"
+ echo "which is where I think FindBugs is located,"
+ echo "does not seem to be a directory."
+ exit 1
+fi
+
+# Choose default java binary
+fb_javacmd=java
+if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+ if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
+ fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
+ else
+ fb_javacmd="$JAVA_HOME/bin/java"
+ fi
+fi
+
+fb_mainclass=edu.umd.cs.findbugs.xml.XPathFind
+
+fb_javacmd=${fb_javacmd:-"java"}
+fb_maxheap=${fb_maxheap:-"-Xmx768m"}
+fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
+set -f
+#echo command: \
+exec "$fb_javacmd" \
+ -classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
+ -Dfindbugs.home="$findbugs_home"\
+ $fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
+
+# vim:ts=3