From 35a6874931105a611689aefaf66363fbf61dd1cf Mon Sep 17 00:00:00 2001
From: rishwanth <rishwanth@basistech.com>
Date: Wed, 31 Jan 2018 11:14:05 -0500
Subject: [PATCH] classpath and offline mode added

---
 bindings/java/README.txt        |   5 +
 bindings/java/build-unix.xml    | 112 +++++++++---------
 bindings/java/build-windows.xml |  38 +++----
 bindings/java/build.xml         | 195 +++++++++++++++++---------------
 4 files changed, 181 insertions(+), 169 deletions(-)

diff --git a/bindings/java/README.txt b/bindings/java/README.txt
index b347f2b58..2e1985651 100644
--- a/bindings/java/README.txt
+++ b/bindings/java/README.txt
@@ -13,6 +13,11 @@ To use the Java bindings, you must have the Sleuth Kit datamodel
 JAR file compiled and have compiled the associated dynamic library
 from the C/C++ code.
 
+The following jar files must be on the classpath.  Version details can be found in ivy.xml. 
+- sqlite-jdbc
+- postgresql-jdbc
+- c3p0
+
 Requirements:
 * Java JDK
 * Ant
diff --git a/bindings/java/build-unix.xml b/bindings/java/build-unix.xml
index d7e80acd9..84d2c84ad 100644
--- a/bindings/java/build-unix.xml
+++ b/bindings/java/build-unix.xml
@@ -1,26 +1,22 @@
 <?xml version="1.0" encoding="windows-1252"?>
 <project name="TSKTestTargets">
 	<property name="dlls" value="../../win32/x64/Release_PostgreSQL"/>
-    <property environment="env"/>
+	<property environment="env"/>
 
-	<target name="test" 
-			description="Performs regression tests."
-			depends="compile-test, copyTSKLibs">
+	<target name="test" description="Performs regression tests." depends="compile-test, copyTSKLibs">
 		<junit fork="on" haltonfailure="yes" dir=".">
 			<env key="path" value="${env.Path}:${dlls}"/>
 			<sysproperty key="rslt" value="${test-results}"/>
 			<sysproperty key="gold" value="${test-standards}"/>
 			<sysproperty key="inpt" value="${test-input}"/>
-			<classpath refid="libraries" />
-			<formatter type="plain" usefile="false" />
-			<test name="org.sleuthkit.datamodel.DataModelTestSuite" />
+			<classpath refid="libraries"/>
+			<formatter type="plain" usefile="false"/>
+			<test name="org.sleuthkit.datamodel.DataModelTestSuite"/>
 		</junit>
 	</target>
 
-	<target name="test-rebuild"
-			description="Rebuilds regression tests."
-			depends="compile-test, copyTSKLibs">
-		<java classname="org.sleuthkit.datamodel.DataModelTestSuite" classpathref="libraries"	fork="true" failonerror="true">
+	<target name="test-rebuild" description="Rebuilds regression tests." depends="compile-test, copyTSKLibs">
+		<java classname="org.sleuthkit.datamodel.DataModelTestSuite" classpathref="libraries" fork="true" failonerror="true">
 			<sysproperty key="gold" value="${test-standards}"/>
 			<sysproperty key="inpt" value="${test-input}"/>
 			<sysproperty key="types" value="${test-types}"/>
@@ -30,57 +26,57 @@
 	<target name="check-native-build" depends="check-native-build-mac,check-native-build-unix"/>
 
 	<target name="check-native-build-mac" depends="testTSKLibs" if="tsk_dylib.present">
-		<uptodate property="native-up-to-date" srcfile="./jni/.libs/libtsk_jni.dylib"
-		targetfile="${amd64}/mac/libtsk_jni.jnilib" />
+		<uptodate property="native-up-to-date" srcfile="./jni/.libs/libtsk_jni.dylib" targetfile="${amd64}/mac/libtsk_jni.jnilib"/>
 	</target>
 
 	<target name="check-native-build-unix" depends="testTSKLibs" if="tsk_so.present">
