GrajaGrader for java programs     Documentation     Publications     Downloads     Contact

Graja is a JUnit-PMD-Checkstyle-based grader for java programs submitted by students in formative and summative assessment. This site provides publications, software, and information about Graja.

Installation

Installation files

Graja ships as a collection of four zip archives:

  • Graja-<Version>.zip: This contains an installer to install an executable Graja application
  • Graja-<Version>-dev.zip: This contains tools and sources useful when developing assignments
  • Graja-<Version>-doc.zip: This contains documentation
  • Graja-<Version>-offl.zip: This is a highly experimental offline version of Graja (not for production use)

When unpacking the first zip file, it contains the following files:

  • VERSION.txt: contains version information
  • INSTALL.txt: contains installation instructions
  • InstallGraja.jar: the installer program containing the whole program package
  • license/*: license documents for Graja and third party software

Installation steps

Installing an executable Graja application

First you need to unzip the Graja-<Version>.zip archive to any directory. The installation files are not needed after installation completed, so you may choose any temporary folder different from the final installation folder.

Read the file INSTALL.txt.

In order to install Graja, type java -jar /path/to/InstallGraja.jar

The installer will start and ask several questions. You must enter the following information:

  • graja.home: type the absolute path to the installation directory for Graja, e. g. /usr/local/graja
  • space.limited.student.workspace: type yes, if Graja should limit the disk space of the folder, where a student’s submission is executed. This is currently not supported on windows platforms. If and only if this is “yes”, Graja will install a few bash scripts into the installation folder that are used to limit disk space during grading.
  • bash.cmd (not on a Windows computer): type the absolute bath to the bash executable, e. g. /bin/bash
  • java.io.tmpdir: type the absolute path to the systems temporary directory. In this directory Graja will put lots of files during grading. Also submitted programs usually will receive permissions to read or write below that directory.
  • jdk.home: type the absolute path to the jdk, e. g. /usr/lib/jvm/jdk-11.0.13

After that the installer will copy the following files to the directory graja.home:

  • README.txt: a file with information how to start Graja
  • VERSION.txt: a file with version information
  • GrajaStarter.jar: the Graja frontend. This is the main entry point to Graja.
  • GrajaCore.jar: the Graja backend. You usually won’t call this jar directly.
  • Graja…*.jar: several jar libraries needed by both the Graja frontend and backend
  • libvts.jar: a library for task templates with variables, that can be instantiated
  • extjar/* : jar libraries that Graja will load at runtime
  • installation.settings: includes the settings used during installation
  • graja_starter.sh: a shell script not absolutely needed to start Graja. Some learning management systems might use this script to start Graja with a JSON file

When space.limited.student.workspace was answered “yes” (not on Windows platforms), also the following files are installed to the directory graja.home:

  • enforce_quota.sh: a shell script needed by Graja to enforce a maximum disc quota for a submission
  • release_quota.sh: a shell script needed by Graja to enforce a maximum disc quota for a submission
  • mountloop.c: a C program needed by Graja to enforce a maximum disc quota for a submission
  • umountloop.c: a C program needed by Graja to enforce a maximum disc quota for a submission
  • Makefile: a make file for compiling the C sources.

On a non Windows platform, now as superuser (root) you must change (cd) to the installation directory graja.home and type make. This will build two executables mountloop and umountloop in the current directory. When finished you may delete the C sources mountloop.c umountloop.c and the Makefile, but you may also leave them in place.

After installation completed, you may need to check access rights of the installed files in the installation directory (graja.home). The temporary folder where you unzipped the installation files now can be removed.

Installing additional files

On a production environment, no additional files need to be installed. On a development computer usually the following files should be unzipped and copied to the installation directory (graja.home):

  • Graja-<Version>-dev.zip: unzip this to <graja.home>/devasgmt
  • Graja-<Version>-doc.zip: unzip this to <graja.home>/doc

The experimental offline client Graja-<Version>-offl.zip is relocatable and can be unzipped into any directory.

System requirements ←    → Execute Graja