This project has the following Maven dependencies.
- org.apache.thrift:libthrift:0.10.0 for Apache Thrift
- org.json:json:20170516 for JSON decoding
- org.slf4j:slf4j-simple:1.7.25 for logging
- org.testng:testng:6.11 for unit tests
- commons-io:commons-io:2.5 for proper UTF-8 support on streams
And relies on the following plugins.
- org.apache.maven.plugins:maven-compiler-plugin:3.7.0 for targeting JDK 1.8
- org.apache.maven.plugins:maven-assembly-plugin:3.1.0 for specifying the main class and additional assembly settings
- org.apache.thrift.tools:maven-thrift-plugin:0.1.11 for automatically generating Java and Node.js thrift libraries
- org.codehaus.mojo:build-helper-maven-plugin:1.12 for including the previously generated Java library
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.
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.
- Java:
javac
andjava
- C++:
g++
- C#:
csc
(Windows) ormsc
andmono
(Linux) - Python:
python
(Windows) - JavaScript (Node.js):
node
- PHP:
php
- Kotlin:
kotlinc
andkotlin
(these scripts are actually simulated until a security issue can be solved with Java 9) - VB.NET:
vbc
(Windows) orvbnc
andmono
(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.
Support for Java 8 is required.
The Java Developer Toolkit (JDK) can be downloaded from the official Oracle downloads page.
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:
- MinGW, which can be downloaded from sourceforge.
- A x64 version is available on a dedicated site.
- Cygwin, which can be downloaded from their home page.
- MinGW, which can be downloaded from sourceforge.
- 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.
- On Linux, Python 3 install using apt-get install python3
- On Windows, download Python 3 and install it.
Install Node.js version 6.x.x as any version below will not fully comply with ES6.
Install PHP (Windows) version 7.x.x.
For Kotlin, a stand-alone compiler can be downloaded from GitHub.
- 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.