Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
58 lines (41 loc) · 2.73 KB

File metadata and controls

58 lines (41 loc) · 2.73 KB
Copy raw file
Download raw file
Outline
Edit and raw actions

Build with Maven

Prerequisites:

  • Java min 1.8
  • Maven 3

Build and run integration tests as follows:

$ mvn clean install

If you do not have access to a Docker server or just want to execute the build quickly, you can run the build without the integration tests:

$ mvn clean install -DskipITs

By default the docker engine is using local UNIX sockets for communication with the docker CLI so docker-java client also uses UNIX domain sockets to connect to the docker daemon by default. To make the docker daemon listening on a TCP (http/https) port you have to configure it by setting the DOCKER_OPTS environment variable to something like the following:

DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock"

More details about setting up Docker Engine can be found in the official documentation: https://docs.docker.com/engine/admin/

To force docker-java to use TCP (http) configure the following (see Configuration for details):

DOCKER_HOST=tcp://127.0.0.1:2375

For secure tls (https) communication:

DOCKER_HOST=tcp://127.0.0.1:2376
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=/Users/marcus/.docker/machine/machines/docker-1.11.2

Code Design

  • Model is based on Objects and not primitives that allows nullify requests and have null values for data that wasn't provided by docker daemon.
  • For null safeness findbugs annotations are used. ** Every method that may return null (and we are unsure in any fields as docker daemon may change something) should be annotated with @CheckForNull return qualifier from javax.annotation package. ** Methods that can't return null must be annotated with @Nonnull. ** The same for Arguments. ** @Nullable must be used only for changing inherited (other typed) qualifier.
  • Setters in builder style must be prefixed with withXX.
  • All classes should provide toString() equals() and hashCode() defined methods.
  • Javadocs ** Provide full information on field: *** For models define API version with @since {@link RemoteApiVersion#VERSION_1_X}. ** getters/setters should refernce to field @see #$field.
  • If it is Serializable it shall have a serialVersionUID field. Unless code has shipped to users, the initial value of the serialVersionUID field shall be 1L.

Coding style

  • Some initial styling already enforced with checkstyle. Please aim for consistency with the existing code.

Testing

  • Unit tests for serder (serialization-deserialization).
  • Integration tests for commands.
  • If model object has builders, then fill it with data and compare by equals() with expected response from docker daemon. If failed, then some fields mappings are wrong.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.