The cf-java-client repo contains a Java client library and tools for Cloud Foundry. Three major components are included in this repo.
The cloudfoundry-client-lib is a Java library that provides a Java language binding for the Cloud Foundry Cloud Controller REST API. The library can be used by Java, Groovy, and Scala apps to interact with a Cloud Foundry service on behalf of a user.
The Cloud Foundry Maven plugin is a plugin for the Maven build tool that allows you to deploy and manage applications with Maven goals.
The Cloud Foundry Gradle plugin is a plugin for the Gradle build tool that allows you to deploy and manage applications with Gradle tasks.
cloudfoundry-maven-plugin components are built with Apache Maven.
cloudfoundry-gradle-plugin component is built with Gradle.
Protocol Buffer compiler
cloudfoundry-client-lib uses Protocol Buffers to get logs from the Cloud Foundry loggregator
protoc Protocol Buffer compiler is required at build time to compile message specifications.
2.6.1 is required.
On Linux with
apt, run the install-protoc-apt.sh script in this repository to compile
protoc from source.
On Windows, download the
protoc binary zip file from the releases page,
unzip it, and put
protoc.exe in the path.
After installing, run this command and check the output to make sure it is similar to the following:
$ protoc --version libprotoc 2.6.1
Compiling and Packaging
cloudfoundry-maven-plugin, run the following command from the project root directory:
$ mvn clean install
cloudfoundry-gradle-plugin, run the following command from the
cloudfoundry-gradle-plugin sub-directory after
$ gradle clean install
Running Integration Tests
cloudfoundry-client-lib has an extensive set of integration tests which run against a Cloud Foundry service. To execute the
integration tests, run the following command from the project root directory:
$ mvn -P integration-test clean install -Dccng.target=<endpoint> -Dccng.email=<username> -Dccng.passwd=<password> -Dccng.org=<organization> -Dccng.space=<space>
Following is a complete list of the
-D parameters that can be passed to the integration test:
|ccng.target||target Cloud Foundry endpoint (e.g. https://api.run.pivotal.io)||required|
|ccng.email||Cloud Foundry username||required|
|ccng.passwd||Cloud Foundry password||required|
|ccng.org||Cloud Foundry organization to run tests against||required|
|ccng.space||Cloud Foundry space to run tests against||required|
|ccng.ssl||trust self-signed certificates from target endpoint||optional, default is
|vcap.mysql.label||label of a MySQL service that can be created||optional, default is
|vcap.mysql.plan||plan of a MySQL service that can be created||optional, default is
|http.proxyHost||host name of an HTTP proxy||optional|
|http.proxyPort||port of an HTTP proxy||optional|
Integration tests should be run against an empty Cloud Foundry space. The integration tests are destructive, and will delete any apps, services, routes, and domains existing in the target space.
Cloud Foundry Resources
Cloud Foundry Open Source Platform as a Service
Our documentation, currently a work in progress, is available here: http://cloudfoundry.github.com/
Questions about the Cloud Foundry Open Source Project can be directed to our Google Groups.
- Cloud Foundry Developers: https://groups.google.com/a/cloudfoundry.org/group/vcap-dev/topics
- BOSH Developers: https://groups.google.com/a/cloudfoundry.org/group/bosh-dev/topics
- BOSH Users:https://groups.google.com/a/cloudfoundry.org/group/bosh-users/topics
File a bug
Bugs can be filed using Github Issues within the various repositories of the Cloud Foundry components.
The Cloud Foundry team uses GitHub and accepts contributions via pull request
Follow these steps to make a contribution to any of our open source repositories:
$ git config --global user.name "Firstname Lastname" $ git config --global user.email "firstname.lastname@example.org"
- Fork the repo
- Make your changes on a topic branch, commit, and push to github and open a pull request.
Once your commits are approved by Travis CI and reviewed by the core team, they will be merged.