-		<uptodate property="native-up-to-date" srcfile="./jni/.libs/libtsk_jni.so"
-		targetfile="${amd64}/linux/libtsk_jni.so"/>
+		<uptodate property="native-up-to-date" srcfile="./jni/.libs/libtsk_jni.so" targetfile="${amd64}/linux/libtsk_jni.so"/>
 	</target>
 
-    <target name="testTSKLibs">
-        <property environment="env"/>
-        <available file="./jni/.libs/libtsk_jni.dylib" property="tsk_dylib.present"/>
-        <available file="./jni/.libs/libtsk_jni.so" property="tsk_so.present"/>
-	<fail message="JNI native library not built.">
-		<condition>
-			<not><or>
-				<isset property="tsk_dylib.present"/>
-				<isset property="tsk_so.present"/>
-			</or></not>
-		</condition>
-	</fail>
-   	<!-- Default location to find zlib and libewf. Overwritten by properties in makefile -->	
-	<property name="lib.z.path" value="/usr/lib"/>
-	<property name="lib.ewf.path" value="/usr/local/lib"/>
-    </target>
+	<target name="testTSKLibs">
+		<property environment="env"/>
+		<available file="./jni/.libs/libtsk_jni.dylib" property="tsk_dylib.present"/>
+		<available file="./jni/.libs/libtsk_jni.so" property="tsk_so.present"/>
+		<fail message="JNI native library not built.">
+			<condition>
+				<not>
+					<or>
+						<isset property="tsk_dylib.present"/>
+						<isset property="tsk_so.present"/>
+					</or>
+				</not>
+			</condition>
+		</fail>
+		<!-- Default location to find zlib and libewf. Overwritten by properties in makefile -->
+		<property name="lib.z.path" value="/usr/lib"/>
+		<property name="lib.ewf.path" value="/usr/local/lib"/>
+	</target>
+
+	<!-- OS X -->
+	<target name="copyTskLibs_dylib" depends="testTSKLibs" if="tsk_dylib.present">
+		<property environment="env"/>
+		<copy file="./jni/.libs/libtsk_jni.dylib" tofile="./libtsk_jni.jnilib" overwrite="true"/>
+	</target>
 
-    <!-- OS X -->
-    <target name="copyTskLibs_dylib" depends="testTSKLibs" if="tsk_dylib.present">
-        <property environment="env"/>
-        <copy file="./jni/.libs/libtsk_jni.dylib" tofile="./libtsk_jni.jnilib" overwrite="true"/>
-    </target>
-	
 	<target name="copyMacLibs" depends="testTSKLibs" if="tsk_dylib.present">
-        <property environment="env"/>
-		<property name="jni.dylib" location="${basedir}/jni/.libs/libtsk_jni.dylib" />
-		<property name="jni.jnilib" value="libtsk_jni.jnilib" />
+		<property environment="env"/>
+		<property name="jni.dylib" location="${basedir}/jni/.libs/libtsk_jni.dylib"/>
+		<property name="jni.jnilib" value="libtsk_jni.jnilib"/>
 		<!-- x86_64 -->
-        <copy file="${jni.dylib}" tofile="${x86_64}/mac/${jni.jnilib}" overwrite="true"/>
+		<copy file="${jni.dylib}" tofile="${x86_64}/mac/${jni.jnilib}" overwrite="true"/>
 		<!-- amd64 -->
 		<copy file="${jni.dylib}" tofile="${amd64}/mac/${jni.jnilib}" overwrite="true"/>
-    </target>
+	</target>
+
+	<!-- Non-OS X -->
+	<target name="copyTskLibs_so" depends="testTSKLibs" if="tsk_so.present">
+		<property environment="env"/>
+		<copy file="./jni/.libs/libtsk_jni.so" tofile="./libtsk_jni.so" overwrite="true"/>
+	</target>
 
