JCLOUDS-750 AutoValue all Docker value types.
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/6cfb4351 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/6cfb4351 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/6cfb4351 Branch: refs/heads/1.8.x Commit: 6cfb43514637ecfda2697399ca03c44bab9205a7 Parents: d536bd3 Author: Adrian Cole <[email protected]> Authored: Sun Oct 26 12:28:39 2014 -0700 Committer: Adrian Cole <[email protected]> Committed: Tue Oct 28 08:24:09 2014 -0700 ---------------------------------------------------------------------- docker/pom.xml | 7 +- .../functions/ContainerToNodeMetadata.java | 31 +- .../docker/compute/functions/ImageToImage.java | 8 +- .../docker/compute/functions/StateToStatus.java | 2 +- .../strategy/DockerComputeServiceAdapter.java | 28 +- .../docker/config/DockerParserModule.java | 58 ++-- .../java/org/jclouds/docker/domain/Config.java | 311 ++++--------------- .../org/jclouds/docker/domain/Container.java | 265 +++------------- .../org/jclouds/docker/domain/ExposedPorts.java | 91 +----- .../org/jclouds/docker/domain/HostConfig.java | 153 ++------- .../java/org/jclouds/docker/domain/Image.java | 226 ++------------ .../jclouds/docker/domain/NetworkSettings.java | 109 ++----- .../java/org/jclouds/docker/domain/Port.java | 73 +---- .../java/org/jclouds/docker/domain/State.java | 152 +-------- .../java/org/jclouds/docker/domain/Version.java | 152 +-------- .../jclouds/docker/internal/NullSafeCopies.java | 39 +++ .../DockerComputeServiceAdapterLiveTest.java | 4 +- .../functions/ContainerToNodeMetadataTest.java | 38 +-- .../compute/functions/ImageToImageTest.java | 28 +- .../compute/functions/StateToStatusTest.java | 8 +- .../docker/config/DockerParserModuleTest.java | 45 +-- .../docker/features/RemoteApiLiveTest.java | 24 +- .../docker/features/RemoteApiMockTest.java | 16 +- 23 files changed, 418 insertions(+), 1450 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/pom.xml ---------------------------------------------------------------------- diff --git a/docker/pom.xml b/docker/pom.xml index a35debb..f506ef5 100644 --- a/docker/pom.xml +++ b/docker/pom.xml @@ -62,7 +62,12 @@ <artifactId>commons-compress</artifactId> <version>1.5</version> </dependency> - + <dependency> + <groupId>com.google.auto.value</groupId> + <artifactId>auto-value</artifactId> + <version>1.0-rc2</version> + <scope>provided</scope> + </dependency> <dependency> <groupId>org.apache.jclouds.driver</groupId> <artifactId>jclouds-sshj</artifactId> http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/compute/functions/ContainerToNodeMetadata.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/compute/functions/ContainerToNodeMetadata.java b/docker/src/main/java/org/jclouds/docker/compute/functions/ContainerToNodeMetadata.java index 3ec7f5c..7b070fb 100644 --- a/docker/src/main/java/org/jclouds/docker/compute/functions/ContainerToNodeMetadata.java +++ b/docker/src/main/java/org/jclouds/docker/compute/functions/ContainerToNodeMetadata.java @@ -76,26 +76,25 @@ public class ContainerToNodeMetadata implements Function<Container, NodeMetadata @Override public NodeMetadata apply(Container container) { - String name = cleanUpName(container.getName()); + String name = cleanUpName(container.name()); String group = nodeNamingConvention.extractGroup(name); NodeMetadataBuilder builder = new NodeMetadataBuilder(); - builder.ids(container.getId()) + builder.ids(container.id()) .name(name) .group(group) - .hostname(container.getContainerConfig().getHostname()) + .hostname(container.config().hostname()) // TODO Set up hardware .hardware(new HardwareBuilder() .id("") - .ram(container.getContainerConfig().getMemory()) - .processor(new Processor(container.getContainerConfig().getCpuShares(), container.getContainerConfig().getCpuShares())) + .ram(container.config().memory()) + .processor(new Processor(container.config().cpuShares(), container.config().cpuShares())) .build()); - builder.status(toPortableStatus.apply(container.getState())); - builder.imageId(container.getImage()); + builder.status(toPortableStatus.apply(container.state())); builder.loginPort(getLoginPort(container)); builder.publicAddresses(getPublicIpAddresses()); builder.privateAddresses(getPrivateIpAddresses(container)); builder.location(Iterables.getOnlyElement(locations.get())); - String imageId = container.getImage(); + String imageId = container.image(); builder.imageId(imageId); if (images.get().containsKey(imageId)) { Image image = images.get().get(imageId); @@ -110,8 +109,8 @@ public class ContainerToNodeMetadata implements Function<Container, NodeMetadata } private Iterable<String> getPrivateIpAddresses(Container container) { - if (container.getNetworkSettings() == null) return ImmutableList.of(); - return ImmutableList.of(container.getNetworkSettings().getIpAddress()); + if (container.networkSettings() == null) return ImmutableList.of(); + return ImmutableList.of(container.networkSettings().ipAddress()); } private List<String> getPublicIpAddresses() { @@ -120,16 +119,16 @@ public class ContainerToNodeMetadata implements Function<Container, NodeMetadata } protected static int getLoginPort(Container container) { - if (container.getNetworkSettings() != null) { - Map<String, List<Map<String, String>>> ports = container.getNetworkSettings().getPorts(); + if (container.networkSettings() != null) { + Map<String, List<Map<String, String>>> ports = container.networkSettings().ports(); if (ports != null && ports.containsKey("22/tcp")) { return Integer.parseInt(getOnlyElement(ports.get("22/tcp")).get("HostPort")); } // this is needed in case the container list is coming from listContainers - } else if (container.getPorts() != null) { - for (Port port : container.getPorts()) { - if (port.getPrivatePort() == 22) { - return port.getPublicPort(); + } else if (container.ports() != null) { + for (Port port : container.ports()) { + if (port.privatePort() == 22) { + return port.publicPort(); } } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/compute/functions/ImageToImage.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/compute/functions/ImageToImage.java b/docker/src/main/java/org/jclouds/docker/compute/functions/ImageToImage.java index 4e3358d..551c441 100644 --- a/docker/src/main/java/org/jclouds/docker/compute/functions/ImageToImage.java +++ b/docker/src/main/java/org/jclouds/docker/compute/functions/ImageToImage.java @@ -44,7 +44,7 @@ public class ImageToImage implements Function<org.jclouds.docker.domain.Image, o @Override public Image apply(org.jclouds.docker.domain.Image from) { checkNotNull(from, "image"); - String description = checkNotNull(Iterables.getFirst(from.getRepoTags(), "image must have at least one repo tag")); + String description = checkNotNull(Iterables.getFirst(from.repoTags(), "image must have at least one repo tag")); OsFamily osFamily = osFamily().apply(description); String osVersion = parseVersion(description); @@ -57,7 +57,7 @@ public class ImageToImage implements Function<org.jclouds.docker.domain.Image, o .build(); return new ImageBuilder() - .ids(from.getId()) + .ids(from.id()) .name(get(Splitter.on(":").split(description), 0)) .description(description) .operatingSystem(os) @@ -66,8 +66,8 @@ public class ImageToImage implements Function<org.jclouds.docker.domain.Image, o } private boolean is64bit(org.jclouds.docker.domain.Image inspectedImage) { - if (inspectedImage.getArchitecture() == null) return true; - return inspectedImage.getArchitecture().matches("x86_64|amd64"); + if (inspectedImage.architecture() == null) return true; + return inspectedImage.architecture().matches("x86_64|amd64"); } /** http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/compute/functions/StateToStatus.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/compute/functions/StateToStatus.java b/docker/src/main/java/org/jclouds/docker/compute/functions/StateToStatus.java index 2d87384..ef9f616 100644 --- a/docker/src/main/java/org/jclouds/docker/compute/functions/StateToStatus.java +++ b/docker/src/main/java/org/jclouds/docker/compute/functions/StateToStatus.java @@ -32,7 +32,7 @@ public class StateToStatus implements Function<State, Status> { @Override public Status apply(final State state) { if (state == null) return Status.UNRECOGNIZED; - return state.isRunning() ? Status.RUNNING : Status.TERMINATED; + return state.running() ? Status.RUNNING : Status.TERMINATED; } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java b/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java index d1c1260..fa83ffc 100644 --- a/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java +++ b/docker/src/main/java/org/jclouds/docker/compute/strategy/DockerComputeServiceAdapter.java @@ -89,7 +89,7 @@ public class DockerComputeServiceAdapter implements } Config.Builder containerConfigBuilder = Config.builder() - .imageId(imageId) + .image(imageId) .exposedPorts(exposedPorts); if (templateOptions.getCommands().isPresent()) { @@ -123,7 +123,7 @@ public class DockerComputeServiceAdapter implements logger.debug(">> creating new container with containerConfig(%s)", containerConfig); Container container = api.getRemoteApi().createContainer(name, containerConfig); - logger.trace("<< container(%s)", container.getId()); + logger.trace("<< container(%s)", container.id()); HostConfig.Builder hostConfigBuilder = HostConfig.builder() .publishAllPorts(true) @@ -140,13 +140,13 @@ public class DockerComputeServiceAdapter implements } HostConfig hostConfig = hostConfigBuilder.build(); - api.getRemoteApi().startContainer(container.getId(), hostConfig); - container = api.getRemoteApi().inspectContainer(container.getId()); - if (container.getState().getExitCode() != 0) { - destroyNode(container.getId()); - throw new IllegalStateException(String.format("Container %s has not started correctly", container.getId())); + api.getRemoteApi().startContainer(container.id(), hostConfig); + container = api.getRemoteApi().inspectContainer(container.id()); + if (container.state().exitCode() != 0) { + destroyNode(container.id()); + throw new IllegalStateException(String.format("Container %s has not started correctly", container.id())); } - return new NodeAndInitialCredentials<Container>(container, container.getId(), + return new NodeAndInitialCredentials<Container>(container, container.id(), LoginCredentials.builder().user(loginUser).password(loginUserPassword).build()); } @@ -166,9 +166,11 @@ public class DockerComputeServiceAdapter implements Set<Image> images = Sets.newHashSet(); for (Image image : api.getRemoteApi().listImages()) { // less efficient than just listImages but returns richer json that needs repoTags coming from listImages - Image inspected = api.getRemoteApi().inspectImage(image.getId()); - if (inspected.getRepoTags().isEmpty()) { - inspected = Image.builder().fromImage(inspected).repoTags(image.getRepoTags()).build(); + Image inspected = api.getRemoteApi().inspectImage(image.id()); + if (inspected.repoTags().isEmpty()) { + inspected = Image.create(inspected.id(), inspected.parent(), inspected.created(), inspected.container(), + inspected.dockerVersion(), inspected.architecture(), inspected.os(), inspected.size(), + inspected.virtualSize(), image.repoTags()); } images.add(inspected); } @@ -182,7 +184,7 @@ public class DockerComputeServiceAdapter implements @Override public boolean apply(Image input) { - return input.getId().equals(imageId); + return input.id().equals(imageId); } }, null); } @@ -192,7 +194,7 @@ public class DockerComputeServiceAdapter implements Set<Container> containers = Sets.newHashSet(); for (Container container : api.getRemoteApi().listContainers(ListContainerOptions.Builder.all(true))) { // less efficient than just listNodes but returns richer json - containers.add(api.getRemoteApi().inspectContainer(container.getId())); + containers.add(api.getRemoteApi().inspectContainer(container.id())); } return containers; } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/config/DockerParserModule.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/config/DockerParserModule.java b/docker/src/main/java/org/jclouds/docker/config/DockerParserModule.java index 533184f..ea777a4 100644 --- a/docker/src/main/java/org/jclouds/docker/config/DockerParserModule.java +++ b/docker/src/main/java/org/jclouds/docker/config/DockerParserModule.java @@ -16,47 +16,35 @@ */ package org.jclouds.docker.config; -import com.google.common.collect.ImmutableMap; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.inject.AbstractModule; -import com.google.inject.Provides; -import org.jclouds.docker.domain.Container; +import java.lang.reflect.Field; + import org.jclouds.json.config.GsonModule; -import javax.inject.Singleton; -import java.lang.reflect.Type; -import java.util.Map; +import com.google.gson.FieldNamingPolicy; +import com.google.gson.FieldNamingStrategy; +import com.google.inject.AbstractModule; public class DockerParserModule extends AbstractModule { - - @Override - protected void configure() { + @Override protected void configure() { + bind(FieldNamingStrategy.class).toInstance(FIELD_NAMING_STRATEGY); bind(GsonModule.DateAdapter.class).to(GsonModule.Iso8601DateAdapter.class); } - @Provides - @Singleton - public Map<Type, Object> provideCustomAdapterBindings() { - return new ImmutableMap.Builder<Type, Object>() - .put(Container.class, new ContainerTypeAdapter()) - .build(); - } - - protected static class ContainerTypeAdapter implements JsonDeserializer<Container> { - - @Override - public Container deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws - JsonParseException { - Gson gson = new GsonBuilder().serializeNulls().create(); - final JsonObject jsonObject = json.getAsJsonObject(); - return gson.fromJson(jsonObject, Container.class); + /** When serializing, Most fields are UpperCamelCase, with some exceptions. */ + private static final FieldNamingStrategy FIELD_NAMING_STRATEGY = new FieldNamingStrategy() { + private final FieldNamingStrategy delegate = FieldNamingPolicy.UPPER_CAMEL_CASE; + + @Override public String translateName(Field f) { + String result = delegate.translateName(f); + // IP not Ip as code wins over docs https://github.com/docker/docker/blob/master/daemon/network_settings.go + if (result.equals("IpAddress")) { + return "IPAddress"; + } else if (result.equals("IpPrefixLen")) { + return "IPPrefixLen"; + } else if (result.equals("Ip")) { + return "IP"; + } + return result; } - } - + }; } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/domain/Config.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/domain/Config.java b/docker/src/main/java/org/jclouds/docker/domain/Config.java index f5190fa..396ab2f 100644 --- a/docker/src/main/java/org/jclouds/docker/domain/Config.java +++ b/docker/src/main/java/org/jclouds/docker/domain/Config.java @@ -17,260 +17,78 @@ package org.jclouds.docker.domain; import static com.google.common.base.Preconditions.checkNotNull; +import static org.jclouds.docker.internal.NullSafeCopies.copyOf; -import java.beans.ConstructorProperties; import java.util.List; import java.util.Map; import org.jclouds.javax.annotation.Nullable; +import org.jclouds.json.SerializedNames; -import com.google.common.base.Objects; +import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.gson.annotations.SerializedName; - -public class Config { - - @SerializedName("Hostname") - private final String hostname; - @SerializedName("Domainname") - private final String domainName; - @SerializedName("User") - private final String user; - @SerializedName("Memory") - private final int memory; - @SerializedName("MemorySwap") - private final int memorySwap; - @SerializedName("CpuShares") - private final int cpuShares; - @SerializedName("AttachStdin") - private final boolean attachStdin; - @SerializedName("AttachStdout") - private final boolean attachStdout; - @SerializedName("AttachStderr") - private final boolean attachStderr; - @SerializedName("ExposedPorts") - private final Map<String, ?> exposedPorts; - @SerializedName("Tty") - private final boolean tty; - @SerializedName("OpenStdin") - private final boolean openStdin; - @SerializedName("StdinOnce") - private final boolean stdinOnce; - @SerializedName("Env") - private final List<String> env; - @SerializedName("Cmd") - private final List<String> cmd; - @SerializedName("Dns") - private final List<String> dns; - @SerializedName("Image") - private final String imageId; - @SerializedName("Volumes") - private final Map<String, ?> volumes; - @SerializedName("VolumesFrom") - private final String volumesFrom; - @SerializedName("WorkingDir") - private final String workingDir; - @SerializedName("Entrypoint") - private final List<String> entrypoint; - @SerializedName("NetworkDisabled") - private final boolean networkDisabled; - @SerializedName("OnBuild") - private final List<String> onBuild; - - - @ConstructorProperties({ "Hostname", "Domainname", "User", "Memory", "MemorySwap", "CpuShares", "AttachStdin", - "AttachStdout", "AttachStderr", "ExposedPorts", "Tty", "OpenStdin", "StdinOnce", "Env", "Cmd", - "Dns", "Image", "Volumes", "VolumesFrom", "WorkingDir", "Entrypoint", "NetworkDisabled", "OnBuild" }) - protected Config(@Nullable String hostname, @Nullable String domainName, @Nullable String user, - int memory, int memorySwap, int cpuShares, boolean attachStdin, boolean attachStdout, - boolean attachStderr, Map<String, ?> exposedPorts, boolean tty, boolean openStdin, - boolean stdinOnce, @Nullable List<String> env, @Nullable List<String> cmd, - @Nullable List<String> dns, String imageId, @Nullable Map<String, ?> volumes, - @Nullable String volumesFrom, @Nullable String workingDir, @Nullable List<String> entrypoint, - @Nullable boolean networkDisabled, @Nullable List<String> onBuild) { - this.hostname = hostname; - this.domainName = domainName; - this.user = user; - this.memory = checkNotNull(memory, "memory"); - this.memorySwap = checkNotNull(memorySwap, "memorySwap"); - this.cpuShares = checkNotNull(cpuShares, "cpuShares"); - this.attachStdin = checkNotNull(attachStdin, "attachStdin"); - this.attachStdout = checkNotNull(attachStdout, "attachStdout"); - this.attachStderr = checkNotNull(attachStderr, "attachStderr"); - this.exposedPorts = exposedPorts != null ? ImmutableMap.copyOf(exposedPorts) : ImmutableMap.<String, Object> of(); - this.tty = checkNotNull(tty, "tty"); - this.openStdin = checkNotNull(openStdin, "openStdin"); - this.stdinOnce = checkNotNull(stdinOnce, "stdinOnce"); - this.env = env != null ? ImmutableList.copyOf(env) : ImmutableList.<String> of(); - this.cmd = cmd != null ? ImmutableList.copyOf(cmd) : ImmutableList.<String> of(); - this.dns = dns != null ? ImmutableList.copyOf(dns) : ImmutableList.<String> of(); - this.imageId = checkNotNull(imageId, "imageId"); - this.volumes = volumes != null ? ImmutableMap.copyOf(volumes) : ImmutableMap.<String, Object> of(); - this.volumesFrom = volumesFrom; - this.workingDir = workingDir; - this.entrypoint = entrypoint; - this.networkDisabled = networkDisabled; - this.onBuild = onBuild != null ? ImmutableList.copyOf(onBuild) : ImmutableList.<String> of(); - } - - public String getHostname() { - return hostname; - } - public String getDomainName() { - return domainName; - } +@AutoValue +public abstract class Config { + @Nullable public abstract String hostname(); - public String getUser() { - return user; - } - - public int getMemory() { - return memory; - } + @Nullable public abstract String domainname(); - public int getMemorySwap() { - return memorySwap; - } + @Nullable public abstract String user(); - public int getCpuShares() { - return cpuShares; - } + public abstract int memory(); - public boolean isAttachStdin() { - return attachStdin; - } + public abstract int memorySwap(); - public boolean isAttachStdout() { - return attachStdout; - } + public abstract int cpuShares(); - public boolean isAttachStderr() { - return attachStderr; - } + public abstract boolean attachStdin(); - public Map<String, ?> getExposedPorts() { - return exposedPorts; - } + public abstract boolean attachStdout(); - public boolean isTty() { - return tty; - } + public abstract boolean attachStderr(); - public boolean isOpenStdin() { - return openStdin; - } + public abstract Map<String, ?> exposedPorts(); - public boolean isStdinOnce() { - return stdinOnce; - } + public abstract boolean tty(); - public List<String> getEnv() { - return env; - } + public abstract boolean openStdin(); - public List<String> getCmd() { - return cmd; - } + public abstract boolean stdinOnce(); - public List<String> getDns() { - return dns; - } + public abstract List<String> env(); - public String getImageId() { - return imageId; - } + public abstract List<String> cmd(); - public Map<String, ?> getVolumes() { - return volumes; - } + public abstract List<String> dns(); - public String getVolumesFrom() { - return volumesFrom; - } + public abstract String image(); - public String getWorkingDir() { - return workingDir; - } + public abstract Map<String, ?> volumes(); - public List<String> getEntrypoint() { - return entrypoint; - } + @Nullable public abstract String volumesFrom(); - public boolean isNetworkDisabled() { - return networkDisabled; - } + @Nullable public abstract String workingDir(); - public List<String> getOnBuild() { - return onBuild; - } + public abstract List<String> entrypoint(); - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Config that = (Config) o; - - return Objects.equal(this.hostname, that.hostname) && - Objects.equal(this.domainName, that.domainName) && - Objects.equal(this.user, that.user) && - Objects.equal(this.memory, that.memory) && - Objects.equal(this.memorySwap, that.memorySwap) && - Objects.equal(this.cpuShares, that.cpuShares) && - Objects.equal(this.attachStdin, that.attachStdin) && - Objects.equal(this.attachStdout, that.attachStdout) && - Objects.equal(this.attachStderr, that.attachStderr) && - Objects.equal(this.exposedPorts, that.exposedPorts) && - Objects.equal(this.tty, that.tty) && - Objects.equal(this.openStdin, that.openStdin) && - Objects.equal(this.stdinOnce, that.stdinOnce) && - Objects.equal(this.env, that.env) && - Objects.equal(this.cmd, that.cmd) && - Objects.equal(this.dns, that.dns) && - Objects.equal(this.imageId, that.imageId) && - Objects.equal(this.volumes, that.volumes) && - Objects.equal(this.volumesFrom, that.volumesFrom) && - Objects.equal(this.workingDir, that.workingDir) && - Objects.equal(this.entrypoint, that.entrypoint) && - Objects.equal(this.onBuild, that.onBuild); - } + public abstract boolean networkDisabled(); - @Override - public int hashCode() { - return Objects.hashCode(hostname, domainName, user, memory, memorySwap, cpuShares, attachStdin, attachStdout, - attachStderr, exposedPorts, tty, openStdin, stdinOnce, env, cmd, dns, imageId, volumes, - volumesFrom, workingDir, entrypoint, networkDisabled, onBuild); - } + public abstract List<String> onBuild(); - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("hostname", hostname) - .add("domainName", domainName) - .add("user", user) - .add("memory", memory) - .add("memorySwap", memorySwap) - .add("cpuShares", cpuShares) - .add("attachStdin", attachStdin) - .add("attachStdout", attachStdout) - .add("attachStderr", attachStderr) - .add("exposedPorts", exposedPorts) - .add("tty", tty) - .add("openStdin", openStdin) - .add("stdinOnce", stdinOnce) - .add("env", env) - .add("cmd", cmd) - .add("dns", dns) - .add("imageId", imageId) - .add("volumes", volumes) - .add("volumesFrom", volumesFrom) - .add("workingDir", workingDir) - .add("entrypoint", entrypoint) - .add("networkDisabled", networkDisabled) - .add("onBuild", onBuild) - .toString(); + @SerializedNames( + { "Hostname", "Domainname", "User", "Memory", "MemorySwap", "CpuShares", "AttachStdin", "AttachStdout", + "AttachStderr", "ExposedPorts", "Tty", "OpenStdin", "StdinOnce", "Env", "Cmd", "Dns", "Image", "Volumes", + "VolumesFrom", "WorkingDir", "Entrypoint", "NetworkDisabled", "OnBuild" }) + public static Config create(String hostname, String domainname, String user, int memory, int memorySwap, + int cpuShares, boolean attachStdin, boolean attachStdout, boolean attachStderr, Map<String, ?> exposedPorts, + boolean tty, boolean openStdin, boolean stdinOnce, List<String> env, List<String> cmd, List<String> dns, + String image, Map<String, ?> volumes, String volumesFrom, String workingDir, List<String> entrypoint, + boolean networkDisabled, List<String> onBuild) { + return new AutoValue_Config(hostname, domainname, user, memory, memorySwap, cpuShares, attachStdin, attachStdout, + attachStderr, copyOf(exposedPorts), tty, openStdin, stdinOnce, copyOf(env), copyOf(cmd), copyOf(dns), image, + copyOf(volumes), volumesFrom, workingDir, copyOf(entrypoint), networkDisabled, copyOf(onBuild)); } public static Builder builder() { @@ -283,7 +101,7 @@ public class Config { public static final class Builder { private String hostname; - private String domainName; + private String domainname; private String user; private int memory; private int memorySwap; @@ -298,7 +116,7 @@ public class Config { private boolean stdinOnce; private List<String> cmd = ImmutableList.of(); private List<String> dns = ImmutableList.of(); - private String imageId; + private String image; private Map<String, ?> volumes = ImmutableMap.of(); private String volumesFrom; private String workingDir; @@ -311,8 +129,8 @@ public class Config { return this; } - public Builder domainName(String domainName) { - this.domainName = domainName; + public Builder domainname(String domainname) { + this.domainname = domainname; return this; } @@ -386,8 +204,8 @@ public class Config { return this; } - public Builder imageId(String imageId) { - this.imageId = imageId; + public Builder image(String image) { + this.image = image; return this; } @@ -422,36 +240,19 @@ public class Config { } public Config build() { - return new Config(hostname, domainName, user, memory, memorySwap, cpuShares, attachStdin, attachStdout, - attachStderr, exposedPorts, tty, openStdin, stdinOnce, env, cmd, dns, imageId, volumes, - volumesFrom, workingDir, entrypoint, networkDisabled, onBuild); + return Config.create(hostname, domainname, user, memory, memorySwap, cpuShares, attachStdin, attachStdout, + attachStderr, exposedPorts, tty, openStdin, stdinOnce, env, cmd, dns, image, volumes, volumesFrom, + workingDir, entrypoint, networkDisabled, onBuild); } public Builder fromConfig(Config in) { - return this - .hostname(in.getHostname()) - .domainName(in.getDomainName()) - .user(in.getUser()) - .memory(in.getMemory()) - .memorySwap(in.getMemorySwap()) - .cpuShares(in.getCpuShares()) - .attachStdin(in.isAttachStdin()) - .attachStdout(in.isAttachStdout()) - .attachStderr(in.isAttachStderr()) - .exposedPorts(in.getExposedPorts()) - .tty(in.isTty()) - .openStdin(in.isOpenStdin()) - .stdinOnce(in.isStdinOnce()) - .env(in.getEnv()) - .cmd(in.getCmd()) - .dns(in.getDns()) - .imageId(in.getImageId()) - .volumes(in.getVolumes()) - .volumesFrom(in.getVolumesFrom()) - .workingDir(in.getWorkingDir()) - .entrypoint(in.getEntrypoint()) - .networkDisabled(in.isNetworkDisabled()) - .onBuild(in.getOnBuild()); + return hostname(in.hostname()).domainname(in.domainname()).user(in.user()).memory(in.memory()) + .memorySwap(in.memorySwap()).cpuShares(in.cpuShares()).attachStdin(in.attachStdin()) + .attachStdout(in.attachStdout()).attachStderr(in.attachStderr()).exposedPorts(in.exposedPorts()) + .tty(in.tty()).openStdin(in.openStdin()).stdinOnce(in.stdinOnce()).env(in.env()).cmd(in.cmd()) + .dns(in.dns()).image(in.image()).volumes(in.volumes()).volumesFrom(in.volumesFrom()) + .workingDir(in.workingDir()).entrypoint(in.entrypoint()).networkDisabled(in.networkDisabled()) + .onBuild(in.onBuild()); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/domain/Container.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/domain/Container.java b/docker/src/main/java/org/jclouds/docker/domain/Container.java index 2752529..b06c3a5 100644 --- a/docker/src/main/java/org/jclouds/docker/domain/Container.java +++ b/docker/src/main/java/org/jclouds/docker/domain/Container.java @@ -16,221 +16,69 @@ */ package org.jclouds.docker.domain; -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.gson.annotations.SerializedName; -import org.jclouds.javax.annotation.Nullable; +import static org.jclouds.docker.internal.NullSafeCopies.copyOf; -import java.beans.ConstructorProperties; import java.util.List; import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; - -public class Container { - - @SerializedName("Id") - private final String id; - @SerializedName("Name") - private final String name; - @SerializedName("Created") - private final String created; - @SerializedName("Path") - private final String path; - @SerializedName("Args") - private final String[] args; - @SerializedName("Config") - private final Config containerConfig; - @SerializedName("State") - private final State state; - @SerializedName("Image") - private final String image; - @SerializedName("NetworkSettings") - private final NetworkSettings networkSettings; - @SerializedName("ResolvConfPath") - private final String resolvConfPath; - @SerializedName("Driver") - private final String driver; - @SerializedName("ExecDriver") - private final String execDriver; - @SerializedName("Volumes") - private final Map<String, String> volumes; - @SerializedName("VolumesRW") - private final Map<String, Boolean> volumesRW; - @SerializedName("Command") - private final String command; - @SerializedName("Status") - private final String status; - @SerializedName("HostConfig") - private final HostConfig hostConfig; - @SerializedName("Ports") - private final List<Port> ports; - @SerializedName("HostnamePath") - private final String hostnamePath; - - @ConstructorProperties({ "Id", "Name", "Created", "Path", "Args", "Config", "State", "Image", "NetworkSettings", - "ResolvConfPath", "Driver", "ExecDriver", "Volumes", "VolumesRW", "Command", "Status", "HostConfig", - "Ports", "HostnamePath" }) - protected Container(String id, @Nullable String name, @Nullable String created, @Nullable String path, @Nullable String[] args, - @Nullable Config containerConfig, @Nullable State state, @Nullable String image, @Nullable NetworkSettings networkSettings, - @Nullable String resolvConfPath, @Nullable String driver, @Nullable String execDriver, @Nullable Map<String, String> volumes, - @Nullable Map<String, Boolean> volumesRW, @Nullable String command, @Nullable String status, - @Nullable HostConfig hostConfig, @Nullable List<Port> ports, @Nullable String hostnamePath) { - this.id = checkNotNull(id, "id"); - this.name = name; - this.created = created; - this.path = path; - this.args = args; - this.containerConfig = containerConfig; - this.state = state; - this.image = image; - this.networkSettings = networkSettings; - this.resolvConfPath = resolvConfPath; - this.driver = driver; - this.execDriver = execDriver; - this.volumes = volumes != null ? ImmutableMap.copyOf(volumes) : ImmutableMap.<String, String>of(); - this.volumesRW = volumesRW != null ? ImmutableMap.copyOf(volumesRW) : ImmutableMap.<String, Boolean>of(); - this.command = command; - this.status = status; - this.hostConfig = hostConfig; - this.ports = ports != null ? ImmutableList.copyOf(ports) : ImmutableList.<Port>of(); - this.hostnamePath = hostnamePath; - } +import org.jclouds.javax.annotation.Nullable; +import org.jclouds.json.SerializedNames; - public String getId() { - return id; - } +import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; - public String getName() { - return name; - } +@AutoValue +public abstract class Container { + public abstract String id(); - public String getCreated() { - return created; - } + @Nullable public abstract String name(); - public String getPath() { - return path; - } + @Nullable public abstract String created(); - public String[] getArgs() { - return args; - } + @Nullable public abstract String path(); - public Config getContainerConfig() { - return containerConfig; - } + public abstract List<String> args(); - public State getState() { - return state; - } + @Nullable public abstract Config config(); - public String getImage() { - return image; - } + @Nullable public abstract State state(); - public NetworkSettings getNetworkSettings() { - return networkSettings; - } + @Nullable public abstract String image(); - public String getResolvConfPath() { - return resolvConfPath; - } + @Nullable public abstract NetworkSettings networkSettings(); - public String getDriver() { - return driver; - } + @Nullable public abstract String resolvConfPath(); - public String getExecDriver() { - return execDriver; - } + @Nullable public abstract String driver(); - public Map<String, String> getVolumes() { - return volumes; - } - - public Map<String, Boolean> getvolumesRW() { - return volumesRW; - } + @Nullable public abstract String execDriver(); - public String getCommand() { - return command; - } + public abstract Map<String, String> volumes(); - public String getStatus() { - return status; - } + public abstract Map<String, Boolean> volumesRW(); - public HostConfig getHostConfig() { - return hostConfig; - } + @Nullable public abstract String command(); - public List<Port> getPorts() { - return ports; - } + @Nullable public abstract String status(); - public String getHostnamePath() { - return hostnamePath; - } + @Nullable public abstract HostConfig hostConfig(); - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Container that = (Container) o; - - return Objects.equal(this.id, that.id) && - Objects.equal(this.name, that.name) && - Objects.equal(this.created, that.created) && - Objects.equal(this.path, that.path) && - Objects.equal(this.args, that.args) && - Objects.equal(this.containerConfig, that.containerConfig) && - Objects.equal(this.state, that.state) && - Objects.equal(this.image, that.image) && - Objects.equal(this.networkSettings, that.networkSettings) && - Objects.equal(this.resolvConfPath, that.resolvConfPath) && - Objects.equal(this.driver, that.driver) && - Objects.equal(this.execDriver, that.execDriver) && - Objects.equal(this.volumes, that.volumes) && - Objects.equal(this.volumesRW, that.volumesRW) && - Objects.equal(this.command, that.command) && - Objects.equal(this.status, that.status) && - Objects.equal(this.hostConfig, that.hostConfig) && - Objects.equal(this.ports, that.ports) && - Objects.equal(this.hostnamePath, that.hostnamePath); - } + public abstract List<Port> ports(); - @Override - public int hashCode() { - return Objects.hashCode(id, name, created, path, args, containerConfig, state, image, networkSettings, resolvConfPath, - driver, execDriver, volumes, volumesRW, command, status, hostConfig, ports, hostnamePath); - } + @Nullable public abstract String hostnamePath(); - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("id", id) - .add("name", name) - .add("created", created) - .add("path", path) - .add("args", args) - .add("containerConfig", containerConfig) - .add("state", state) - .add("image", image) - .add("networkSettings", networkSettings) - .add("resolvConfPath", resolvConfPath) - .add("driver", driver) - .add("execDriver", execDriver) - .add("volumes", volumes) - .add("volumesRW", volumesRW) - .add("command", command) - .add("status", status) - .add("hostConfig", hostConfig) - .add("ports", ports) - .add("hostnamePath", hostnamePath) - .toString(); + @SerializedNames( + { "Id", "Name", "Created", "Path", "Args", "Config", "State", "Image", "NetworkSettings", "ResolvConfPath", + "Driver", "ExecDriver", "Volumes", "VolumesRW", "Command", "Status", "HostConfig", "Ports", + "HostnamePath" }) + public static Container create(String id, String name, String created, String path, List<String> args, Config config, + State state, String image, NetworkSettings networkSettings, String resolvConfPath, String driver, + String execDriver, Map<String, String> volumes, Map<String, Boolean> volumesRW, String command, String status, + HostConfig hostConfig, List<Port> ports, String hostnamePath) { + return new AutoValue_Container(id, name, created, path, copyOf(args), config, state, image, networkSettings, + resolvConfPath, driver, execDriver, copyOf(volumes), copyOf(volumesRW), command, status, hostConfig, + copyOf(ports), hostnamePath); } public static Builder builder() { @@ -247,8 +95,8 @@ public class Container { private String name; private String created; private String path; - private String[] args; - private Config containerConfig; + private List<String> args; + private Config config; private State state; private String image; private NetworkSettings networkSettings; @@ -283,13 +131,13 @@ public class Container { return this; } - public Builder args(String[] args) { + public Builder args(List<String> args) { this.args = args; return this; } - public Builder containerConfig(Config containerConfig) { - this.containerConfig = containerConfig; + public Builder config(Config config) { + this.config = config; return this; } @@ -359,31 +207,16 @@ public class Container { } public Container build() { - return new Container(id, name, created, path, args, containerConfig, state, image, networkSettings, resolvConfPath, + return Container.create(id, name, created, path, args, config, state, image, networkSettings, resolvConfPath, driver, execDriver, volumes, volumesRW, command, status, hostConfig, ports, hostnamePath); } public Builder fromContainer(Container in) { - return this - .id(in.getId()) - .name(in.getName()) - .created(in.getCreated()) - .path(in.getPath()) - .args(in.getArgs()) - .containerConfig(in.getContainerConfig()) - .state(in.getState()) - .image(in.getImage()) - .networkSettings(in.getNetworkSettings()) - .resolvConfPath(in.getResolvConfPath()) - .driver(in.getDriver()) - .execDriver(in.getExecDriver()) - .volumes(in.getVolumes()) - .volumesRW(in.getvolumesRW()) - .command(in.getCommand()) - .status(in.getStatus()) - .hostConfig(in.getHostConfig()) - .ports(in.getPorts()) - .hostnamePath(in.getHostnamePath()); + return this.id(in.id()).name(in.name()).created(in.created()).path(in.path()).args(in.args()) + .config(in.config()).state(in.state()).image(in.image()).networkSettings(in.networkSettings()) + .resolvConfPath(in.resolvConfPath()).driver(in.driver()).execDriver(in.execDriver()) + .volumes(in.volumes()).volumesRW(in.volumesRW()).command(in.command()).status(in.status()) + .hostConfig(in.hostConfig()).ports(in.ports()).hostnamePath(in.hostnamePath()); } } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/domain/ExposedPorts.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/domain/ExposedPorts.java b/docker/src/main/java/org/jclouds/docker/domain/ExposedPorts.java index b7a831a..413c84f 100644 --- a/docker/src/main/java/org/jclouds/docker/domain/ExposedPorts.java +++ b/docker/src/main/java/org/jclouds/docker/domain/ExposedPorts.java @@ -16,91 +16,22 @@ */ package org.jclouds.docker.domain; -import static com.google.common.base.Preconditions.checkNotNull; -import java.beans.ConstructorProperties; -import java.util.Set; +import static org.jclouds.docker.internal.NullSafeCopies.copyOf; -import org.jclouds.javax.annotation.Nullable; +import java.util.List; -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableSet; -import com.google.gson.annotations.SerializedName; +import org.jclouds.json.SerializedNames; -public class ExposedPorts { +import com.google.auto.value.AutoValue; - @SerializedName("PortAndProtocol") - private final String portAndProtocol; - @SerializedName("HostPorts") - private final Set<String> hostPorts; +@AutoValue +public abstract class ExposedPorts { + public abstract String portAndProtocol(); - @ConstructorProperties({ "PortAndProtocol", "HostPorts" }) - protected ExposedPorts(String portAndProtocol, @Nullable Set<String> hostPorts) { - this.portAndProtocol = checkNotNull(portAndProtocol, "portAndProtocol"); - this.hostPorts = hostPorts != null ? ImmutableSet.copyOf(hostPorts) : ImmutableSet.<String> of(); - } - - public String getPortAndProtocol() { - return portAndProtocol; - } - - public Set<String> getHostPorts() { - return hostPorts; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - ExposedPorts that = (ExposedPorts) o; - - return Objects.equal(this.portAndProtocol, that.portAndProtocol) && - Objects.equal(this.hostPorts, that.hostPorts); - } - - @Override - public int hashCode() { - return Objects.hashCode(portAndProtocol, hostPorts); - } - - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("portAndProtocol", portAndProtocol) - .add("hostPorts", hostPorts) - .toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromExposedPorts(this); - } - - public static final class Builder { - - private String portAndProtocol; - private Set<String> hostPorts = ImmutableSet.of(); - - public Builder portAndProtocol(String portAndProtocol) { - this.portAndProtocol = portAndProtocol; - return this; - } - - public Builder hostPorts(Set<String> hostPorts) { - this.hostPorts = ImmutableSet.copyOf(checkNotNull(hostPorts, "hostPorts")); - return this; - } - - public ExposedPorts build() { - return new ExposedPorts(portAndProtocol, hostPorts); - } + public abstract List<String> hostPorts(); - public Builder fromExposedPorts(ExposedPorts in) { - return this.portAndProtocol(in.getPortAndProtocol()) - .hostPorts(in.getHostPorts()); - } + @SerializedNames({ "PortAndProtocol", "HostPorts" }) + public static ExposedPorts create(String portAndProtocol, List<String> hostPorts) { + return new AutoValue_ExposedPorts(portAndProtocol, copyOf(hostPorts)); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/domain/HostConfig.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/domain/HostConfig.java b/docker/src/main/java/org/jclouds/docker/domain/HostConfig.java index 275961f..757157c 100644 --- a/docker/src/main/java/org/jclouds/docker/domain/HostConfig.java +++ b/docker/src/main/java/org/jclouds/docker/domain/HostConfig.java @@ -17,136 +17,47 @@ package org.jclouds.docker.domain; import static com.google.common.base.Preconditions.checkNotNull; -import java.beans.ConstructorProperties; +import static org.jclouds.docker.internal.NullSafeCopies.copyOf; + import java.util.List; import java.util.Map; import org.jclouds.javax.annotation.Nullable; +import org.jclouds.json.SerializedNames; -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; +import com.google.auto.value.AutoValue; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.google.gson.annotations.SerializedName; - -public class HostConfig { - - @SerializedName("ContainerIDFile") - private final String containerIDFile; - @SerializedName("Binds") - private final List<String> binds; - @SerializedName("LxcConf") - private final Map<String, String> lxcConf; - @SerializedName("Privileged") - private final boolean privileged; - @SerializedName("Dns") - private final String dns; - @SerializedName("DnsSearch") - private final String dnsSearch; - @SerializedName("PortBindings") - private final Map<String, List<Map<String, String>>> portBindings; - @SerializedName("Links") - private final List<String> links; - @SerializedName("PublishAllPorts") - private final boolean publishAllPorts; - @SerializedName("VolumesFrom") - private final List<String> volumesFrom; - - @ConstructorProperties({ "ContainerIDFile", "Binds", "LxcConf", "Privileged", "Dns", "DnsSearch", "PortBindings", - "Links", "PublishAllPorts", "VolumesFrom" }) - protected HostConfig(@Nullable String containerIDFile, @Nullable List<String> binds, - Map<String, String> lxcConf, boolean privileged, @Nullable String dns, - @Nullable String dnsSearch, @Nullable Map<String, List<Map<String, String>>> portBindings, - @Nullable List<String> links, boolean publishAllPorts, @Nullable List<String> volumesFrom) { - this.containerIDFile = containerIDFile; - this.binds = binds != null ? ImmutableList.copyOf(binds) : ImmutableList.<String> of(); - this.lxcConf = lxcConf != null ? ImmutableMap.copyOf(lxcConf) : ImmutableMap.<String, String> of(); - this.privileged = checkNotNull(privileged, "privileged"); - this.dns = dns; - this.dnsSearch = dnsSearch; - this.portBindings = portBindings != null ? ImmutableMap.copyOf(portBindings) : ImmutableMap.<String, List<Map<String, String>>> of(); - this.links = links != null ? ImmutableList.copyOf(links) : ImmutableList.<String> of(); - this.publishAllPorts = checkNotNull(publishAllPorts, "publishAllPorts"); - this.volumesFrom = volumesFrom != null ? ImmutableList.copyOf(volumesFrom) : ImmutableList.<String> of(); - } - - public String getContainerIDFile() { - return containerIDFile; - } - - public List<String> getBinds() { - return binds; - } - public Map<String, String> getLxcConf() { - return lxcConf; - } +@AutoValue +public abstract class HostConfig { + @Nullable public abstract String containerIDFile(); - public boolean isPrivileged() { - return privileged; - } + public abstract List<String> binds(); - public String getDns() { return dns; } + public abstract Map<String, String> lxcConf(); - public String getDnsSearch() { return dnsSearch; } + public abstract boolean privileged(); - public Map<String, List<Map<String, String>>> getPortBindings() { - return portBindings; - } + @Nullable public abstract String dns(); - @Nullable - public List<String> getLinks() { - return links; - } + @Nullable public abstract String dnsSearch(); - public boolean isPublishAllPorts() { - return publishAllPorts; - } + public abstract Map<String, List<Map<String, String>>> portBindings(); - public List<String> getVolumesFrom() { - return volumesFrom; - } + public abstract List<String> links(); - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - HostConfig that = (HostConfig) o; - - return Objects.equal(this.containerIDFile, that.containerIDFile) && - Objects.equal(this.binds, that.binds) && - Objects.equal(this.lxcConf, that.lxcConf) && - Objects.equal(this.privileged, that.privileged) && - Objects.equal(this.dns, that.dns) && - Objects.equal(this.dnsSearch, that.dnsSearch) && - Objects.equal(this.portBindings, that.portBindings) && - Objects.equal(this.links, that.links) && - Objects.equal(this.publishAllPorts, that.publishAllPorts) && - Objects.equal(this.volumesFrom, that.volumesFrom); - } + public abstract boolean publishAllPorts(); - @Override - public int hashCode() { - return Objects.hashCode(containerIDFile, binds, lxcConf, privileged, dns, dnsSearch, portBindings, links, - publishAllPorts, volumesFrom); - } + public abstract List<String> volumesFrom(); - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("containerIDFile", containerIDFile) - .add("binds", binds) - .add("lxcConf", lxcConf) - .add("privileged", privileged) - .add("dns", dns) - .add("dnsSearch", dnsSearch) - .add("portBindings", portBindings) - .add("links", links) - .add("publishAllPorts", publishAllPorts) - .add("volumesFrom", volumesFrom) - .toString(); + @SerializedNames({ "ContainerIDFile", "Binds", "LxcConf", "Privileged", "Dns", "DnsSearch", "PortBindings", + "Links", "PublishAllPorts", "VolumesFrom" }) + public static HostConfig create(String containerIDFile, List<String> binds, Map<String, String> lxcConf, + boolean privileged, String dns, String dnsSearch, Map<String, List<Map<String, String>>> portBindings, + List<String> links, boolean publishAllPorts, List<String> volumesFrom) { + return new AutoValue_HostConfig(containerIDFile, copyOf(binds), copyOf(lxcConf), privileged, dns, dnsSearch, + copyOf(portBindings), copyOf(links), publishAllPorts, copyOf(volumesFrom)); } public static Builder builder() { @@ -221,22 +132,14 @@ public class HostConfig { } public HostConfig build() { - return new HostConfig(containerIDFile, binds, lxcConf, privileged, dns, dnsSearch, portBindings, links, - publishAllPorts, volumesFrom); + return HostConfig.create(containerIDFile, binds, lxcConf, privileged, dns, dnsSearch, portBindings, links, + publishAllPorts, volumesFrom); } public Builder fromHostConfig(HostConfig in) { - return this - .containerIDFile(in.getContainerIDFile()) - .binds(in.getBinds()) - .lxcConf(in.getLxcConf()) - .privileged(in.isPrivileged()) - .dns(in.getDns()) - .dnsSearch(in.getDnsSearch()) - .links(in.getLinks()) - .portBindings(in.getPortBindings()) - .publishAllPorts(in.isPublishAllPorts()) - .volumesFrom(in.getVolumesFrom()); + return this.containerIDFile(in.containerIDFile()).binds(in.binds()).lxcConf(in.lxcConf()) + .privileged(in.privileged()).dns(in.dns()).dnsSearch(in.dnsSearch()).links(in.links()) + .portBindings(in.portBindings()).publishAllPorts(in.publishAllPorts()).volumesFrom(in.volumesFrom()); } } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/domain/Image.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/domain/Image.java b/docker/src/main/java/org/jclouds/docker/domain/Image.java index 186ece3..99b2594 100644 --- a/docker/src/main/java/org/jclouds/docker/domain/Image.java +++ b/docker/src/main/java/org/jclouds/docker/domain/Image.java @@ -16,224 +16,42 @@ */ package org.jclouds.docker.domain; -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableList; -import com.google.gson.annotations.SerializedName; -import org.jclouds.javax.annotation.Nullable; +import static org.jclouds.docker.internal.NullSafeCopies.copyOf; -import java.beans.ConstructorProperties; import java.util.List; -import static com.google.common.base.Preconditions.checkNotNull; - -public class Image { - - @SerializedName("Id") - private final String id; - @SerializedName("Parent") - private final String parent; - @SerializedName("Created") - private final String created; - @SerializedName("Container") - private final String container; - @SerializedName("DockerVersion") - private final String dockerVersion; - @SerializedName("Architecture") - private final String architecture; - @SerializedName("Os") - private final String os; - @SerializedName("Size") - private final long size; - @SerializedName("VirtualSize") - private final long virtualSize; - @SerializedName("RepoTags") - private final List<String> repoTags; - - @ConstructorProperties({ "Id", "Parent", "Created", "Container", "DockerVersion", "Architecture", "Os", "Size", - "VirtualSize", "RepoTags", "Architecture" }) - protected Image(String id, @Nullable String parent, @Nullable String created, @Nullable String container, - @Nullable String dockerVersion, @Nullable String architecture, @Nullable String os, long size, - @Nullable long virtualSize, @Nullable List<String> repoTags) { - this.id = checkNotNull(id, "id"); - this.parent = parent; - this.created = created; - this.container = container; - this.dockerVersion = dockerVersion; - this.architecture = architecture; - this.os = os; - this.size = size; - this.virtualSize = virtualSize; - this.repoTags = repoTags != null ? ImmutableList.copyOf(repoTags) : ImmutableList.<String> of(); - } - - public String getId() { - return id; - } - - public String getParent() { - return parent; - } - - public String getCreated() { - return created; - } - - public String getContainer() { - return container; - } - - public String getDockerVersion() { - return dockerVersion; - } - - public String getArchitecture() { - return architecture; - } - - public String getOs() { - return os; - } - - public long getSize() { - return size; - } - - public long getVirtualSize() { - return virtualSize; - } - - public List<String> getRepoTags() { - return repoTags; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Image that = (Image) o; - - return Objects.equal(this.id, that.id) && - Objects.equal(this.parent, that.parent) && - Objects.equal(this.created, that.created) && - Objects.equal(this.container, that.container) && - Objects.equal(this.dockerVersion, that.dockerVersion) && - Objects.equal(this.architecture, that.architecture) && - Objects.equal(this.os, that.os) && - Objects.equal(this.size, that.size) && - Objects.equal(this.virtualSize, that.virtualSize); - } - - @Override - public int hashCode() { - return Objects.hashCode(id, parent, created, container, dockerVersion, architecture, os, size, - virtualSize); - } - - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("id", id) - .add("parent", parent) - .add("created", created) - .add("container", container) - .add("dockerVersion", dockerVersion) - .add("architecture", architecture) - .add("os", os) - .add("size", size) - .add("virtualSize", virtualSize) - .add("repoTags", repoTags) - .toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromImage(this); - } - - public static final class Builder { - - private String id; - private String parent; - private String created; - private String container; - private String dockerVersion; - private String architecture; - private String os; - private long size; - private long virtualSize; - private List<String> repoTags = ImmutableList.of(); +import org.jclouds.javax.annotation.Nullable; +import org.jclouds.json.SerializedNames; - public Builder id(String id) { - this.id = id; - return this; - } +import com.google.auto.value.AutoValue; - public Builder parent(String parent) { - this.parent = parent; - return this; - } +@AutoValue +public abstract class Image { + public abstract String id(); - public Builder created(String created) { - this.created = created; - return this; - } + @Nullable public abstract String parent(); - public Builder container(String container) { - this.container = container; - return this; - } + @Nullable public abstract String created(); - public Builder dockerVersion(String dockerVersion) { - this.dockerVersion = dockerVersion; - return this; - } + @Nullable public abstract String container(); - public Builder architecture(String architecture) { - this.architecture = architecture; - return this; - } + @Nullable public abstract String dockerVersion(); - public Builder os(String os) { - this.os = os; - return this; - } + @Nullable public abstract String architecture(); - public Builder size(long size) { - this.size = size; - return this; - } + @Nullable public abstract String os(); - public Builder virtualSize(long virtualSize) { - this.virtualSize = virtualSize; - return this; - } + public abstract long size(); - public Builder repoTags(List<String> repoTags) { - this.repoTags = ImmutableList.copyOf(checkNotNull(repoTags, "repoTags")); - return this; - } + @Nullable public abstract long virtualSize(); - public Image build() { - return new Image(id, parent, created, container, dockerVersion, architecture, os, size, - virtualSize, repoTags); - } + public abstract List<String> repoTags(); - public Builder fromImage(Image in) { - return this - .id(in.getId()) - .parent(in.getParent()) - .created(in.getCreated()) - .container(in.getContainer()) - .dockerVersion(in.getDockerVersion()) - .architecture(in.getArchitecture()) - .os(in.getOs()) - .size(in.getSize()) - .virtualSize(in.getVirtualSize()); - //DO NOT add .repoTags(in.getRepoTags()); - } + @SerializedNames({ "Id", "Parent", "Created", "Container", "DockerVersion", "Architecture", "Os", "Size", + "VirtualSize", "RepoTags", "Architecture" }) + public static Image create(String id, String parent, String created, String container, String dockerVersion, + String architecture, String os, long size, long virtualSize, List<String> repoTags) { + return new AutoValue_Image(id, parent, created, container, dockerVersion, architecture, os, size, virtualSize, + copyOf(repoTags)); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/domain/NetworkSettings.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/domain/NetworkSettings.java b/docker/src/main/java/org/jclouds/docker/domain/NetworkSettings.java index 23f3fbe..f99bd7f 100644 --- a/docker/src/main/java/org/jclouds/docker/domain/NetworkSettings.java +++ b/docker/src/main/java/org/jclouds/docker/domain/NetworkSettings.java @@ -16,97 +16,36 @@ */ package org.jclouds.docker.domain; -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableMap; -import com.google.gson.annotations.SerializedName; -import org.jclouds.javax.annotation.Nullable; +import static com.google.common.base.Preconditions.checkNotNull; +import static org.jclouds.docker.internal.NullSafeCopies.copyOf; -import java.beans.ConstructorProperties; import java.util.List; import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; - -public class NetworkSettings { - - @SerializedName("IPAddress") - private final String ipAddress; - @SerializedName("IPPrefixLen") - private final int ipPrefixLen; - @SerializedName("Gateway") - private final String gateway; - @SerializedName("Bridge") - private final String bridge; - @SerializedName("PortMapping") - private final String portMapping; - @SerializedName("Ports") - private final Map<String, List<Map<String, String>>> ports; - - @ConstructorProperties({ "IPAddress", "IPPrefixLen", "Gateway", "Bridge", "PortMapping", "Ports" }) - protected NetworkSettings(String ipAddress, int ipPrefixLen, String gateway, String bridge, - @Nullable String portMapping, @Nullable Map<String, List<Map<String, String>>> ports) { - this.ipAddress = checkNotNull(ipAddress, "ipAddress"); - this.ipPrefixLen = checkNotNull(ipPrefixLen, "ipPrefixLen"); - this.gateway = checkNotNull(gateway, "gateway"); - this.bridge = checkNotNull(bridge, "bridge"); - this.portMapping = portMapping; - this.ports = ports != null ? ImmutableMap.copyOf(ports) : ImmutableMap.<String, List<Map<String, String>>> of(); - } - - public String getIpAddress() { - return ipAddress; - } - - public int getIpPrefixLen() { - return ipPrefixLen; - } - - public String getGateway() { - return gateway; - } +import org.jclouds.javax.annotation.Nullable; +import org.jclouds.json.SerializedNames; - public String getBridge() { - return bridge; - } +import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableMap; - public String getPortMapping() { - return portMapping; - } +@AutoValue +public abstract class NetworkSettings { + public abstract String ipAddress(); - public Map<String, List<Map<String, String>>> getPorts() { - return ports; - } + public abstract int ipPrefixLen(); - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + public abstract String gateway(); - NetworkSettings that = (NetworkSettings) o; + public abstract String bridge(); - return Objects.equal(this.ipAddress, that.ipAddress) && - Objects.equal(this.ipPrefixLen, that.ipPrefixLen) && - Objects.equal(this.gateway, that.gateway) && - Objects.equal(this.bridge, that.bridge) && - Objects.equal(this.portMapping, that.portMapping) && - Objects.equal(this.ports, that.ports); - } + @Nullable public abstract String portMapping(); - @Override - public int hashCode() { - return Objects.hashCode(ipAddress, ipPrefixLen, gateway, bridge, portMapping, ports); - } + public abstract Map<String, List<Map<String, String>>> ports(); - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("ipAddress", ipAddress) - .add("ipPrefixLen", ipPrefixLen) - .add("gateway", gateway) - .add("bridge", bridge) - .add("portMapping", portMapping) - .add("ports", ports) - .toString(); + @SerializedNames({ "IPAddress", "IPPrefixLen", "Gateway", "Bridge", "PortMapping", "Ports" }) + public static NetworkSettings create(String ipAddress, int ipPrefixLen, String gateway, String bridge, + String portMapping, Map<String, List<Map<String, String>>> ports) { + return new AutoValue_NetworkSettings(ipAddress, ipPrefixLen, gateway, bridge, portMapping, copyOf(ports)); } public static Builder builder() { @@ -157,19 +96,13 @@ public class NetworkSettings { } public NetworkSettings build() { - return new NetworkSettings(ipAddress, ipPrefixLen, gateway, bridge, portMapping, ports); + return NetworkSettings.create(ipAddress, ipPrefixLen, gateway, bridge, portMapping, ports); } public Builder fromNetworkSettings(NetworkSettings in) { - return this - .ipAddress(in.getIpAddress()) - .ipPrefixLen(in.getIpPrefixLen()) - .gateway(in.getGateway()) - .bridge(in.getBridge()) - .portMapping(in.getPortMapping()) - .ports(in.getPorts()); + return this.ipAddress(in.ipAddress()).ipPrefixLen(in.ipPrefixLen()).gateway(in.gateway()).bridge(in.bridge()) + .portMapping(in.portMapping()).ports(in.ports()); } - } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/domain/Port.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/domain/Port.java b/docker/src/main/java/org/jclouds/docker/domain/Port.java index b49dfa6..0522be1 100644 --- a/docker/src/main/java/org/jclouds/docker/domain/Port.java +++ b/docker/src/main/java/org/jclouds/docker/domain/Port.java @@ -16,73 +16,22 @@ */ package org.jclouds.docker.domain; -import com.google.common.base.Objects; -import com.google.gson.annotations.SerializedName; +import org.jclouds.json.SerializedNames; -import java.beans.ConstructorProperties; +import com.google.auto.value.AutoValue; -import static com.google.common.base.Preconditions.checkNotNull; +@AutoValue +public abstract class Port { + public abstract String ip(); -public class Port { + public abstract int privatePort(); - @SerializedName("PrivatePort") - private final int privatePort; - @SerializedName("PublicPort") - private final int publicPort; - @SerializedName("Type") - private final String type; - @SerializedName("IP") - private final String ip; + public abstract int publicPort(); - @ConstructorProperties({ "PrivatePort", "PublicPort", "Type", "IP" }) - protected Port(int privatePort, int publicPort, String type, String ip) { - this.privatePort = checkNotNull(privatePort, "privatePort"); - this.publicPort = checkNotNull(publicPort, "publicPort"); - this.type = checkNotNull(type, "type"); - this.ip = checkNotNull(ip, "ip"); - } - - public int getPrivatePort() { - return privatePort; - } - - public int getPublicPort() { - return publicPort; - } - - public String getType() { - return type; - } - - public String getIp() { - return ip; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Port that = (Port) o; - - return Objects.equal(this.privatePort, that.privatePort) && - Objects.equal(this.publicPort, that.publicPort) && - Objects.equal(this.type, that.type) && - Objects.equal(this.ip, that.ip); - } - - @Override - public int hashCode() { - return Objects.hashCode(privatePort, publicPort, type, ip); - } + public abstract String type(); - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("privatePort", privatePort) - .add("publicPort", publicPort) - .add("type", type) - .add("ip", ip) - .toString(); + @SerializedNames({ "IP", "PrivatePort", "PublicPort", "Type" }) + public static Port create(String ip, int privatePort, int publicPort, String type) { + return new AutoValue_Port(ip, privatePort, publicPort, type); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/domain/State.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/domain/State.java b/docker/src/main/java/org/jclouds/docker/domain/State.java index ac1ba85..c0a8586 100644 --- a/docker/src/main/java/org/jclouds/docker/domain/State.java +++ b/docker/src/main/java/org/jclouds/docker/domain/State.java @@ -16,151 +16,27 @@ */ package org.jclouds.docker.domain; -import static com.google.common.base.Preconditions.checkNotNull; -import java.beans.ConstructorProperties; +import org.jclouds.json.SerializedNames; -import com.google.common.base.Objects; -import com.google.gson.annotations.SerializedName; +import com.google.auto.value.AutoValue; -public class State { - @SerializedName("Pid") - private final int pid; - @SerializedName("Running") - private final boolean running; - @SerializedName("ExitCode") - private final int exitCode; - @SerializedName("StartedAt") - private final String startedAt; - @SerializedName("FinishedAt") - private final String finishedAt; - @SerializedName("Ghost") - private final boolean ghost; +@AutoValue +public abstract class State { + public abstract int pid(); - @ConstructorProperties({ "Pid", "Running", "ExitCode", "StartedAt", "FinishedAt", "Ghost" }) - protected State(int pid, boolean running, int exitCode, String startedAt, String finishedAt, boolean ghost) { - this.pid = checkNotNull(pid, "pid"); - this.running = checkNotNull(running, "running"); - this.exitCode = checkNotNull(exitCode, "exitCode"); - this.startedAt = checkNotNull(startedAt, "startedAt"); - this.finishedAt = checkNotNull(finishedAt, "finishedAt"); - this.ghost = checkNotNull(ghost, "ghost"); - } - - public int getPid() { - return pid; - } - - public boolean isRunning() { - return running; - } - - public int getExitCode() { - return exitCode; - } - - public String getStartedAt() { - return startedAt; - } - - public String getFinishedAt() { - return finishedAt; - } - - public boolean isGhost() { - return ghost; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - State that = (State) o; - - return Objects.equal(this.pid, that.pid) && - Objects.equal(this.running, that.running) && - Objects.equal(this.exitCode, that.exitCode) && - Objects.equal(this.startedAt, that.startedAt) && - Objects.equal(this.finishedAt, that.finishedAt) && - Objects.equal(this.ghost, that.ghost); - } - - @Override - public int hashCode() { - return Objects.hashCode(pid, running, exitCode, startedAt, finishedAt, ghost); - } - - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("pid", pid) - .add("running", running) - .add("exitCode", exitCode) - .add("startedAt", startedAt) - .add("finishedAt", finishedAt) - .add("ghost", ghost) - .toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromState(this); - } - - public static final class Builder { - - private int pid; - private boolean running; - private int exitCode; - private String startedAt; - private String finishedAt; - private boolean ghost; - - public Builder pid(int pid) { - this.pid = pid; - return this; - } - - public Builder running(boolean running) { - this.running = running; - return this; - } - - public Builder exitCode(int exitCode) { - this.exitCode = exitCode; - return this; - } + public abstract boolean running(); - public Builder startedAt(String startedAt) { - this.startedAt = startedAt; - return this; - } + public abstract int exitCode(); - public Builder finishedAt(String finishedAt) { - this.finishedAt = finishedAt; - return this; - } + public abstract String startedAt(); - public Builder ghost(boolean ghost) { - this.ghost = ghost; - return this; - } + public abstract String finishedAt(); - public State build() { - return new State(pid, running, exitCode, startedAt, finishedAt, ghost); - } + public abstract boolean ghost(); - public Builder fromState(State in) { - return this - .pid(in.getPid()) - .running(in.isRunning()) - .exitCode(in.getExitCode()) - .startedAt(in.getStartedAt()) - .finishedAt(in.getFinishedAt()) - .ghost(in.isGhost()); - } + @SerializedNames({ "Pid", "Running", "ExitCode", "StartedAt", "FinishedAt", "Ghost" }) + public static State create(int pid, boolean running, int exitCode, String startedAt, String finishedAt, + boolean ghost) { + return new AutoValue_State(pid, running, exitCode, startedAt, finishedAt, ghost); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/domain/Version.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/domain/Version.java b/docker/src/main/java/org/jclouds/docker/domain/Version.java index 445a225..ee0ba19 100644 --- a/docker/src/main/java/org/jclouds/docker/domain/Version.java +++ b/docker/src/main/java/org/jclouds/docker/domain/Version.java @@ -16,151 +16,27 @@ */ package org.jclouds.docker.domain; -import static com.google.common.base.Preconditions.checkNotNull; -import java.beans.ConstructorProperties; +import org.jclouds.json.SerializedNames; -import com.google.common.base.Objects; -import com.google.gson.annotations.SerializedName; +import com.google.auto.value.AutoValue; -public class Version { - @SerializedName("Arch") - private final String arch; - @SerializedName("GitCommit") - private final String gitCommit; - @SerializedName("GoVersion") - private final String goVersion; - @SerializedName("KernelVersion") - private final String kernelVersion; - @SerializedName("Os") - private final String os; - @SerializedName("Version") - private final String version; +@AutoValue +public abstract class Version { + public abstract String arch(); - @ConstructorProperties({ "Arch", "GitCommit", "GoVersion", "KernelVersion", "Os", "Version" }) - protected Version(String arch, String gitCommit, String goVersion, String kernelVersion, String os, String version) { - this.arch = checkNotNull(arch, "arch"); - this.gitCommit = checkNotNull(gitCommit, "gitCommit"); - this.goVersion = checkNotNull(goVersion, "goVersion"); - this.kernelVersion = checkNotNull(kernelVersion, "kernelVersion"); - this.os = checkNotNull(os, "os"); - this.version = checkNotNull(version, "version"); - } - - public String getArch() { - return arch; - } - - public String getGitCommit() { - return gitCommit; - } - - public String getGoVersion() { - return goVersion; - } - - public String getKernelVersion() { - return kernelVersion; - } - - public String getOs() { - return os; - } - - public String getVersion() { - return version; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Version that = (Version) o; - - return Objects.equal(this.arch, that.arch) && - Objects.equal(this.gitCommit, that.gitCommit) && - Objects.equal(this.goVersion, that.goVersion) && - Objects.equal(this.kernelVersion, that.kernelVersion) && - Objects.equal(this.os, that.os) && - Objects.equal(this.version, that.version); - } - - @Override - public int hashCode() { - return Objects.hashCode(arch, gitCommit, goVersion, kernelVersion, os, version); - } - - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("arch", arch) - .add("gitCommit", gitCommit) - .add("goVersion", goVersion) - .add("kernelVersion", kernelVersion) - .add("os", os) - .add("version", version) - .toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromVersion(this); - } - - public static final class Builder { - - private String arch; - private String gitCommit; - private String goVersion; - private String kernelVersion; - private String os; - private String version; - - public Builder arch(String arch) { - this.arch = arch; - return this; - } - - public Builder gitCommit(String gitCommit) { - this.gitCommit = gitCommit; - return this; - } - - public Builder goVersion(String goVersion) { - this.goVersion = goVersion; - return this; - } + public abstract String gitCommit(); - public Builder kernelVersion(String kernelVersion) { - this.kernelVersion = kernelVersion; - return this; - } + public abstract String goVersion(); - public Builder os(String os) { - this.os = os; - return this; - } + public abstract String kernelVersion(); - public Builder version(String version) { - this.version = version; - return this; - } + public abstract String os(); - public Version build() { - return new Version(arch, gitCommit, goVersion, kernelVersion, os, version); - } + public abstract String version(); - public Builder fromVersion(Version in) { - return this - .arch(in.getArch()) - .gitCommit(in.getGitCommit()) - .goVersion(in.getGoVersion()) - .kernelVersion(in.getKernelVersion()) - .os(in.getOs()) - .version(in.getVersion()); - } + @SerializedNames({ "Arch", "GitCommit", "GoVersion", "KernelVersion", "Os", "Version" }) + public static Version create(String arch, String gitCommit, String goVersion, String kernelVersion, String os, + String version) { + return new AutoValue_Version(arch, gitCommit, goVersion, kernelVersion, os, version); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/main/java/org/jclouds/docker/internal/NullSafeCopies.java ---------------------------------------------------------------------- diff --git a/docker/src/main/java/org/jclouds/docker/internal/NullSafeCopies.java b/docker/src/main/java/org/jclouds/docker/internal/NullSafeCopies.java new file mode 100644 index 0000000..c02d449 --- /dev/null +++ b/docker/src/main/java/org/jclouds/docker/internal/NullSafeCopies.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.docker.internal; + +import java.util.List; +import java.util.Map; + +import org.jclouds.javax.annotation.Nullable; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + +public class NullSafeCopies { + + public static <K, V> Map<K, V> copyOf(@Nullable Map<K, V> map) { + return map != null ? ImmutableMap.copyOf(map) : ImmutableMap.<K, V>of(); + } + + public static <E> List<E> copyOf(@Nullable List<E> list) { + return list != null ? ImmutableList.copyOf(list) : ImmutableList.<E>of(); + } + + private NullSafeCopies() { + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6cfb4351/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java ---------------------------------------------------------------------- diff --git a/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java b/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java index faee982..b64dace 100644 --- a/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java +++ b/docker/src/test/java/org/jclouds/docker/compute/DockerComputeServiceAdapterLiveTest.java @@ -61,7 +61,7 @@ public class DockerComputeServiceAdapterLiveTest extends BaseDockerApiLiveTest { .osDescriptionMatches("jclouds/default:latest").build(); guest = adapter.createNodeWithGroupEncodedIntoName(group, name, template); - assertEquals(guest.getNodeId(), guest.getNode().getId() + ""); + assertEquals(guest.getNodeId(), guest.getNode().id() + ""); } public void testListHardwareProfiles() { @@ -76,7 +76,7 @@ public class DockerComputeServiceAdapterLiveTest extends BaseDockerApiLiveTest { @AfterGroups(groups = "live") protected void tearDown() { if (guest != null) { - adapter.destroyNode(guest.getNode().getId() + ""); + adapter.destroyNode(guest.getNode().id() + ""); } super.tearDown(); }
