Java Integration Library for Mesosphere Marathon
Java Groovy
Clone or download
colin-msphere Merge pull request #6 from mesosphere/ken/marathon-1.6-changes
added ipProtocol changes for HC along with tests
Latest commit 333a4ce Jan 12, 2018

README.md

marathon-client

This project is a Java library for communicating with Marathon API. At this point this library supports version v2 of Marathon API, please refer to the docs for more details.

Using marathon-client in your maven project

Add marathon-client as a dependency:

For Marathon v1.x:

<dependency>
  <groupId>com.mesosphere</groupId>
  <artifactId>marathon-client</artifactId>
  <version>0.6.0</version>
</dependency>

For Marathon v0.x:

<dependency>
  <groupId>com.mesosphere</groupId>
  <artifactId>marathon-client</artifactId>
  <version>0.2.1</version>
</dependency>

Usage

Initialization

The following piece of code initializes the client. MarathonClient.getInstance() method expects the endpoint for marathon:

String endpoint = "<Marathon's endpoint>";
Marathon marathon = MarathonClient.getInstance(endpoint);

Getting all applications

The following will return all the applications that have been created:

GetAppsResponse appsResponse = marathon.getApps();

Create a new application

The following example demonstrates how a new application can be created:

App app = new App();
app.setId("echohisleepbye-app");
app.setCmd("echo hi; sleep 10; echo bye;");
app.setCpus(1.0);
app.setMem(16.0);
app.setInstances(1);
marathon.createApp(app);

Get details about an existing application

The following example, demostrates how to get details about an already created application:

GetAppResponse appGet = marathon.getApp("echohisleepbye-app");

Delete an application

The following example demostrate, how one can delete an existing application:

marathon.deleteApp("echohisleepbye-app");

Building

This project is built using Apache Maven.

Run the following command from the root of repository, to build the client JAR:

$ mvn clean install

Debugging / Logging

Feign is used as the underlying REST library. Sometimes it is useful to see the low level JSON and responses. It is possible to setup debug without directed to stdout or to a log file. This is simplified by set the environment variable DEBUG_JSON_OUTPUT to either a file name debug.log or to System.out.

Bugs

Bugs can be reported using Github issues.