-    <!-- Non-OS X -->
-    <target name="copyTskLibs_so" depends="testTSKLibs" if="tsk_so.present">
-        <property environment="env"/>
-        <copy file="./jni/.libs/libtsk_jni.so" tofile="./libtsk_jni.so" overwrite="true"/>
-    </target>
-	
 	<target name="copyLinuxLibs" depends="testTSKLibs" if="tsk_so.present">
 		<property environment="env"/>
-		<property name="jni.so" location="${basedir}/jni/.libs/libtsk_jni.so" />
+		<property name="jni.so" location="${basedir}/jni/.libs/libtsk_jni.so"/>
 		<property name="zlib.so" location="${lib.z.path}/libz.so"/>
 		<property name="libewf.so" location="${lib.ewf.path}/libewf.so"/>
 		<!-- x86_64 -->
@@ -97,13 +93,13 @@
 		<copy file="${jni.so}" tofile="${i686}/linux/libtsk_jni.so" overwrite="true"/>
 	</target>
 
-	<target name="copyLibs-SQLite" depends="copyLinuxLibs,copyMacLibs" />
-	<target name="copyLibs-PostgreSQL" depends="copyLinuxLibs,copyMacLibs" />
-	<target name="copyLibs-SQLiteDebug" depends="copyLinuxLibs,copyMacLibs" />
-	<target name="copyLibs-PostgreSQLDebug" depends="copyLinuxLibs,copyMacLibs" />
-	
-    <target name="copyTSKLibs" depends="copyTskLibs_so,copyTskLibs_dylib">
-        <!-- depends targets take care of the actual copying since the file differs on OS X and Linux -->
-        <!-- This assumes that TSK, libewf, and zlib have been installed on the system and those libraries will be with normal loading approaches -->
-    </target>
+	<target name="copyLibs-SQLite" depends="copyLinuxLibs,copyMacLibs"/>
+	<target name="copyLibs-PostgreSQL" depends="copyLinuxLibs,copyMacLibs"/>
+	<target name="copyLibs-SQLiteDebug" depends="copyLinuxLibs,copyMacLibs"/>
+	<target name="copyLibs-PostgreSQLDebug" depends="copyLinuxLibs,copyMacLibs"/>
+
+	<target name="copyTSKLibs" depends="copyTskLibs_so,copyTskLibs_dylib">
+		<!-- depends targets take care of the actual copying since the file differs on OS X and Linux -->
+		<!-- This assumes that TSK, libewf, and zlib have been installed on the system and those libraries will be with normal loading approaches -->
+	</target>
 </project>
diff --git a/bindings/java/build-windows.xml b/bindings/java/build-windows.xml
index bb3b2c72e..e65df5537 100644
--- a/bindings/java/build-windows.xml
+++ b/bindings/java/build-windows.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="windows-1252"?>
 <project name="TSKTestTargets">
-		
+
     <property name="dlls" value="../../win32/x64/Release_PostgreSQL"/>
     <property environment="env"/>
-	
-	<target name="test" 
+
+	<target name="test"
 			description="Runs the regression tests."
 			depends="compile-test" >
 		<junit fork="on" haltonfailure="yes" dir=".">
@@ -22,7 +22,7 @@
 			description="Rebuilds gold standards for tests."
 			depends="compile-test" >
 		<java classname="org.sleuthkit.datamodel.DataModelTestSuite" classpathref="libraries"	fork="true" failonerror="true">
-			<sysproperty key="java.library.path" value="${dlls}"/>	
+			<sysproperty key="java.library.path" value="${dlls}"/>
 			<sysproperty key="gold" value="${test-standards}"/>
 			<sysproperty key="inpt" value="${test-input}"/>
 			<sysproperty key="types" value="${test-types}"/>
@@ -45,7 +45,7 @@
 		<property name="tsk.config" value="Release"/>
 		<antcall target="copyWinTskLibsToBuildSQLite" />
 	</target>
