diff --git a/pom.xml b/pom.xml index 640885610..ddf8b446a 100644 --- a/pom.xml +++ b/pom.xml @@ -462,6 +462,18 @@ org.eclipse.virgo.bundlor org.eclipse.virgo.bundlor.maven ${maven-bundlor-plugin.version} + + + org.eclipse.virgo.bundlor + org.eclipse.virgo.bundlor + 1.1.2.RELEASE + + + org.eclipse.virgo.bundlor + org.eclipse.virgo.bundlor.blint + 1.1.2.RELEASE + + bundlor diff --git a/src/main/java/com/github/dockerjava/api/command/SearchImagesCmd.java b/src/main/java/com/github/dockerjava/api/command/SearchImagesCmd.java index 2bc87cc73..8dc38ee3e 100644 --- a/src/main/java/com/github/dockerjava/api/command/SearchImagesCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/SearchImagesCmd.java @@ -18,8 +18,10 @@ public interface SearchImagesCmd extends SyncDockerCmd> { @CheckForNull String getTerm(); + Integer getLimit(); SearchImagesCmd withTerm(@Nonnull String term); + SearchImagesCmd withLimit(@Nonnull Integer limit); interface Exec extends DockerCmdSyncExec> { } diff --git a/src/main/java/com/github/dockerjava/core/command/SearchImagesCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/SearchImagesCmdImpl.java index 342a7fbd2..5eb70b652 100644 --- a/src/main/java/com/github/dockerjava/core/command/SearchImagesCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/SearchImagesCmdImpl.java @@ -1,11 +1,13 @@ package com.github.dockerjava.core.command; +import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import java.util.List; import com.github.dockerjava.api.command.SearchImagesCmd; import com.github.dockerjava.api.model.SearchItem; +import javax.annotation.Nonnull; /** * Search images @@ -15,8 +17,10 @@ * */ public class SearchImagesCmdImpl extends AbstrDockerCmd> implements SearchImagesCmd { - + private static final int MIN_LIMIT = 1; + private static final int MAX_LIMIT = 100; private String term; + private Integer limit; public SearchImagesCmdImpl(SearchImagesCmd.Exec exec, String term) { super(exec); @@ -35,4 +39,17 @@ public SearchImagesCmd withTerm(String term) { return this; } + @Override + public Integer getLimit() { + return limit; + } + + @Override + public SearchImagesCmd withLimit(@Nonnull Integer limit) { + String errorMessage = String.format("Limit %s is outside the range of [%s, %s]", limit, MIN_LIMIT, MAX_LIMIT); + checkArgument(limit <= MAX_LIMIT, errorMessage); + checkArgument(limit >= MIN_LIMIT, errorMessage); + this.limit = limit; + return this; + } } diff --git a/src/main/java/com/github/dockerjava/jaxrs/SearchImagesCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/SearchImagesCmdExec.java index 90fdd80cd..4bbbe0b0d 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/SearchImagesCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/SearchImagesCmdExec.java @@ -1,18 +1,15 @@ package com.github.dockerjava.jaxrs; +import com.github.dockerjava.api.command.SearchImagesCmd; +import com.github.dockerjava.api.model.SearchItem; +import com.github.dockerjava.core.DockerClientConfig; import java.util.List; - import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.GenericType; import javax.ws.rs.core.MediaType; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.github.dockerjava.api.command.SearchImagesCmd; -import com.github.dockerjava.api.model.SearchItem; -import com.github.dockerjava.core.DockerClientConfig; - public class SearchImagesCmdExec extends AbstrSyncDockerCmdExec> implements SearchImagesCmd.Exec { @@ -24,7 +21,19 @@ public SearchImagesCmdExec(WebTarget baseResource, DockerClientConfig dockerClie @Override protected List execute(SearchImagesCmd command) { - WebTarget webResource = getBaseResource().path("/images/search").queryParam("term", command.getTerm()); + WebTarget webResource = null; + + Integer limit = command.getLimit(); + if (limit == null) { + webResource = getBaseResource() + .path("/images/search") + .queryParam("term", command.getTerm()); + } else { + webResource = getBaseResource() + .path("/images/search") + .queryParam("term", command.getTerm()) + .queryParam("limit", command.getLimit()); + } LOGGER.trace("GET: {}", webResource); return webResource.request().accept(MediaType.APPLICATION_JSON).get(new GenericType>() {