https://github.com/cloudfoundry/java-test-applications
Applications used for testing the Java buildpack
https://github.com/cloudfoundry/java-test-applications
Last synced: 9 months ago
JSON representation
Applications used for testing the Java buildpack
- Host: GitHub
- URL: https://github.com/cloudfoundry/java-test-applications
- Owner: cloudfoundry
- License: apache-2.0
- Created: 2013-06-13T08:30:13.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2025-02-17T14:06:31.000Z (about 1 year ago)
- Last Synced: 2025-06-14T00:03:17.725Z (10 months ago)
- Language: Java
- Size: 2.57 MB
- Stars: 33
- Watchers: 23
- Forks: 67
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Java Test Applications
A collection of applications used for testing the Java buildpack.
## Applications
| Name | Description
| ---- | -----------
| `dist-zip-application` | A Spring Boot application, deployed as a `distZip`
| `ejb-application` | A JEE EJB application using Servlet 3
| `groovy-application` | An application started with `groovy`
| `java-main-application` | A Spring Boot application started with `java -jar`
| `ratpack-application` | A Ratpack application, deployed as a `distZip`
| `spring-boot-cli-application` | A Spring Boot CLI application, deployed with `spring grab`
| `spring-boot-cli-jar-application` | A Spring Boot CLI application, deployed with `spring jar`
| `web-application` | A Spring MVC application using Servlet 3
| `web-servlet-2-application` | A Spring MVC application using Servlet 2
### Output Content
All applications support the following REST operations:
| URI | Description
| --- | -----------
| `GET /` | The health of the application
| `GET /class-path` | The classpath of the application
| `GET /environment-variables` | The environment variables available to the application
| `GET /input-arguments` | The list of JVM input arguments for the application
| `POST /out-of-memory` | The URL to trigger an out of memory error
| `GET /request-headers` | The http request headers of the current request
| `GET /security-providers` | The system security providers available to the application
| `GET /system-properties` | The system properties available to the application
## Building
Before building the project, the following tools must be installed:
* [JDK 8](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
* [Spring Boot 2 CLI](http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started-installing-the-cli)
This project is built with Gradle. After installing the pre-requisites, run:
```plain
./gradlew
```
### Building Behind a Proxy
Since this project downloads its dependencies from the internet, building behing a proxy requires some extra effort. In order configure gradle properly, use the following system properties. More information can be found [here][].
```plain
./gradlew -Dhttp.proxyHost= -Dhttp.proxyPort=
```
## Deploying to Cloud Foundry
Each test application contains a `manifest.yml` file which allows the built application to be deployed to Cloud Foundry by simply issuing:
```plain
cf push
```
To avoid clashing with the URLs of other applications, you should specify your own subdomain for the application (unless the test application does not need a subdomain).
## Failure Testing
Failure testing is supported for each of the above applications by setting a suitable environment variable.
If the environment variable FAIL_INIT is set, the application will fail to initialize:
```plain
cf set-env FAIL_INIT true
```
If the environment variable FAIL_OOM is set, the application will repeatedly exhaust the heap until the JVM is killed:
```plain
cf set-env FAIL_OOM true
```
## Running Tests
To run the tests, do the following:
```bash
./gradlew
```
## License
The Tomcat Builder is released under version 2.0 of the [Apache License][].
[Apache License]: http://www.apache.org/licenses/LICENSE-2.0
[here]: http://stackoverflow.com/questions/5991194/gradle-proxy-configuration