-	
+
 	<target name="copyLibs-SQLiteDebug" description="Copy native libs to the correct folder">
 		<property name="tsk.config" value="Debug"/>
 		<antcall target="copyWinTskLibsToBuildSQLite" />
@@ -55,55 +55,55 @@
 		<property name="tsk.config" value="Release_PostgreSQL"/>
 		<antcall target="copyWinTskLibsToBuild-PostgreSQL" />
 	</target>
-	
+
 	<target name="copyLibs-PostgreSQLDebug" description="Copy native libs to the correct folder, PostgreSQL build">
 		<property name="tsk.config" value="Debug_PostgreSQL"/>
 		<antcall target="copyWinTskLibsToBuild-PostgreSQL" />
 	</target>
 
 	<target name="copyWinTskLibsToBuildSQLite" depends="copyWinTskLibs64ToBuildSQLite, copyWinTskLibs32ToBuild-SQLite" description="Copy Windows DLLs to the correct location, SQLite build." />
-	
+
 	<target name="checkTskLibDirsSQLite">
 		<available property="win64.TskLib.exists" type="file" file="${basedir}/../../win32/x64/${tsk.config}/libtsk_jni.dll" />
 		<available property="win32.TskLib.exists" type="file" file="${basedir}/../../win32/${tsk.config}/libtsk_jni.dll" />
 	</target>
-	
+
 	<target name="copyWinTskLibs64ToBuildSQLite" depends="checkTskLibDirsSQLite" if="win64.TskLib.exists">
 		<property name="tsk.jni.64" location="${basedir}/../../win32/x64/${tsk.config}/libtsk_jni.dll" />
-		
+
 		<copy file="${tsk.jni.64}" todir="${amd64}/win" overwrite="true"/>
 		<copy file="${tsk.jni.64}" todir="${x86_64}/win" overwrite="true"/>
 	</target>
-	
+
 	<target name="copyWinTskLibs32ToBuild-SQLite" depends="checkTskLibDirs" if="win32.TskLib.exists">
 		<property name="tsk.jni.32" location="${basedir}/../../win32/${tsk.config}/libtsk_jni.dll" />
-		
+
 		<copy file="${tsk.jni.32}" todir="${i386}/win" overwrite="true"/>
 		<copy file="${tsk.jni.32}" todir="${x86}/win" overwrite="true"/>
-		<copy file="${tsk.jni.32}" todir="${i586}/win" overwrite="true"/>	
+		<copy file="${tsk.jni.32}" todir="${i586}/win" overwrite="true"/>
 		<copy file="${tsk.jni.32}" todir="${i686}/win" overwrite="true"/>
 	</target>
-		
+
 	<target name="copyWinTskLibsToBuild-PostgreSQL" depends="copyWinTskLibs64ToBuild-PostgreSQL,copyWinTskLibs32ToBuild-PostgreSQL" description="Copy Windows DLLs to the correct location, PostgreSQL build." />
-	
+
 	<target name="checkTskLibDirs">
 		<available property="win64.TskLib.exists" type="file" file="${basedir}/../../win32/x64/${tsk.config}/libtsk_jni.dll" />
 		<available property="win32.TskLib.exists" type="file" file="${basedir}/../../win32/${tsk.config}/libtsk_jni.dll" />
 	</target>
-	
+
 	<target name="copyWinTskLibs64ToBuild-PostgreSQL" depends="checkTskLibDirs" if="win64.TskLib.exists">
 		<property name="tsk.jni.64" location="${basedir}/../../win32/x64/${tsk.config}/libtsk_jni.dll" />
-		
+
 		<copy file="${tsk.jni.64}" todir="${amd64}/win" overwrite="true"/>
 		<copy file="${tsk.jni.64}" todir="${x86_64}/win" overwrite="true"/>
 	</target>
