Skip to content

Latest commit

 

History

History
98 lines (68 loc) · 5.21 KB

ExecutorDependencies.md

File metadata and controls

98 lines (68 loc) · 5.21 KB

Progressor - Executor Dependencies

This project has the following Maven dependencies.

  1. org.apache.thrift:libthrift:0.10.0 for Apache Thrift
  2. org.json:json:20170516 for JSON decoding
  3. org.slf4j:slf4j-simple:1.7.25 for logging
  4. org.testng:testng:6.11 for unit tests
  5. commons-io:commons-io:2.5 for proper UTF-8 support on streams

And relies on the following plugins.

  1. org.apache.maven.plugins:maven-compiler-plugin:3.7.0 for targeting JDK 1.8
  2. org.apache.maven.plugins:maven-assembly-plugin:3.1.0 for specifying the main class and additional assembly settings
  3. org.apache.thrift.tools:maven-thrift-plugin:0.1.11 for automatically generating Java and Node.js thrift libraries
  4. org.codehaus.mojo:build-helper-maven-plugin:1.12 for including the previously generated Java library

Docker

Docker support is activated by default on Linux distributions. On any other platform, Docker is not yet supported. The created Docker image is tagged progressor/executor. If you decide not to use Docker, use the following -docker false.

Be aware that not using Docker requires you to install all the compilers of the languages you want to support on your server. If you use Docker you need to install the compilers in your Docker image. To do that, you need to adjust the Dockerfile and rebuild your image.

Programming Languages

The Executor currently supports five programming languages.

To use the languages, the following compilers (and other tools) need to be installed and available in the PATH.

  1. Java: javac and java
  2. C++: g++
  3. C#: csc (Windows) or msc and mono (Linux)
  4. Python: python (Windows)
  5. JavaScript (Node.js): node
  6. PHP: php
  7. Kotlin: kotlinc and kotlin (these scripts are actually simulated until a security issue can be solved with Java 9)
  8. VB.NET: vbc (Windows) or vbnc and mono (Linux)

As already mentioned, if you are using Docker these compilers need to be installed inside the Docker image via the Dockerfile. Java is the only exception, since it is needed inside the Docker image as well as on the server to run the Executor.

Java

Support for Java 8 is required.

The Java Developer Toolkit (JDK) can be downloaded from the official Oracle downloads page.

C++

This projects targets the GNU Compiler Collection (GCC). Support for C++11 is required.

  • For Linux, install g++ using apt-get install g++
  • For Windows, the following packages are available:

C#

  • On Windows, the C# compiler is already included in most recent Windows operating systems. Make sure that the PATH environment variable is set to C:\WINDOWS\Microsoft.NET\Framework\v[your version number]\csc.exe.
    • If this directory does not exist, you can download the .NET Core.
  • On Linux, Mono can be downloaded on their download page.

Python

  • On Linux, Python 3 install using apt-get install python3
  • On Windows, download Python 3 and install it.

JavaScript

Install Node.js version 6.x.x as any version below will not fully comply with ES6.

PHP

Install PHP (Windows) version 7.x.x.

Kotlin

For Kotlin, a stand-alone compiler can be downloaded from GitHub.

VB.NET

  • On Windows, the VB.NET compiler is already included in most recent Windows operating systems. Make sure that the PATH environment variable is set to C:\WINDOWS\Microsoft.NET\Framework\v[your version number]\vbc.exe.
    • If this directory does not exist, you can download the .NET Core.
  • On Linux, Mono can be downloaded on their download page.