Java

Environment

Code is executed within a Dockerized Ubuntu 14.04 container.

Version

Java 8 (1.8.0_91) is supported

Loaded Dependencies

The following depencies are always loaded

The following can be loaded through @config reference statements

To make these packages available to the application, you must have access to the setup code block. Within the setup code you can load any of these packages using reference config statements.

Setup Example:

// @config: reference guava
// @config: reference commons-lang3

If you need to reference a package that is a dependency of one of the above packages, you will need to load those packages in order to make that dependency available.

Spring/Spring Boot Packages

If you require support for the Spring framework, you can include spring as the reference name. This will include both the spring boot web and test starter dependencies, as well as any additional requirements.

When including the Spring framework via spring, if other services are configured, such as mongodb, then the required spring data packages will also be auto-included into the build.

If you do not need to use Spring Boot, you can simply ignore those packages as installing them will also install the common Spring packages that you are likely looking for.

Build Process

Gradle is used as the build tool. Each time you run code, a fresh Docker container will be used. Under typical conditions the Gradle daemon should have already loaded, causing build times to typically fall within the 3 to 4 second range for trivial sized apps. However if the daemon has not finished loading then the build process will need to wait until the daemon is ready. This should not affect output walltime but may cause delays in code execution.

Timeout

The sandbox environment will timeout the code within 20 seconds.