-	
+
 	<target name="copyWinTskLibs32ToBuild-PostgreSQL" depends="checkTskLibDirs" if="win32.TskLib.exists">
 		<property name="tsk.jni.32" location="${basedir}/../../win32/${tsk.config}/libtsk_jni.dll" />
-		
+
 		<copy file="${tsk.jni.32}" todir="${i386}/win" overwrite="true"/>
 		<copy file="${tsk.jni.32}" todir="${x86}/win" overwrite="true"/>
-		<copy file="${tsk.jni.32}" todir="${i586}/win" overwrite="true"/>	
+		<copy file="${tsk.jni.32}" todir="${i586}/win" overwrite="true"/>
 		<copy file="${tsk.jni.32}" todir="${i686}/win" overwrite="true"/>
 	</target>
 </project>
diff --git a/bindings/java/build.xml b/bindings/java/build.xml
index d1808c644..dcc66c2ee 100755
--- a/bindings/java/build.xml
+++ b/bindings/java/build.xml
@@ -1,14 +1,14 @@
 <project xmlns:ivy="antlib:org.apache.ivy.ant" name="DataModel" default="dist" basedir=".">
 	<description>
-		Sleuthkit Java DataModel 
+		Sleuthkit Java DataModel
 	</description>
-	<condition property="os.family" value="unix">  
-		<os family="unix"/>  
-	</condition>  
-	<condition property="os.family" value="windows">  
-		<os family="windows"/>  
-	</condition>  
-	<import file="build-${os.family}.xml"/> 
+	<condition property="os.family" value="unix">
+		<os family="unix"/>
+	</condition>
+	<condition property="os.family" value="windows">
+		<os family="windows"/>
+	</condition>
+	<import file="build-${os.family}.xml"/>
 
 	<!-- set global properties for this build -->
 	<property name="src" location="src/org/sleuthkit/datamodel"/>
@@ -16,27 +16,20 @@
 	<property name="sample" location="src/org/sleuthkit/datamodel/Examples"/>
 	<property name="build" location="build/"/>
 	<property name="build-datamodel" location="build/org/sleuthkit/datamodel"/>
-	<property name="dist"  location="dist"/>
+	<property name="dist" location="dist"/>
 	<property name="lib" location="lib"/>
 	<property name="test" location="test"/>
 	<property name="test-standards" location="test/output/gold"/>
 	<property name="test-results" location="test/output/results"/>
 	<property name="test-input" location="test/input"/>
 	<property name="test-types" location="test/org/sleuthkit/datamodel"/>
-	<property name="native-libs" location="build/NATIVELIBS" />
-	<property name="amd64" location="build/NATIVELIBS/amd64" />
-	<property name="x86" location="build/NATIVELIBS/x86" />
-	<property name="x86_64" location="build/NATIVELIBS/x86_64" />
-	<property name="i386" location="build/NATIVELIBS/i386" />
-	<property name="i586" location="build/NATIVELIBS/i586" />
+	<property name="native-libs" location="build/NATIVELIBS"/>
+	<property name="amd64" location="build/NATIVELIBS/amd64"/>
+	<property name="x86" location="build/NATIVELIBS/x86"/>
+	<property name="x86_64" location="build/NATIVELIBS/x86_64"/>
+	<property name="i386" location="build/NATIVELIBS/i386"/>
+	<property name="i586" location="build/NATIVELIBS/i586"/>
 	<property name="i686" location="build/NATIVELIBS/i686"/>
-  
-	<path id="libraries">
-		<fileset dir="${lib}">
-			<include name="*.jar"/>
-		</fileset>
-		<pathelement path="${build}"/>
-	</path>
 
 	<!-- Only added win folders for now -->
 	<target name="init">
@@ -46,72 +39,99 @@
 		<mkdir dir="${test-input}"/>
 		<mkdir dir="${test-standards}"/>
 		<mkdir dir="${test-results}"/>
