mohan-cao / revilo

Home of the Revilo project, the most tested and optimized task scheduler available on the market.
https://github.com/mohan-cao/revilo
4 stars 0 forks source link
task-scheduler
Our logo WIP
Master branch is currently Build status

Revilo Task Scheduler

The official page for the Revilo (ruh-VEE-low) Task Scheduler Project!

Introduction and Usage

Revilo Task Scheduler takes in a graph file (.dot or .gxl) and outputs a DOT file with an optimal schedule.

java -jar scheduler.jar [INPUT.DOT] [NUM-OF-PROCESSORS] [OPTIONAL ARGS]

The first two (2) arguments (input file and processor count) are required. The output file will be created in the same directory. Optional arguments are as followed:

By default, Revilo will be run sequentially with no visualization.

ParallelTask and incompatible JavaFX versions will output a few lines to console, but do not affect the functionality of Revilo.

On Canvas, the submitted file is called scheduler-1.jar as the basic milestone submission was called schedular.jar.

Quick References

Meeting minutes, plans, research, and other administrivia can be found in the Revilo Wiki.

Issue tracking is mainly done through the Issues tab.

Shared Google Drive folder for resources: Revilo Project Folder

For developers, please only merge branches if they pass the unit tests on the build server!

The Team

Name UPI Uni ID GitHub
Abby Shen ashe848 269481021 ashe848
Aimee Tagle atag549 8194348 abtagle
Mohan Cao mcao024 820512142 mohan-cao
Michael Kemp mkem114 6273632 mkem114
Terran Kroft tkro003 6869815 itemic

Quick Startup Guide

Clone the project anywhere

git clone git@github.com:mohan-cao/revilo.git

Using IntelliJ IDEA:

  1. Import project as Maven project
  2. Wait for IntelliJ to fetch the required resources
  3. Yay!

Using Eclipse (Start from Eclipse instead of importing clone!):

  1. Right click the left-hand side package explorer (where you have projects and stuff)
  2. Go to Import... > Git > Clone from repository
  3. If ssh not set up: clone with HTTPS https://github.com/mohan-cao/revilo.git
  4. Set up as new project using Project Wizard
  5. Name it "revilo"
  6. Right click project > Configure > Convert into Maven project
  7. Done!

Installation and Running Unit Tests

mvn clean - Cleans project (start from scratch)

mvn clean test - Run unit test (from scratch)

mvn test - Run unit tests

mvn build - Builds your project. Good enough for most cases

mvn package - Package classes into a jar. JAR is executable.

mvn install - Do all the above and install the package

Parallel Task for Java Usage

  1. IntelliJ Preferences/Editor/File and Code Templates -> Add a new template named PTJava Class with extension ptjava. Paste in
    #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
    #parse("File Header.java")
    public class ${NAME} {
    }
  2. IntelliJ Preferences/Editor/File Types -> Select "Java Source"
    • Add an association to *.ptjava (so that code autocompletion still works)
  3. When you run mvn build, mvn process-sources or any compile lifecycle, then .ptjava files are automatically preprocessed into equivalent .java files

Advanced - Here Be Dragons!

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

Self explanatory installation of local jar to local Maven repo. Hard to remember so I put it here.