Chapter 2. Getting started

Table of Contents

Requirements
Downloading EntityFS
Installing EntityFS
Running unit tests (optional)
Running performance tests (optional)

EntityFS requires Java 5 or a newer Java version to run.

Get EntityFS from http://www.entityfs.org.

There are two different distributions of EntityFS – the binary distribution and the source distribution. The binary distribution contains everything necessary for using EntityFS. The source distribution contains everything that the binary archive does as well as unit test classes, test data and the complete EntityFS source code in an Eclipse workspace.

Unzip the distribution into a directory.

EntityFS Jar files are in the lib sub directory of the distribution. The entityfs-full-1.2.jar file contains all EntityFS classes, except for the unit tests. The other Jar files contains different subsets of all EntityFS classes. Together they contain all of the classes in the "full" Jar. See the README.txt file in the lib directory for a listing of what the different Jar files contain.

The unit test suite runs all EntityFS unit tests for many capability permutations for two different file systems. The total number of permutations for this release is 14534, so all unit tests take a long time to run – approximately four to five hours on a dual core CPU.

To run unit tests, you have to have the build tool Schmant installed, the EntityFS source distribution and some six gigabytes free space on the hard disk partition where the platform's temporary directory (java.io.tmpdir) is.

Open a command window (terminal, cmd) and change directory to the distribution's build directory. Set the JAVA_HOME environment variable to point to a Java JDK 6 installation. (Just a JRE won't do.)

On Unix, run:

$ # For instance
$ export JAVA_HOME=/opt/java6
$ schmant.sh -cp lib/entityfs_build.jar run_unit_tests.js

On Windows, run:

> rem For instance. Note the absence of quotes in JAVA_HOME
> set JAVA_HOME=c:\Program Files\Java\jdk1.6.0_24
> schmant -cp lib\entityfs_build.jar run_unit_tests.js

To use one or several other JVM:s than the system's default for running unit tests, set the javaCmds property to a path separator (: on Unix, ; on Windows) separated list of all Java installations to use.

$ # For instance
$ export JAVA_HOME=/opt/java6
$ schmant.sh -cp lib/entityfs_build.jar \
  -p javaCmds=/opt/java6/bin/java:/opt/jrockit6/bin/java run_unit_tests.js

Or, on Windows:

> rem For instance. Note the absence of quotes
> set JAVA_HOME=c:\Program Files\Java\jdk1.6.0_24
> rem Note the quotes around javaHomes
> schmant -cp lib\entityfs_build.jar \
  -p "javaCmds=c:\Program\Java\jdk1.6.0_24\bin\javaw.exe;c:\Program\Java\jdk1.5.0_22\bin\javaw.exe" \
  run_unit_tests.js

Don't be scared by all "errors" about disappeared files or files that will not be overwritten. They are from the tests that test that those conditions are handled correctly.

On Windows, anti-virus software may interfere with the tests. Run the tests with the anti-virus software disabled.

Run the performance test suite by opening a command window and change directory to the EntityFS distribution root directory.

On Unix, run:

java -server -Xmx2048M -Xincgc \
  -cp lib/entityfs-full-1.2.jar:build/lib/entityfs_build.jar \
  org.entityfs.build.perf.PerformanceTestRunner [Zip file]

Or, on Windows:

java -server -Xmx2048M -Xincgc \
  -cp lib\entityfs-full-1.2.jar;build\lib\entityfs_build.jar \
  org.entityfs.build.perf.PerformanceTestRunner [Zip file]

The Zip file argument is the path to any sufficiently large Zip file. The distribution's performance tests are run on a Zip file with the Linux kernel 2.6.30.1 sources.