-		<mkdir dir="${native-libs}" />
-		<mkdir dir="${amd64}" />
-		<mkdir dir="${amd64}/win" />
-		<mkdir dir="${amd64}/mac" />
-		<mkdir dir="${amd64}/linux" />
-		<mkdir dir="${x86}" />
-		<mkdir dir="${x86}/win" />
-		<mkdir dir="${x86}/linux" />
-		<mkdir dir="${x86_64}" />
-		<mkdir dir="${x86_64}/win" />
-		<mkdir dir="${x86_64}/mac" />
+		<mkdir dir="${native-libs}"/>
+		<mkdir dir="${amd64}"/>
+		<mkdir dir="${amd64}/win"/>
+		<mkdir dir="${amd64}/mac"/>
+		<mkdir dir="${amd64}/linux"/>
+		<mkdir dir="${x86}"/>
+		<mkdir dir="${x86}/win"/>
+		<mkdir dir="${x86}/linux"/>
+		<mkdir dir="${x86_64}"/>
+		<mkdir dir="${x86_64}/win"/>
+		<mkdir dir="${x86_64}/mac"/>
 		<mkdir dir="${x86_64}/linux"/>
-		<mkdir dir="${i386}" />
-		<mkdir dir="${i386}/win" />
+		<mkdir dir="${i386}"/>
+		<mkdir dir="${i386}/win"/>
 		<mkdir dir="${i386}/linux"/>
-		<mkdir dir="${i586}" />
-		<mkdir dir="${i586}/win" />
-		<mkdir dir="${i586}/linux" />
+		<mkdir dir="${i586}"/>
+		<mkdir dir="${i586}/win"/>
+		<mkdir dir="${i586}/linux"/>
 		<mkdir dir="${i686}"/>
 		<mkdir dir="${i686}/win"/>
 		<mkdir dir="${i686}/linux"/>
 	</target>
-  
-	<property name="ivy.install.version" value="2.3.0-rc2" />
+
+	<!-- set classpath for dependencies-->
+	<condition property="online">
+		<http url="https://www.google.com/"/>
+	</condition>
+
+	<target name="set-library-path" description="sets the path of the libraries" depends="set-library-path-online,set-library-path-offline"></target>
+
+	<target name="set-library-path-online" description="set this library path when the user is online" if="online">
+		<path id="libraries">
+			<fileset dir="${lib}">
+				<include name="*.jar"/>
+			</fileset>
+			<pathelement path="${build}"/>
+		</path>
+	</target>
+
+	<target name="set-library-path-offline" description="set the library path when the user is offline" unless="online">
+		<path id="libraries">
+			<if>
+				<equals arg1="${os.family}" arg2="unix"/>
+				<then>
+					<pathelement path="${default-jar-location}"/>
+				</then>
+			</if>
+			<fileset dir="${lib}">
+				<include name="*.jar"/>
+			</fileset>
+			<pathelement path="${build}"/>
+		</path>
+		<echo message="${online}"/>
+	</target>
+
+	<property name="ivy.install.version" value="2.3.0-rc2"/>
 	<condition property="ivy.home" value="${env.IVY_HOME}">
-		<isset property="env.IVY_HOME" />
+		<isset property="env.IVY_HOME"/>
 	</condition>
-	<property name="ivy.home" value="${user.home}/.ant" />
-	<property name="ivy.jar.dir" value="${ivy.home}/lib" />
-	<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
+	<property name="ivy.home" value="${user.home}/.ant"/>
+	<property name="ivy.jar.dir" value="${ivy.home}/lib"/>
+	<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar"/>
 
-	<target name="download-ivy" unless="offline">
+	<target name="download-ivy" if="online">
 		<available file="${ivy.jar.file}" property="ivy.available"/>
-		<antcall target="-download-ivy" />
+		<antcall target="-download-ivy"/>
 	</target>
 
 	<target name="-download-ivy" unless="ivy.available">
 		<mkdir dir="${ivy.jar.dir}"/>
