SeaClouds Unified PaaS Library
- Compile needed projects
-
https://github.com/rosogon/heroku-java-client. Compile with
mvn install –Dmaven.test.skip
. -
https://github.com/rosogon/unified-paas. To use the test, API_KEY with heroku key must be set.
-
Start server:
java -jar service/target/unified-paas-service-0.0.1-SNAPSHOT.jar
-
Deploy an application:
curl http://localhost:8080/heroku/applications -X POST -F file=@"<warfile>" -F model='{"name":"samplewar"}' -H"Content-Type: multipart/form-data" -H"apikey:<heroku-api-key>"
- Set values in /library/src/test/resources/tests.config.properties
- Execute tests:
mvn clean verify -P integration-test
Java client libraries used in the project:
- Cloud Foundry: Cloud Foundry Java Client
- Description
- The cf-java-client project is a Java language binding for interacting with a Cloud Foundry instance (including PaaS providers like Pivotal, Bluemix etc.).
- Features
Feature | Supported? | Comments |
---|---|---|
Application deployment | ✅ | Tested with Java and PHP apps |
Start / Stop / Remove | ✅ | ➖ |
Scaling capabilities | ✅ | Can scale number of instances, disk and RAM |
Services management | ✅ | Tested with ClearDB from Pivotal |
Environment variables management | ✅ | Read & Write |
| Limitations / Comments | | ------------- || | ➖ |
- 🆕 Cloud Foundry (new version) : Cloud Foundry Java Client
- Description
- The new version of the cf-java-client project is based on Java 8 and [Project Reactor](https://projectreactor.io/) (a second-generation Reactive library for building non-blocking applications on the JVM based on the Reactive Streams Specification).
- Features
- -Not implemented-
- Heroku: Heroku JAR & heroku-maven-plugin
- Description
- [Heroku JAR](https://github.com/heroku/heroku.jar): The Heroku JAR is a java artifact that provides a simple wrapper for the Heroku REST API. The Heroku REST API allows Heroku users to manage their accounts, applications, addons, and other aspects related to Heroku.
- [heroku-maven-plugin](https://github.com/heroku/heroku-maven-plugin): This plugin is used to deploy Java applications directly to Heroku without pushing to a Git repository. This is can be useful when deploying from a CI server, deploying pre-built Jar or War files.
- Features
Feature | Supported? | Comments |
---|---|---|
Application deployment | ✅ | Tested with Java |
Start / Stop / Remove | ✅ | ➖ |
Scaling capabilities | ✅ | Can scale number of instances |
Services management | ✅ | Tested with ClearDB from Pivotal |
Environment variables management | ✅ | Read & Write |
- OpenShift v2: OpenShift Java Client (used by Openshift Online / only for Version 2)
- Description
- Java client for the OpenShift REST API. This client is used by JBoss Tools for OpenShift 2.x.
- Features
Feature | Supported? | Comments |
---|---|---|
Application deployment | ✅ | ❗ Only from GIT |
Start / Stop / Remove | ✅ | ➖ |
Scaling capabilities | ✅ | Can scale number of instances |
Services management | ✅ | Tested with MySQL from Openshift Online |
Environment variables management | ❌ | ➖ |
- 🆕 Openshift v3 (new version for the version 3 architecture of OpenShift based on Kubernetes: OpenShift Enterprise, local Openshift installations ...)
- Description
- -Not implemented-
- Features
- ➖
Client | Version used | License | Comments |
---|---|---|---|
Cloud Foundry | 1.1.3 | Apache License v2 | ➖ |
🆕 Cloud Foundry | ➖ | Apache License v2 | ➖ |
Heroku | 0.16 / 0.5.7** | ➖ / MIT License** | ➖ |
Openshift v2 | 2.7.0.Final | Eclipse Public License v1.0 | ➖ |
🆕 Openshift v3 | ➖ | ➖ | ➖ |
** heroku-maven-plugin