-		<get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
-			 dest="${ivy.jar.file}" usetimestamp="true"/>
+		<get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" dest="${ivy.jar.file}" usetimestamp="true"/>
 	</target>
 
-	<target name="init-ivy" depends="download-ivy" unless="ivy.lib.path">
+	<target name="init-ivy" depends="download-ivy" unless="ivy.lib.path" if="online">
 		<path id="ivy.lib.path">
 			<fileset dir="${ivy.jar.dir}" includes="*.jar"/>
 		</path>
-		<taskdef resource="org/apache/ivy/ant/antlib.xml"
-				 uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
+		<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
 	</target>
 
-	<target name="retrieve-deps" description="retrieve dependencies using ivy" depends="init-ivy" unless="offline">
-		<ivy:settings file="ivysettings.xml" />
+	<target name="retrieve-deps" description="retrieve dependencies using ivy" depends="init-ivy" if="online">
+		<ivy:settings file="ivysettings.xml"/>
 		<ivy:resolve/>
-		<ivy:retrieve sync="true"
-					  pattern="lib/[artifact]-[revision](-[classifier]).[ext]" />
+		<ivy:retrieve sync="true" pattern="lib/[artifact]-[revision](-[classifier]).[ext]"/>
 	</target>
-  
-	<target name="compile-test" depends="compile"
-			description="compile the tests" >
+
+	<target name="compile-test" depends="compile" description="compile the tests">
 		<javac debug="on" srcdir="${test}" destdir="${build}" includeantruntime="false">
 			<classpath refid="libraries"/>
 		</javac>
 	</target>
-  
-	<target name="compile" depends="init, retrieve-deps"
-			description="compile the source" >
+
+	<target name="compile" depends="init, retrieve-deps" description="compile the source">
 		<!-- Compile the java code from ${src} into ${build} -->
 		<javac debug="on" srcdir="${src}" destdir="${build}" classpathref="libraries" includeantruntime="false">
 			<compilerarg value="-Xlint"/>
@@ -127,20 +147,18 @@
 		</javac>
 	</target>
 
-	<target name="dist-SQLite" depends="check-build, init-ivy, compile, copyLibs-SQLite"
-			unless="up-to-date" description="generate the distribution" >
+	<target name="dist-SQLite" depends="check-build, init-ivy,set-library-path, compile, copyLibs-SQLite" unless="up-to-date" description="generate the distribution">
 		<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
 		<jar jarfile="${dist}/sleuthkit-${VERSION}.jar" basedir="${build}"/>
 	</target>
 
-	<target name="dist-PostgreSQL" depends="check-build, init-ivy, compile, copyLibs-PostgreSQL" 
-			unless="up-to-date" description="generate the PostgreSQL distribution" >
+	<target name="dist-PostgreSQL" depends="check-build, init-ivy,set-library-path, compile, copyLibs-PostgreSQL" unless="up-to-date" description="generate the PostgreSQL distribution">
 		<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
 		<jar jarfile="${dist}/sleuthkit-postgresql-${VERSION}.jar" basedir="${build}"/>
 	</target>
 
 	<target name="check-build" depends="check-native-build">
-		<uptodate property="java-up-to-date" targetfile="${dist}/sleuthkit-${VERSION}.jar" >
+		<uptodate property="java-up-to-date" targetfile="${dist}/sleuthkit-${VERSION}.jar">
 			<srcfiles dir="${src}" includes="**/*.java"/>
 		</uptodate>
 		<condition property="up-to-date">
@@ -151,69 +169,62 @@
 		</condition>
 	</target>
 
-	 <target name="dist" depends="check-build" unless="up-to-date">
+	<target name="dist" depends="check-build" unless="up-to-date">
 		<antcall target="dist-SQLite"/>
-	 </target>
-	
+	</target>
+
 	<target name="Debug" depends="check-build" unless="up-to-date">
 		<antcall target="Debug-SQLite"/>
-	 </target>
-	
-	<target name="Debug-SQLite" depends="check-build, init-ivy, compile, copyLibs-SQLiteDebug" 
-			unless="up-to-date" description="generate the debug distribution" >
+	</target>
+
+	<target name="Debug-SQLite" depends="check-build, init-ivy, compile, copyLibs-SQLiteDebug" unless="up-to-date" description="generate the debug distribution">
 		<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
 		<jar jarfile="${dist}/sleuthkit-${VERSION}.jar" basedir="${build}"/>
 	</target>
-  
-	<target name="Debug-PostgreSQL" depends="init-ivy, compile, copyLibs-PostgreSQLDebug" 
-			description="generate the PostgreSQL debug distribution" >
+
+	<target name="Debug-PostgreSQL" depends="init-ivy,  compile, copyLibs-PostgreSQLDebug" description="generate the PostgreSQL debug distribution">
 		<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
 		<jar jarfile="${dist}/sleuthkit-postgresql-${VERSION}.jar" basedir="${build}"/>
 	</target>
 
 	<target name="jni" depends="compile" description="make the jni.h file">
-		<javah classpath = "${build}" outputFile="jni/dataModel_SleuthkitJNI.h" force="yes">
+		<javah classpath="${build}" outputFile="jni/dataModel_SleuthkitJNI.h" force="yes">
 			<class name="org.sleuthkit.datamodel.SleuthkitJNI"/>
 		</javah>
 	</target>
-  
-	<target name="clean"
-			description="clean up" >
+
+	<target name="clean" description="clean up">
 		<delete dir="${build}"/>
 		<delete dir="${dist}"/>
 		<delete dir="${lib}"/>
 	</target>
 
-	<target name ="javadoc" description="Make the API docs">
+	<target name="javadoc" description="Make the API docs">
 		<mkdir dir="javadoc"/>
-		<javadoc sourcepath="src" destdir="javadoc" overview="src/overview.html" />
+		<javadoc sourcepath="src" destdir="javadoc" overview="src/overview.html"/>
 	</target>
 
 	<target name="test-download" description="download test images.">
-		<mkdir dir="${test-input}" />
+		<mkdir dir="${test-input}"/>
 		<get src="http://digitalcorpora.org/corp/nps/drives/nps-2009-canon2/nps-2009-canon2-gen6.E01" dest="${test-input}"/>
 		<get src="http://digitalcorpora.org/corp/nps/drives/nps-2009-ntfs1/ntfs1-gen2.E01" dest="${test-input}"/>
-		<!--<get src="http://www.cfreds.nist.gov/dfr-images/dfr-16-ext.dd.bz2" dest="${test-input}"/>
-		<bunzip2 src="${test-input}/dfr-16-ext.dd.bz2" /> -->
+		<!--<get src="http://www.cfreds.nist.gov/dfr-images/dfr-16-ext.dd.bz2" dest="${test-input}"/> <bunzip2 src="${test-input}/dfr-16-ext.dd.bz2" /> -->
 	</target>
 
 	<!-- NOTE: test and test-rebuild targets are in the OS-specific files -->
 
-	<target name="run-sample" depends="compile"
-			description="run the sample">
-		<java classname="org.sleuthkit.datamodel.Examples.Sample"
-			  fork="true"
-			  failonerror="true">
+	<target name="run-sample" depends="compile" description="run the sample">
+		<java classname="org.sleuthkit.datamodel.Examples.Sample" fork="true" failonerror="true">
 			<env key="PATH" path="${env.TEMP}:${env.Path}:${env.TSK_HOME}/win32/x64/Release"/>
 			<arg value="${image}"/>
 			<classpath refid="libraries"/>
 		</java>
-		
+
 	</target>
 	<target name="doxygen" description="build doxygen docs, requires doxygen in PATH">
 		<exec executable="doxygen" dir="${basedir}/doxygen">
 			<arg value="Doxyfile"/>
 		</exec>
 	</target>
-	
+
 </project>
-- 
GitLab