diff --git a/pom.xml b/pom.xml index d8f1fbac6..575fd95b1 100644 --- a/pom.xml +++ b/pom.xml @@ -50,14 +50,14 @@ 1.6.1 - 2.11 + 1.18 1.9 2.3.3 4.2.5 1.5 - 1.8 + 1.8 2.3 2.6 1.7.5 @@ -87,16 +87,44 @@ jackson-jaxrs-json-provider ${jackson-jaxrs.version} - - - - - - - org.glassfish.jersey.core - jersey-client - ${jersey.version} - + + + + + + com.sun.jersey + jersey-core + ${jersey.version} + + + com.sun.jersey + jersey-client + ${jersey.version} + + + + com.sun.jersey.contribs + jersey-multipart + ${jersey.version} + + + com.sun.jersey.contribs + jersey-apache-client4 + ${jersey-apache-client4.version} + + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + org.apache.commons @@ -138,10 +166,10 @@ - com.google.guava - guava - ${guava.version} - + com.google.guava + guava + ${guava.version} + @@ -240,6 +268,15 @@ ISO-8859-1 ${jdk.debug} ${jdk.optimize} + + + + **/jaxrs2/*.java + **/jaxrs2/util/*.java + + + **/jaxrs2/*.java + @@ -338,6 +375,7 @@ release + org.apache.maven.plugins diff --git a/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java index ed16a727c..d41df1cf2 100644 --- a/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java @@ -113,6 +113,20 @@ public interface StartContainerCmd extends DockerCmd { * "CHOWN" prevents the container from changing the owner of any files. */ public StartContainerCmd withCapDrop(String... capDrop); + + /** + * Perform the start using the existing host configuration for the container. + * + * @param withExisting true if the container's existing configuration should be used. + * + * @return + */ + public StartContainerCmd withExistingConfig(boolean withExisting); + + /** + * @return true if the container should use its existing configuration. + */ + public boolean useExistingConfig(); /** * @throws NotFoundException diff --git a/src/main/java/com/github/dockerjava/core/command/CopyFileFromContainerCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/CopyFileFromContainerCmdImpl.java index 929b6bf5f..04033906f 100644 --- a/src/main/java/com/github/dockerjava/core/command/CopyFileFromContainerCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/CopyFileFromContainerCmdImpl.java @@ -85,17 +85,4 @@ public InputStream exec() throws NotFoundException { return super.exec(); } -// protected InputStream impl() throws DockerException { -// -// CopyFileFromContainerCmd command = this; -// -// WebTarget webResource = -// baseResource.path("/containers/{id}/copy").resolveTemplate("id", command.getContainerId()); -// -// LOGGER.trace("POST: " + webResource.toString()); -// -// return webResource.request().accept(MediaType.APPLICATION_OCTET_STREAM_TYPE).post(entity(command, MediaType.APPLICATION_JSON), Response.class).readEntity(InputStream.class); -// } - - } diff --git a/src/main/java/com/github/dockerjava/core/command/StartContainerCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/StartContainerCmdImpl.java index 9cf830833..dd11ed74b 100644 --- a/src/main/java/com/github/dockerjava/core/command/StartContainerCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/StartContainerCmdImpl.java @@ -66,6 +66,9 @@ public class StartContainerCmdImpl extends AbstrDockerCmd, RES_T> + implements DockerCmdExec { + + private WebResource baseResource; + + public AbstrDockerCmdExec(WebResource baseResource) { + Preconditions.checkNotNull(baseResource, + "baseResource was not specified"); + this.baseResource = baseResource; + } + + protected WebResourceBuilder getBaseResource() { + return new WebResourceBuilder(baseResource); + } + + public static class WebResourceBuilder { + WebResource resource; + + private WebResourceBuilder(WebResource resource) { + this.resource = resource; + } + + public WebResourceBuilder path(String pathStr) { + this.resource = this.resource.path(pathStr); + return this; + } + + public WebResourceBuilder resolveTemplate(String path, String... values) { + UriTemplate tmplt = new UriTemplate(path); + this.resource = this.resource.path(tmplt.createURI(values)); + return this; + } + + public WebResourceBuilder queryParam(String name, String value) { + if (value != null) { + this.resource = this.resource.queryParam(name, value); + } + return this; + } + + public WebResource build() { + return this.resource; + } + } + + protected String registryAuth(AuthConfig authConfig) { + try { + return Base64.encodeBase64String(new ObjectMapper() + .writeValueAsString(authConfig).getBytes()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public RES_T exec(CMD_T command) { + // this hack works because of ResponseStatusExceptionFilter + RES_T result; + try { + result = execute(command); + } catch (ClientHandlerException e) { + if(e.getCause() instanceof DockerException) { + throw (DockerException)e.getCause(); + } else { + throw e; + } + } + return result; + } + + protected abstract RES_T execute(CMD_T command); +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/AttachContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/AttachContainerCmdExec.java new file mode 100644 index 000000000..6a0c52f7b --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/AttachContainerCmdExec.java @@ -0,0 +1,39 @@ +package com.github.dockerjava.jaxrs1; + +import java.io.InputStream; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.AttachContainerCmd; +import com.sun.jersey.api.client.WebResource; + +public class AttachContainerCmdExec extends AbstrDockerCmdExec implements AttachContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(AttachContainerCmdExec.class); + + public AttachContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected InputStream execute(AttachContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/attach", command.getContainerId()) + .queryParam("logs", command.hasLogsEnabled() ? "1" : "0") + .queryParam("stdout", command.hasStdoutEnabled() ? "1" : "0") + .queryParam("stderr", command.hasStderrEnabled() ? "1" : "0") + .queryParam("stream", command.hasFollowStreamEnabled() ? "1" : "0") + .build(); + + LOGGER.trace("POST: {}", webResource); + + return webResource.accept(MediaType.APPLICATION_OCTET_STREAM_TYPE) + .entity(null, MediaType.APPLICATION_JSON) + .post(InputStream.class); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/AuthCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/AuthCmdExec.java new file mode 100644 index 000000000..6fcc7d11a --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/AuthCmdExec.java @@ -0,0 +1,38 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.UnauthorizedException; +import com.github.dockerjava.api.command.AuthCmd; +import com.sun.jersey.api.client.WebResource; + +public class AuthCmdExec extends AbstrDockerCmdExec implements AuthCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(AuthCmdExec.class); + + public AuthCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(AuthCmd command) { + WebResource webResource = getBaseResource().path("/auth").build(); + LOGGER.trace("POST: {}", webResource); + Response response = webResource + .accept(MediaType.APPLICATION_JSON) + .entity(command.getAuthConfig(), MediaType.APPLICATION_JSON) + .post(Response.class); + + if(response.getStatus() == 401) { + throw new UnauthorizedException("Unauthorized"); + }; + + return null; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/BuildImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/BuildImageCmdExec.java new file mode 100644 index 000000000..e3cbb7017 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/BuildImageCmdExec.java @@ -0,0 +1,47 @@ +package com.github.dockerjava.jaxrs1; + +import java.io.InputStream; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.BuildImageCmd; +import com.sun.jersey.api.client.WebResource; + +public class BuildImageCmdExec extends AbstrDockerCmdExec implements BuildImageCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(BuildImageCmdExec.class); + + public BuildImageCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected InputStream execute(BuildImageCmd command) { + WebResource webResource = getBaseResource().path("/build").build(); + + if(command.getTag() != null) { + webResource = webResource.queryParam("t", command.getTag()); + } + if (command.hasNoCacheEnabled()) { + webResource = webResource.queryParam("nocache", "true"); + } + if (command.hasRemoveEnabled()) { + webResource = webResource.queryParam("rm", "true"); + } + if (command.isQuiet()) { + webResource = webResource.queryParam("q", "true"); + } + + LOGGER.debug("POST: {}", webResource); + return webResource + .accept(MediaType.TEXT_PLAIN) + .entity(command.getTarInputStream(), "application/tar") + .post(InputStream.class); + + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/CommitCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/CommitCmdExec.java new file mode 100644 index 000000000..ccf667591 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/CommitCmdExec.java @@ -0,0 +1,41 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.github.dockerjava.api.command.CommitCmd; +import com.sun.jersey.api.client.WebResource; + +public class CommitCmdExec extends AbstrDockerCmdExec implements CommitCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(CommitCmdExec.class); + + public CommitCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected String execute(CommitCmd command) { + WebResource webResource = getBaseResource() + .path("/commit") + .queryParam("container", command.getContainerId()) + .queryParam("repo", command.getRepository()) + .queryParam("tag", command.getTag()) + .queryParam("m", command.getMessage()) + .queryParam("author", command.getAuthor()) + .queryParam("pause", command.hasPauseEnabled() ? "1" : "0") + .build(); + + LOGGER.trace("POST: {}", webResource); + ObjectNode objectNode = webResource + .accept("application/vnd.docker.raw-stream") + .entity(command, MediaType.APPLICATION_JSON) + .post(ObjectNode.class); + return objectNode.get("Id").asText(); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/ContainerDiffCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/ContainerDiffCmdExec.java new file mode 100644 index 000000000..0867a678d --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/ContainerDiffCmdExec.java @@ -0,0 +1,37 @@ +package com.github.dockerjava.jaxrs1; + +import java.util.List; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.ContainerDiffCmd; +import com.github.dockerjava.api.model.ChangeLog; +import com.sun.jersey.api.client.GenericType; +import com.sun.jersey.api.client.WebResource; + +public class ContainerDiffCmdExec extends AbstrDockerCmdExec> implements ContainerDiffCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(ContainerDiffCmdExec.class); + + public ContainerDiffCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected List execute(ContainerDiffCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/changes", command.getContainerId()) + .build(); + + LOGGER.trace("GET: {}", webResource); + return webResource + .accept(MediaType.APPLICATION_JSON) + .get(new GenericType>() { + }); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/CopyFileFromContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/CopyFileFromContainerCmdExec.java new file mode 100644 index 000000000..4b808d17e --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/CopyFileFromContainerCmdExec.java @@ -0,0 +1,36 @@ +package com.github.dockerjava.jaxrs1; + +import java.io.InputStream; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.CopyFileFromContainerCmd; +import com.sun.jersey.api.client.WebResource; + +public class CopyFileFromContainerCmdExec extends AbstrDockerCmdExec implements CopyFileFromContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(CopyFileFromContainerCmdExec.class); + + public CopyFileFromContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected InputStream execute(CopyFileFromContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/copy", command.getContainerId()) + .build(); + + LOGGER.trace("POST: " + webResource.toString()); + + return webResource + .accept(MediaType.APPLICATION_OCTET_STREAM_TYPE) + .entity(command, MediaType.APPLICATION_JSON) + .post(InputStream.class); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/CreateContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/CreateContainerCmdExec.java new file mode 100644 index 000000000..4b7d38281 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/CreateContainerCmdExec.java @@ -0,0 +1,34 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.CreateContainerCmd; +import com.github.dockerjava.api.command.CreateContainerResponse; +import com.sun.jersey.api.client.WebResource; + +public class CreateContainerCmdExec extends AbstrDockerCmdExec implements CreateContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(CreateContainerCmdExec.class); + + public CreateContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected CreateContainerResponse execute(CreateContainerCmd command) { + WebResource webResource = getBaseResource().path("/containers/create").build(); + + if (command.getName() != null) { + webResource = webResource.queryParam("name", command.getName()); + } + + LOGGER.trace("POST: {} ", webResource); + return webResource.accept(MediaType.APPLICATION_JSON) + .entity(command, MediaType.APPLICATION_JSON) + .post(CreateContainerResponse.class); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/CreateImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/CreateImageCmdExec.java new file mode 100644 index 000000000..3c4da1929 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/CreateImageCmdExec.java @@ -0,0 +1,35 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.CreateImageCmd; +import com.github.dockerjava.api.command.CreateImageResponse; +import com.sun.jersey.api.client.WebResource; + +public class CreateImageCmdExec extends AbstrDockerCmdExec implements CreateImageCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(CreateImageCmdExec.class); + + public CreateImageCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected CreateImageResponse execute(CreateImageCmd command) { + WebResource webResource = getBaseResource() + .path("/images/create") + .queryParam("repo", command.getRepository()) + .queryParam("tag", command.getTag()) + .queryParam("fromSrc", "-") + .build(); + + LOGGER.trace("POST: {}", webResource); + return webResource.accept(MediaType.APPLICATION_OCTET_STREAM_TYPE) + .entity(command.getImageStream(), MediaType.APPLICATION_OCTET_STREAM) + .post(CreateImageResponse.class); + } +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/DockerCmdExecFactoryImpl.java b/src/main/java/com/github/dockerjava/jaxrs1/DockerCmdExecFactoryImpl.java new file mode 100644 index 000000000..328e59406 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/DockerCmdExecFactoryImpl.java @@ -0,0 +1,275 @@ +package com.github.dockerjava.jaxrs1; + +import java.io.IOException; +import java.util.logging.Logger; + +import org.apache.http.client.HttpClient; +import org.apache.http.conn.scheme.PlainSocketFactory; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.ssl.SSLSocketFactory; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.conn.PoolingClientConnectionManager; + +import com.github.dockerjava.api.command.AttachContainerCmd; +import com.github.dockerjava.api.command.AuthCmd; +import com.github.dockerjava.api.command.BuildImageCmd; +import com.github.dockerjava.api.command.CommitCmd; +import com.github.dockerjava.api.command.ContainerDiffCmd; +import com.github.dockerjava.api.command.CopyFileFromContainerCmd; +import com.github.dockerjava.api.command.CreateContainerCmd; +import com.github.dockerjava.api.command.CreateImageCmd; +import com.github.dockerjava.api.command.DockerCmdExecFactory; +import com.github.dockerjava.api.command.EventsCmd; +import com.github.dockerjava.api.command.InfoCmd; +import com.github.dockerjava.api.command.InspectContainerCmd; +import com.github.dockerjava.api.command.InspectImageCmd; +import com.github.dockerjava.api.command.KillContainerCmd; +import com.github.dockerjava.api.command.ListContainersCmd; +import com.github.dockerjava.api.command.ListImagesCmd; +import com.github.dockerjava.api.command.LogContainerCmd; +import com.github.dockerjava.api.command.PauseContainerCmd; +import com.github.dockerjava.api.command.PingCmd; +import com.github.dockerjava.api.command.PullImageCmd; +import com.github.dockerjava.api.command.PushImageCmd; +import com.github.dockerjava.api.command.RemoveContainerCmd; +import com.github.dockerjava.api.command.RemoveImageCmd; +import com.github.dockerjava.api.command.RestartContainerCmd; +import com.github.dockerjava.api.command.SearchImagesCmd; +import com.github.dockerjava.api.command.StartContainerCmd; +import com.github.dockerjava.api.command.StopContainerCmd; +import com.github.dockerjava.api.command.TagImageCmd; +import com.github.dockerjava.api.command.TopContainerCmd; +import com.github.dockerjava.api.command.UnpauseContainerCmd; +import com.github.dockerjava.api.command.VersionCmd; +import com.github.dockerjava.api.command.WaitContainerCmd; +import com.github.dockerjava.core.DockerClientConfig; +import com.github.dockerjava.jaxrs1.util.JsonClientFilter; +import com.github.dockerjava.jaxrs1.util.SelectiveLoggingFilter; +import com.google.common.base.Preconditions; +import com.sun.jersey.api.client.Client; +import com.sun.jersey.api.client.WebResource; +import com.sun.jersey.api.client.config.ClientConfig; +import com.sun.jersey.api.client.config.DefaultClientConfig; +import com.sun.jersey.client.apache4.ApacheHttpClient4; +import com.sun.jersey.client.apache4.ApacheHttpClient4Handler; + +public class DockerCmdExecFactoryImpl implements DockerCmdExecFactory { + + private Client client; + + private WebResource baseResource; + + private static final Logger LOGGER = Logger.getLogger(DockerCmdExecFactoryImpl.class.getName()); + + + @Override + public void init(DockerClientConfig dockerClientConfig) { + Preconditions.checkNotNull(dockerClientConfig, "config was not specified"); + + HttpClient httpClient = getPoolingHttpClient(dockerClientConfig); + ClientConfig clientConfig = new DefaultClientConfig(); + client = new ApacheHttpClient4(new ApacheHttpClient4Handler(httpClient, + null, false), clientConfig); + + if(dockerClientConfig.getReadTimeout() != null) { + client.setReadTimeout(dockerClientConfig.getReadTimeout()); + } + + client.addFilter(new JsonClientFilter()); + + if (dockerClientConfig.isLoggingFilterEnabled()) + client.addFilter(new SelectiveLoggingFilter()); + + WebResource webResource = client.resource(dockerClientConfig.getUri()); + + if(dockerClientConfig.getVersion() != null) { + baseResource = webResource.path("v" + dockerClientConfig.getVersion()); + } else { + baseResource = webResource; + } + } + + private HttpClient getPoolingHttpClient(DockerClientConfig dockerClientConfig) { + SchemeRegistry schemeRegistry = new SchemeRegistry(); + schemeRegistry.register(new Scheme("http", dockerClientConfig.getUri().getPort(), + PlainSocketFactory.getSocketFactory())); + schemeRegistry.register(new Scheme("https", 443, SSLSocketFactory + .getSocketFactory())); + + PoolingClientConnectionManager cm = new PoolingClientConnectionManager(schemeRegistry); + // Increase max total connection + cm.setMaxTotal(1000); + // Increase default max connection per route + cm.setDefaultMaxPerRoute(1000); + + return new DefaultHttpClient(cm); + } + + protected WebResource getBaseResource() { + Preconditions.checkNotNull(baseResource, "Factory not initialized. You probably forgot to call init()!"); + return baseResource; + } + + @Override + public AuthCmd.Exec createAuthCmdExec() { + return new AuthCmdExec(getBaseResource()); + } + + @Override + public InfoCmd.Exec createInfoCmdExec() { + return new InfoCmdExec(getBaseResource()); + } + + @Override + public PingCmd.Exec createPingCmdExec() { + return new PingCmdExec(getBaseResource()); + } + + @Override + public VersionCmd.Exec createVersionCmdExec() { + return new VersionCmdExec(getBaseResource()); + } + + @Override + public PullImageCmd.Exec createPullImageCmdExec() { + return new PullImageCmdExec(getBaseResource()); + } + + @Override + public PushImageCmd.Exec createPushImageCmdExec() { + return new PushImageCmdExec(getBaseResource()); + } + + @Override + public CreateImageCmd.Exec createCreateImageCmdExec() { + return new CreateImageCmdExec(getBaseResource()); + } + + @Override + public SearchImagesCmd.Exec createSearchImagesCmdExec() { + return new SearchImagesCmdExec(getBaseResource()); + } + + @Override + public RemoveImageCmd.Exec createRemoveImageCmdExec() { + return new RemoveImageCmdExec(getBaseResource()); + } + + @Override + public ListImagesCmd.Exec createListImagesCmdExec() { + return new ListImagesCmdExec(getBaseResource()); + } + + @Override + public InspectImageCmd.Exec createInspectImageCmdExec() { + return new InspectImageCmdExec(getBaseResource()); + } + + @Override + public ListContainersCmd.Exec createListContainersCmdExec() { + return new ListContainersCmdExec(getBaseResource()); + } + + @Override + public CreateContainerCmd.Exec createCreateContainerCmdExec() { + return new CreateContainerCmdExec(getBaseResource()); + } + + @Override + public StartContainerCmd.Exec createStartContainerCmdExec() { + return new StartContainerCmdExec(getBaseResource()); + } + + @Override + public InspectContainerCmd.Exec createInspectContainerCmdExec() { + return new InspectContainerCmdExec(getBaseResource()); + } + + @Override + public RemoveContainerCmd.Exec createRemoveContainerCmdExec() { + return new RemoveContainerCmdExec(getBaseResource()); + } + + @Override + public WaitContainerCmd.Exec createWaitContainerCmdExec() { + return new WaitContainerCmdExec(getBaseResource()); + } + + @Override + public AttachContainerCmd.Exec createAttachContainerCmdExec() { + return new AttachContainerCmdExec(getBaseResource()); + } + + @Override + public LogContainerCmd.Exec createLogContainerCmdExec() { + return new LogContainerCmdExec(getBaseResource()); + } + + @Override + public CopyFileFromContainerCmd.Exec createCopyFileFromContainerCmdExec() { + return new CopyFileFromContainerCmdExec(getBaseResource()); + } + + @Override + public StopContainerCmd.Exec createStopContainerCmdExec() { + return new StopContainerCmdExec(getBaseResource()); + } + + @Override + public ContainerDiffCmd.Exec createContainerDiffCmdExec() { + return new ContainerDiffCmdExec(getBaseResource()); + } + + @Override + public KillContainerCmd.Exec createKillContainerCmdExec() { + return new KillContainerCmdExec(getBaseResource()); + } + + @Override + public RestartContainerCmd.Exec createRestartContainerCmdExec() { + return new RestartContainerCmdExec(getBaseResource()); + } + + @Override + public CommitCmd.Exec createCommitCmdExec() { + return new CommitCmdExec(getBaseResource()); + } + + @Override + public BuildImageCmd.Exec createBuildImageCmdExec() { + return new BuildImageCmdExec(getBaseResource()); + } + + @Override + public TopContainerCmd.Exec createTopContainerCmdExec() { + return new TopContainerCmdExec(getBaseResource()); + } + + @Override + public TagImageCmd.Exec createTagImageCmdExec() { + return new TagImageCmdExec(getBaseResource()); + } + + @Override + public PauseContainerCmd.Exec createPauseContainerCmdExec() { + return new PauseContainerCmdExec(getBaseResource()); + } + + @Override + public UnpauseContainerCmd.Exec createUnpauseContainerCmdExec() { + return new UnpauseContainerCmdExec(baseResource); + } + + @Override + public EventsCmd.Exec createEventsCmdExec() { + return new EventsCmdExec(getBaseResource()); + } + + @Override + public void close() throws IOException { + Preconditions.checkNotNull(client, "Factory not initialized. You probably forgot to call init()!"); + client.destroy(); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/EventsCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/EventsCmdExec.java new file mode 100644 index 000000000..0b22cebc2 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/EventsCmdExec.java @@ -0,0 +1,87 @@ +package com.github.dockerjava.jaxrs1; + +import java.io.InputStream; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.dockerjava.api.command.EventCallback; +import com.github.dockerjava.api.command.EventsCmd; +import com.github.dockerjava.api.model.Event; +import com.google.common.base.Preconditions; +import com.sun.jersey.api.client.ClientResponse; +import com.sun.jersey.api.client.WebResource; + +public class EventsCmdExec extends AbstrDockerCmdExec implements EventsCmd.Exec { + private static final Logger LOGGER = LoggerFactory.getLogger(EventsCmdExec.class); + + public EventsCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected ExecutorService execute(EventsCmd command) { + ExecutorService executorService = Executors.newSingleThreadExecutor(); + + WebResource webResource = getBaseResource().path("/events") + .queryParam("since", command.getSince()) + .queryParam("until", command.getUntil()) + .build(); + + LOGGER.trace("GET: {}", webResource); + EventNotifier eventNotifier = EventNotifier.create(command.getEventCallback(), webResource); + executorService.submit(eventNotifier); + return executorService; + } + + private static class EventNotifier implements Callable { + private static final JsonFactory JSON_FACTORY = new JsonFactory(); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private final EventCallback eventCallback; + private final WebResource WebResource; + + private EventNotifier(EventCallback eventCallback, WebResource WebResource) { + this.eventCallback = eventCallback; + this.WebResource = WebResource; + } + + public static EventNotifier create(EventCallback eventCallback, WebResource WebResource) { + Preconditions.checkNotNull(eventCallback, "An EventCallback must be provided"); + Preconditions.checkNotNull(WebResource, "An WebResource must be provided"); + return new EventNotifier(eventCallback, WebResource); + } + + @Override + public Void call() throws Exception { + int numEvents=0; + ClientResponse response = null; + try { + response = WebResource.get(ClientResponse.class); + InputStream inputStream = response.getEntityInputStream(); + JsonParser jp = JSON_FACTORY.createParser(inputStream); + while (jp.nextToken() != JsonToken.END_OBJECT && !jp.isClosed()) { + eventCallback.onEvent(OBJECT_MAPPER.readValue(jp, Event.class)); + numEvents++; + } + } + catch(Exception e) { + eventCallback.onException(e); + } + finally { + if (response != null) { + response.close(); + } + } + eventCallback.onCompletion(numEvents); + return null; + } + } +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/InfoCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/InfoCmdExec.java new file mode 100644 index 000000000..b1d1be48c --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/InfoCmdExec.java @@ -0,0 +1,29 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.InfoCmd; +import com.github.dockerjava.api.model.Info; +import com.sun.jersey.api.client.WebResource; + +public class InfoCmdExec extends AbstrDockerCmdExec implements InfoCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(InfoCmdExec.class); + + public InfoCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Info execute(InfoCmd command) { + WebResource webResource = getBaseResource().path("/info").build(); + + LOGGER.trace("GET: {}", webResource); + return webResource.accept(MediaType.APPLICATION_JSON).get(Info.class); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/InspectContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/InspectContainerCmdExec.java new file mode 100644 index 000000000..e32a98351 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/InspectContainerCmdExec.java @@ -0,0 +1,31 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.InspectContainerCmd; +import com.github.dockerjava.api.command.InspectContainerResponse; +import com.sun.jersey.api.client.WebResource; + +public class InspectContainerCmdExec extends AbstrDockerCmdExec implements InspectContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(InspectContainerCmdExec.class); + + public InspectContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected InspectContainerResponse execute(InspectContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/json", command.getContainerId()) + .build(); + + LOGGER.debug("GET: {}", webResource); + return webResource.accept(MediaType.APPLICATION_JSON).get(InspectContainerResponse.class); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/InspectImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/InspectImageCmdExec.java new file mode 100644 index 000000000..20df12d88 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/InspectImageCmdExec.java @@ -0,0 +1,31 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.InspectImageCmd; +import com.github.dockerjava.api.command.InspectImageResponse; +import com.sun.jersey.api.client.WebResource; + +public class InspectImageCmdExec extends AbstrDockerCmdExec implements InspectImageCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(InspectImageCmdExec.class); + + public InspectImageCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected InspectImageResponse execute(InspectImageCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/images/{id}/json", command.getImageId()) + .build(); + + LOGGER.trace("GET: {}", webResource); + return webResource.accept(MediaType.APPLICATION_JSON).get(InspectImageResponse.class); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/KillContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/KillContainerCmdExec.java new file mode 100644 index 000000000..e9763a182 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/KillContainerCmdExec.java @@ -0,0 +1,37 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.KillContainerCmd; +import com.sun.jersey.api.client.WebResource; + +public class KillContainerCmdExec extends AbstrDockerCmdExec implements KillContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(KillContainerCmdExec.class); + + public KillContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(KillContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/kill", command.getContainerId()) + .build(); + + if(command.getSignal() != null) { + webResource = webResource.queryParam("signal", command.getSignal()); + } + + LOGGER.trace("POST: {}", webResource); + webResource.accept(MediaType.APPLICATION_JSON) + .post(); + + return null; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/ListContainersCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/ListContainersCmdExec.java new file mode 100644 index 000000000..40bf4d6dd --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/ListContainersCmdExec.java @@ -0,0 +1,45 @@ +package com.github.dockerjava.jaxrs1; + +import java.util.List; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.ListContainersCmd; +import com.github.dockerjava.api.model.Container; +import com.sun.jersey.api.client.GenericType; +import com.sun.jersey.api.client.WebResource; + +public class ListContainersCmdExec extends AbstrDockerCmdExec> implements ListContainersCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(ListContainersCmdExec.class); + + public ListContainersCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected List execute(ListContainersCmd command) { + WebResource webResource = getBaseResource().path("/containers/json") + .queryParam("all", command.hasShowAllEnabled() ? "1" : "0") + .queryParam("since", command.getSinceId()) + .queryParam("before", command.getBeforeId()) + .queryParam("size", command.hasShowSizeEnabled() ? "1" : "0") + .build(); + + if (command.getLimit() >= 0) { + webResource = webResource.queryParam("limit", String.valueOf(command.getLimit())); + } + + LOGGER.trace("GET: {}", webResource); + List containers = webResource + .accept(MediaType.APPLICATION_JSON) + .get(new GenericType>() {}); + LOGGER.trace("Response: {}", containers); + + return containers; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/ListImagesCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/ListImagesCmdExec.java new file mode 100644 index 000000000..056dc355d --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/ListImagesCmdExec.java @@ -0,0 +1,41 @@ +package com.github.dockerjava.jaxrs1; + +import java.util.List; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.ListImagesCmd; +import com.github.dockerjava.api.model.Image; +import com.sun.jersey.api.client.GenericType; +import com.sun.jersey.api.client.WebResource; + +public class ListImagesCmdExec extends AbstrDockerCmdExec> implements ListImagesCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(ListImagesCmdExec.class); + + public ListImagesCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected List execute(ListImagesCmd command) { + WebResource webResource = getBaseResource() + .path("/images/json") + .queryParam("filter", command.getFilter()) + .queryParam("all", command.hasShowAllEnabled() ? "1" : "0") + .build(); + + LOGGER.trace("GET: {}", webResource); + + List images = webResource + .accept(MediaType.APPLICATION_JSON) + .get(new GenericType>() {}); + LOGGER.trace("Response: {}", images); + + return images; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/LogContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/LogContainerCmdExec.java new file mode 100644 index 000000000..091ddbace --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/LogContainerCmdExec.java @@ -0,0 +1,35 @@ +package com.github.dockerjava.jaxrs1; + +import java.io.InputStream; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.LogContainerCmd; +import com.sun.jersey.api.client.ClientResponse; +import com.sun.jersey.api.client.WebResource; + +public class LogContainerCmdExec extends AbstrDockerCmdExec implements LogContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(LogContainerCmdExec.class); + + public LogContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected InputStream execute(LogContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/logs", command.getContainerId()) + .queryParam("timestamps", command.hasTimestampsEnabled() ? "1" : "0") + .queryParam("stdout", command.hasStdoutEnabled() ? "1" : "0") + .queryParam("stderr", command.hasStderrEnabled() ? "1" : "0") + .queryParam("follow", command.hasFollowStreamEnabled() ? "1" : "0") + .queryParam("tail", command.getTail() < 0 ? "all" : "" + command.getTail()) + .build(); + + LOGGER.trace("GET: {}", webResource); + return webResource.get(ClientResponse.class).getEntityInputStream(); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/PauseContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/PauseContainerCmdExec.java new file mode 100644 index 000000000..e0ec59ee5 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/PauseContainerCmdExec.java @@ -0,0 +1,35 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.PauseContainerCmd; +import com.sun.jersey.api.client.WebResource; + +public class PauseContainerCmdExec extends AbstrDockerCmdExec implements PauseContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(PauseContainerCmdExec.class); + + public PauseContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(PauseContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/pause", command.getContainerId()) + .build(); + + LOGGER.trace("POST: {}", webResource); + webResource + .accept(MediaType.APPLICATION_JSON) + .entity(null, MediaType.APPLICATION_JSON) + .post(Response.class); + + return null; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/PingCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/PingCmdExec.java new file mode 100644 index 000000000..5185af9a2 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/PingCmdExec.java @@ -0,0 +1,29 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.Response; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.PingCmd; +import com.sun.jersey.api.client.WebResource; + +public class PingCmdExec extends AbstrDockerCmdExec implements PingCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(PingCmdExec.class); + + public PingCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(PingCmd command) { + WebResource webResource = getBaseResource().path("/_ping").build(); + + LOGGER.trace("GET: {}", webResource); + webResource.get(Response.class); + + return null; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/PullImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/PullImageCmdExec.java new file mode 100644 index 000000000..2bc6ed04a --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/PullImageCmdExec.java @@ -0,0 +1,36 @@ +package com.github.dockerjava.jaxrs1; + +import java.io.InputStream; + +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.PullImageCmd; +import com.sun.jersey.api.client.WebResource; + +public class PullImageCmdExec extends AbstrDockerCmdExec implements PullImageCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(PullImageCmdExec.class); + + public PullImageCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected InputStream execute(PullImageCmd command) { + WebResource webResource = getBaseResource().path("/images/create") + .queryParam("tag", command.getTag()) + .queryParam("fromImage", command.getRepository()) + .queryParam("registry", command.getRegistry()) + .build(); + + LOGGER.trace("POST: {}", webResource); + return webResource + .accept(MediaType.APPLICATION_OCTET_STREAM_TYPE) + .post(InputStream.class); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/PushImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/PushImageCmdExec.java new file mode 100644 index 000000000..149ebb3e1 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/PushImageCmdExec.java @@ -0,0 +1,44 @@ +package com.github.dockerjava.jaxrs1; + +import java.io.InputStream; + +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.PushImageCmd; +import com.github.dockerjava.api.model.AuthConfig; +import com.sun.jersey.api.client.WebResource; + +public class PushImageCmdExec extends AbstrDockerCmdExec implements PushImageCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(PushImageCmdExec.class); + + public PushImageCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected InputStream execute(PushImageCmd command) { + WebResource webResource = getBaseResource() + .path("/images/" + name(command) + "/push") + .build(); + + final String registryAuth = registryAuth(command.getAuthConfig()); + LOGGER.trace("POST: {}", webResource); + return webResource + .header("X-Registry-Auth", registryAuth) + .accept(MediaType.APPLICATION_JSON) + .entity(Response.class, MediaType.APPLICATION_JSON) + .post(InputStream.class); + } + + private String name(PushImageCmd command) { + String name = command.getName(); + AuthConfig authConfig = command.getAuthConfig(); + return name.contains("/") ? name : authConfig.getUsername(); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/RemoveContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/RemoveContainerCmdExec.java new file mode 100644 index 000000000..6ef991657 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/RemoveContainerCmdExec.java @@ -0,0 +1,33 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.RemoveContainerCmd; +import com.sun.jersey.api.client.WebResource; + +public class RemoveContainerCmdExec extends AbstrDockerCmdExec implements RemoveContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(RemoveContainerCmdExec.class); + + public RemoveContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(RemoveContainerCmd command) { + WebResource webResource = getBaseResource() + .path("/containers/" + command.getContainerId()) + .queryParam("v", command.hasRemoveVolumesEnabled() ? "1" : "0") + .queryParam("force", command.hasForceEnabled() ? "1" : "0") + .build(); + + LOGGER.trace("DELETE: {}", webResource); + webResource.accept(MediaType.APPLICATION_JSON).delete(); + + return null; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/RemoveImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/RemoveImageCmdExec.java new file mode 100644 index 000000000..fa37eeb3e --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/RemoveImageCmdExec.java @@ -0,0 +1,33 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.Response; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.RemoveImageCmd; +import com.sun.jersey.api.client.WebResource; + +public class RemoveImageCmdExec extends AbstrDockerCmdExec implements RemoveImageCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(RemoveImageCmdExec.class); + + public RemoveImageCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(RemoveImageCmd command) { + WebResource webResource = getBaseResource() + .path("/images/" + command.getImageId()) + .queryParam("force", command.hasForceEnabled() ? "1" : "0") + .queryParam("noprune", command.hasNoPruneEnabled() ? "1" : "0") + .build(); + + LOGGER.trace("DELETE: {}", webResource); + webResource.delete(Response.class); + + return null; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/RestartContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/RestartContainerCmdExec.java new file mode 100644 index 000000000..8208708c7 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/RestartContainerCmdExec.java @@ -0,0 +1,34 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.RestartContainerCmd; +import com.sun.jersey.api.client.WebResource; + +public class RestartContainerCmdExec extends AbstrDockerCmdExec implements RestartContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(RestartContainerCmdExec.class); + + public RestartContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(RestartContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/restart", command.getContainerId()) + .queryParam("t", String.valueOf(command.getTimeout())) + .build(); + + LOGGER.trace("POST: {}", webResource); + webResource.accept(MediaType.APPLICATION_JSON) + .entity(null, MediaType.APPLICATION_JSON_TYPE) + .post(); + + return null; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/SearchImagesCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/SearchImagesCmdExec.java new file mode 100644 index 000000000..14f79e0f6 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/SearchImagesCmdExec.java @@ -0,0 +1,35 @@ +package com.github.dockerjava.jaxrs1; + +import java.util.List; + +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.sun.jersey.api.client.GenericType; +import com.sun.jersey.api.client.WebResource; + +public class SearchImagesCmdExec extends AbstrDockerCmdExec> implements SearchImagesCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(SearchImagesCmdExec.class); + + public SearchImagesCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected List execute(SearchImagesCmd command) { + WebResource webResource = getBaseResource() + .path("/images/search") + .queryParam("term", command.getTerm()) + .build(); + + LOGGER.trace("GET: {}", webResource); + return webResource.accept(MediaType.APPLICATION_JSON) + .get(new GenericType>() {}); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/StartContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/StartContainerCmdExec.java new file mode 100644 index 000000000..be97e8971 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/StartContainerCmdExec.java @@ -0,0 +1,48 @@ +package com.github.dockerjava.jaxrs1; + +import java.io.ByteArrayInputStream; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.dockerjava.api.BadRequestException; +import com.github.dockerjava.api.command.StartContainerCmd; +import com.sun.jersey.api.client.WebResource; +import com.sun.jersey.api.client.WebResource.Builder; + +public class StartContainerCmdExec extends AbstrDockerCmdExec implements StartContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(StartContainerCmdExec.class); + + public StartContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(StartContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/start", command.getContainerId()) + .build(); + + Builder builder = webResource.accept(MediaType.APPLICATION_JSON); + if (!command.useExistingConfig()) { + // Workaround for Docker issue 6231. This avoids the use of chunked encoding. + ObjectMapper mapper = new ObjectMapper(); + ByteArrayInputStream bais; + try { + bais = new ByteArrayInputStream(mapper.writeValueAsBytes(command)); + } catch (JsonProcessingException jpe) { + throw new BadRequestException("Unable to serialize start command", jpe); + } + builder = builder.entity(bais, MediaType.APPLICATION_JSON); + } + LOGGER.trace("POST: {}", webResource); + builder.post(); + return null; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/StopContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/StopContainerCmdExec.java new file mode 100644 index 000000000..c5e58e082 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/StopContainerCmdExec.java @@ -0,0 +1,33 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.StopContainerCmd; +import com.sun.jersey.api.client.WebResource; + +public class StopContainerCmdExec extends AbstrDockerCmdExec implements StopContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(StopContainerCmdExec.class); + + public StopContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(StopContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/stop", command.getContainerId()) + .queryParam("t", String.valueOf(command.getTimeout())) + .build(); + + LOGGER.trace("POST: {}", webResource); + webResource.accept(MediaType.APPLICATION_JSON) + .entity(null, MediaType.APPLICATION_JSON) + .post(); + + return null; + } +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/TagImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/TagImageCmdExec.java new file mode 100644 index 000000000..13850bbc9 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/TagImageCmdExec.java @@ -0,0 +1,37 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.TagImageCmd; +import com.sun.jersey.api.client.WebResource; + +public class TagImageCmdExec extends AbstrDockerCmdExec implements TagImageCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(TagImageCmdExec.class); + + public TagImageCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(TagImageCmd command) { + WebResource webResource = getBaseResource() + .path("/images/" + command.getImageId() + "/tag") + .queryParam("repo", command.getRepository()) + .queryParam("tag", command.getTag()) + .queryParam("force", command.hasForceEnabled() ? "1" : "0") + .build(); + + LOGGER.trace("POST: {}", webResource); + webResource.entity(null, MediaType.APPLICATION_JSON) + .post();; + return null; + } + + + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/TopContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/TopContainerCmdExec.java new file mode 100644 index 000000000..99435a0e9 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/TopContainerCmdExec.java @@ -0,0 +1,34 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.TopContainerCmd; +import com.github.dockerjava.api.command.TopContainerResponse; +import com.sun.jersey.api.client.WebResource; + +public class TopContainerCmdExec extends AbstrDockerCmdExec implements TopContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(TopContainerCmdExec.class); + + public TopContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected TopContainerResponse execute(TopContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/top", command.getContainerId()) + .build(); + + if(!StringUtils.isEmpty(command.getPsArgs())) + webResource = webResource.queryParam("ps_args", command.getPsArgs()); + + LOGGER.trace("GET: {}", webResource); + return webResource.accept(MediaType.APPLICATION_JSON).get(TopContainerResponse.class); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/UnpauseContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/UnpauseContainerCmdExec.java new file mode 100644 index 000000000..b0dca7184 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/UnpauseContainerCmdExec.java @@ -0,0 +1,34 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.UnpauseContainerCmd; +import com.sun.jersey.api.client.WebResource; + +public class UnpauseContainerCmdExec extends AbstrDockerCmdExec implements UnpauseContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory.getLogger(UnpauseContainerCmdExec.class); + + public UnpauseContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Void execute(UnpauseContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/unpause", command.getContainerId()) + .build(); + + LOGGER.trace("POST: {}", webResource); + webResource.accept(MediaType.APPLICATION_JSON) + .entity(Response.class, MediaType.APPLICATION_JSON) + .post(); + + return null; + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/VersionCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/VersionCmdExec.java new file mode 100644 index 000000000..50548d847 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/VersionCmdExec.java @@ -0,0 +1,30 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.github.dockerjava.api.command.VersionCmd; +import com.github.dockerjava.api.model.Version; +import com.sun.jersey.api.client.WebResource; + +public class VersionCmdExec extends AbstrDockerCmdExec implements VersionCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(VersionCmdExec.class); + + public VersionCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Version execute(VersionCmd command) { + WebResource webResource = getBaseResource().path("/version").build(); + + LOGGER.trace("GET: {}", webResource); + return webResource.accept(MediaType.APPLICATION_JSON) + .get(Version.class); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/WaitContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs1/WaitContainerCmdExec.java new file mode 100644 index 000000000..c712e8064 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/WaitContainerCmdExec.java @@ -0,0 +1,35 @@ +package com.github.dockerjava.jaxrs1; + +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.github.dockerjava.api.command.WaitContainerCmd; +import com.sun.jersey.api.client.WebResource; + +public class WaitContainerCmdExec extends AbstrDockerCmdExec implements WaitContainerCmd.Exec { + + private static final Logger LOGGER = LoggerFactory + .getLogger(WaitContainerCmdExec.class); + + public WaitContainerCmdExec(WebResource baseResource) { + super(baseResource); + } + + @Override + protected Integer execute(WaitContainerCmd command) { + WebResource webResource = getBaseResource() + .resolveTemplate("/containers/{id}/wait", command.getContainerId()) + .build(); + + LOGGER.trace("POST: {}", webResource); + ObjectNode ObjectNode = webResource.accept(MediaType.APPLICATION_JSON) + .entity(null, MediaType.TEXT_PLAIN) + .post(ObjectNode.class); + + return ObjectNode.get("StatusCode").asInt(); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/util/JsonClientFilter.java b/src/main/java/com/github/dockerjava/jaxrs1/util/JsonClientFilter.java new file mode 100644 index 000000000..09eccfd89 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/util/JsonClientFilter.java @@ -0,0 +1,27 @@ +package com.github.dockerjava.jaxrs1.util; + + +import com.sun.jersey.api.client.ClientHandlerException; +import com.sun.jersey.api.client.ClientRequest; +import com.sun.jersey.api.client.ClientResponse; +import com.sun.jersey.api.client.filter.ClientFilter; + +/** + * + * @author Konstantin Pelykh (kpelykh@gmail.com) + * + */ +public class JsonClientFilter extends ClientFilter { + + @Override + public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { + // Call the next filter + ClientResponse resp = getNext().handle(cr); + String respContentType = resp.getHeaders().getFirst("Content-Type"); + if (respContentType != null && respContentType.startsWith("text/plain")) { + String newContentType = "application/json" + respContentType.substring(10); + resp.getHeaders().putSingle("Content-Type", newContentType); + } + return resp; + } +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/util/ResponseStatusExceptionFilter.java b/src/main/java/com/github/dockerjava/jaxrs1/util/ResponseStatusExceptionFilter.java new file mode 100644 index 000000000..8186c6fda --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/util/ResponseStatusExceptionFilter.java @@ -0,0 +1,104 @@ +package com.github.dockerjava.jaxrs1.util; + +import java.io.EOFException; +import java.io.IOException; +import java.nio.charset.Charset; + +import javax.ws.rs.core.MediaType; + +import org.apache.commons.io.IOUtils; + +import com.github.dockerjava.api.BadRequestException; +import com.github.dockerjava.api.ConflictException; +import com.github.dockerjava.api.DockerException; +import com.github.dockerjava.api.InternalServerErrorException; +import com.github.dockerjava.api.NotAcceptableException; +import com.github.dockerjava.api.NotFoundException; +import com.github.dockerjava.api.NotModifiedException; +import com.github.dockerjava.api.UnauthorizedException; +import com.sun.jersey.api.client.ClientHandlerException; +import com.sun.jersey.api.client.ClientRequest; +import com.sun.jersey.api.client.ClientResponse; +import com.sun.jersey.api.client.filter.ClientFilter; + +/** + * This {@link ClientResponseFilter} implementation detects http status codes and throws {@link DockerException}s + * + * @author marcus + * + */ +public class ResponseStatusExceptionFilter extends ClientFilter { + + + @Override + public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { + // Call the next client handler in the filter chain + ClientResponse resp = getNext().handle(cr); + try { + filter(resp); + } catch (Exception e) { + throw new ClientHandlerException(e); + } + return resp; + } + + public void filter(ClientResponse response) throws IOException { + int status = response.getStatus(); + switch (status) { + case 200: + case 201: + case 204: + return; + case 304: + throw new NotModifiedException(getBodyAsMessage(response)); + case 400: + throw new BadRequestException(getBodyAsMessage(response)); + case 401: + throw new UnauthorizedException(getBodyAsMessage(response)); + case 404: + throw new NotFoundException(getBodyAsMessage(response)); + case 406: + throw new NotAcceptableException(getBodyAsMessage(response)); + case 409: + throw new ConflictException(getBodyAsMessage(response)); + case 500: + throw new InternalServerErrorException(getBodyAsMessage(response)); + default: + throw new DockerException(getBodyAsMessage(response), status); + } + } + + public String getBodyAsMessage(ClientResponse response) throws IOException { + if (response.hasEntity()) { + int contentLength = response.getLength(); + if (contentLength != -1) { + byte[] buffer = new byte[contentLength]; + try { + IOUtils.readFully(response.getEntityInputStream(), buffer); + } + catch (EOFException e) { + return null; + } + Charset charset = null; + MediaType mediaType = response.getType(); + if (mediaType != null) { + String charsetName = mediaType.getParameters().get("charset"); + if (charsetName != null) { + try { + charset = Charset.forName(charsetName); + } + catch (Exception e) { + //Do noting... + } + } + } + if (charset == null) { + charset = Charset.defaultCharset(); + } + String message = new String(buffer, charset); + return message; + } + } + return null; + } +} diff --git a/src/main/java/com/github/dockerjava/jaxrs1/util/SelectiveLoggingFilter.java b/src/main/java/com/github/dockerjava/jaxrs1/util/SelectiveLoggingFilter.java new file mode 100644 index 000000000..1826808f0 --- /dev/null +++ b/src/main/java/com/github/dockerjava/jaxrs1/util/SelectiveLoggingFilter.java @@ -0,0 +1,47 @@ +package com.github.dockerjava.jaxrs1.util; + +import java.util.Set; + +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.MediaType; + +import com.google.common.collect.ImmutableSet; +import com.sun.jersey.api.client.ClientHandlerException; +import com.sun.jersey.api.client.ClientRequest; +import com.sun.jersey.api.client.ClientResponse; + +/** + * A version of the logging filter that will avoid trying to log entities which can cause + * issues with the console. + * + * @author sfitts + * + */ +public class SelectiveLoggingFilter extends com.sun.jersey.api.client.filter.LoggingFilter { + + + private static final Set SKIPPED_CONTENT = ImmutableSet.builder() + .add(MediaType.APPLICATION_OCTET_STREAM) + .add("application/tar") + .build(); + + @Override + public ClientResponse handle(ClientRequest request) throws ClientHandlerException { + // Unless the content type is in the list of those we want to ellide, then just have + // our super-class handle things. + Object contentType = request.getHeaders().getFirst(HttpHeaders.CONTENT_TYPE); + if (contentType != null && SKIPPED_CONTENT.contains(contentType.toString())) { + // Skip logging this. + // + // N.B. -- I'd actually love to reproduce (or better yet just use) the logging code from + // our super-class. However, everything is private (so we can't use it) and the code + // is under a modified GPL which means we can't pull it into an ASL project. Right now + // I don't have the energy to do a clean implementation. + return getNext().handle(request); + } + + // Do what we normally would + return super.handle(request); + } + +} diff --git a/src/main/java/com/github/dockerjava/jaxrs/AbstrDockerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/AbstrDockerCmdExec.java similarity index 97% rename from src/main/java/com/github/dockerjava/jaxrs/AbstrDockerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/AbstrDockerCmdExec.java index 34414d73e..35e1fe7c4 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AbstrDockerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/AbstrDockerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import java.io.IOException; diff --git a/src/main/java/com/github/dockerjava/jaxrs/AttachContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/AttachContainerCmdExec.java similarity index 97% rename from src/main/java/com/github/dockerjava/jaxrs/AttachContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/AttachContainerCmdExec.java index 5ed84c341..7392bb1f3 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AttachContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/AttachContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/AuthCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/AuthCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/AuthCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/AuthCmdExec.java index d73487bb8..3b3a52969 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AuthCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/AuthCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/BuildImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/BuildImageCmdExec.java similarity index 97% rename from src/main/java/com/github/dockerjava/jaxrs/BuildImageCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/BuildImageCmdExec.java index 71d3f902c..9d4203cbe 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/BuildImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/BuildImageCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/CommitCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/CommitCmdExec.java similarity index 97% rename from src/main/java/com/github/dockerjava/jaxrs/CommitCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/CommitCmdExec.java index f1f4fe33a..2ffe2fdda 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/CommitCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/CommitCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/ContainerDiffCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/ContainerDiffCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/ContainerDiffCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/ContainerDiffCmdExec.java index 0a657ed90..ec02a3abd 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/ContainerDiffCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/ContainerDiffCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import java.util.List; diff --git a/src/main/java/com/github/dockerjava/jaxrs/CopyFileFromContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/CopyFileFromContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/CopyFileFromContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/CopyFileFromContainerCmdExec.java index 27b4d5bd6..de15a4565 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/CopyFileFromContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/CopyFileFromContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/CreateContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/CreateContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/CreateContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/CreateContainerCmdExec.java index 26dc25cd2..a314b8963 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/CreateContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/CreateContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/CreateImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/CreateImageCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/CreateImageCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/CreateImageCmdExec.java index 4c7bae8b0..c5da5c326 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/CreateImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/CreateImageCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java b/src/main/java/com/github/dockerjava/jaxrs2/DockerCmdExecFactoryImpl.java similarity index 97% rename from src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java rename to src/main/java/com/github/dockerjava/jaxrs2/DockerCmdExecFactoryImpl.java index 74d3073f0..9181c2192 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/DockerCmdExecFactoryImpl.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import java.io.IOException; import java.util.logging.Logger; @@ -8,6 +8,7 @@ import javax.ws.rs.client.WebTarget; import com.github.dockerjava.api.command.EventsCmd; + import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.client.ClientProperties; import org.glassfish.jersey.CommonProperties; @@ -45,9 +46,9 @@ import com.github.dockerjava.api.command.VersionCmd; import com.github.dockerjava.api.command.WaitContainerCmd; import com.github.dockerjava.core.DockerClientConfig; -import com.github.dockerjava.jaxrs.util.JsonClientFilter; -import com.github.dockerjava.jaxrs.util.ResponseStatusExceptionFilter; -import com.github.dockerjava.jaxrs.util.SelectiveLoggingFilter; +import com.github.dockerjava.jaxrs2.util.JsonClientFilter; +import com.github.dockerjava.jaxrs2.util.ResponseStatusExceptionFilter; +import com.github.dockerjava.jaxrs2.util.SelectiveLoggingFilter; import com.google.common.base.Preconditions; public class DockerCmdExecFactoryImpl implements DockerCmdExecFactory { diff --git a/src/main/java/com/github/dockerjava/jaxrs/EventsCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/EventsCmdExec.java similarity index 98% rename from src/main/java/com/github/dockerjava/jaxrs/EventsCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/EventsCmdExec.java index 545d7db98..8cce112a9 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/EventsCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/EventsCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import java.io.InputStream; import java.util.concurrent.Callable; diff --git a/src/main/java/com/github/dockerjava/jaxrs/InfoCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/InfoCmdExec.java similarity index 95% rename from src/main/java/com/github/dockerjava/jaxrs/InfoCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/InfoCmdExec.java index aff72fab2..29b390902 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/InfoCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/InfoCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; diff --git a/src/main/java/com/github/dockerjava/jaxrs/InspectContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/InspectContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/InspectContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/InspectContainerCmdExec.java index 664a67c59..c93d1c343 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/InspectContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/InspectContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; diff --git a/src/main/java/com/github/dockerjava/jaxrs/InspectImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/InspectImageCmdExec.java similarity index 95% rename from src/main/java/com/github/dockerjava/jaxrs/InspectImageCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/InspectImageCmdExec.java index 784266091..b73c95e75 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/InspectImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/InspectImageCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; diff --git a/src/main/java/com/github/dockerjava/jaxrs/KillContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/KillContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/KillContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/KillContainerCmdExec.java index 28496edc9..1b9e80729 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/KillContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/KillContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/ListContainersCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/ListContainersCmdExec.java similarity index 97% rename from src/main/java/com/github/dockerjava/jaxrs/ListContainersCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/ListContainersCmdExec.java index 018db9a56..eae46ffb3 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/ListContainersCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/ListContainersCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import java.util.List; diff --git a/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/ListImagesCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/ListImagesCmdExec.java index 5a000a294..520aa7551 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/ListImagesCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import java.util.List; diff --git a/src/main/java/com/github/dockerjava/jaxrs/LogContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/LogContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/LogContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/LogContainerCmdExec.java index 46d259424..21fa9f0e8 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/LogContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/LogContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import java.io.InputStream; diff --git a/src/main/java/com/github/dockerjava/jaxrs/PauseContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/PauseContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/PauseContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/PauseContainerCmdExec.java index ee84a3209..4306b92bf 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/PauseContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/PauseContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/PingCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/PingCmdExec.java similarity index 94% rename from src/main/java/com/github/dockerjava/jaxrs/PingCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/PingCmdExec.java index abfb0f4cc..14c24b8aa 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/PingCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/PingCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Response; diff --git a/src/main/java/com/github/dockerjava/jaxrs/PullImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/PullImageCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/PullImageCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/PullImageCmdExec.java index 4ac190be4..f1b44fac7 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/PullImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/PullImageCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/PushImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/PushImageCmdExec.java similarity index 97% rename from src/main/java/com/github/dockerjava/jaxrs/PushImageCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/PushImageCmdExec.java index 8d5aabefb..dbad50541 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/PushImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/PushImageCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/RemoveContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/RemoveContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/RemoveContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/RemoveContainerCmdExec.java index 7f45bdda2..7f40d561d 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/RemoveContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/RemoveContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; diff --git a/src/main/java/com/github/dockerjava/jaxrs/RemoveImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/RemoveImageCmdExec.java similarity index 95% rename from src/main/java/com/github/dockerjava/jaxrs/RemoveImageCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/RemoveImageCmdExec.java index 54fb327b4..80c391aa2 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/RemoveImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/RemoveImageCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Response; diff --git a/src/main/java/com/github/dockerjava/jaxrs/RestartContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/RestartContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/RestartContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/RestartContainerCmdExec.java index fe544f134..7a49bcc4c 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/RestartContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/RestartContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/SearchImagesCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/SearchImagesCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/SearchImagesCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/SearchImagesCmdExec.java index a7b6ddbc2..fd395fa1d 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/SearchImagesCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/SearchImagesCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import java.util.List; diff --git a/src/main/java/com/github/dockerjava/jaxrs/StartContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/StartContainerCmdExec.java similarity index 95% rename from src/main/java/com/github/dockerjava/jaxrs/StartContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/StartContainerCmdExec.java index 8a2c09a44..196bc11d9 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/StartContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/StartContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/StopContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/StopContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/StopContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/StopContainerCmdExec.java index 337c71b2e..34a9c7d45 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/StopContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/StopContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/TagImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/TagImageCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/TagImageCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/TagImageCmdExec.java index d8545e339..3f3e0e896 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/TagImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/TagImageCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/TopContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/TopContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/TopContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/TopContainerCmdExec.java index 55c431ccd..c05ae3f37 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/TopContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/TopContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; diff --git a/src/main/java/com/github/dockerjava/jaxrs/UnpauseContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/UnpauseContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/UnpauseContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/UnpauseContainerCmdExec.java index 361f9adcf..99b50436a 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/UnpauseContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/UnpauseContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; diff --git a/src/main/java/com/github/dockerjava/jaxrs/VersionCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/VersionCmdExec.java similarity index 95% rename from src/main/java/com/github/dockerjava/jaxrs/VersionCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/VersionCmdExec.java index 9b4ac817a..71203fd19 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/VersionCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/VersionCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; diff --git a/src/main/java/com/github/dockerjava/jaxrs/WaitContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs2/WaitContainerCmdExec.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/WaitContainerCmdExec.java rename to src/main/java/com/github/dockerjava/jaxrs2/WaitContainerCmdExec.java index e6f95586c..4dc7a5108 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/WaitContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/WaitContainerCmdExec.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs; +package com.github.dockerjava.jaxrs2; import static javax.ws.rs.client.Entity.entity; diff --git a/src/main/java/com/github/dockerjava/jaxrs/util/JsonClientFilter.java b/src/main/java/com/github/dockerjava/jaxrs2/util/JsonClientFilter.java similarity index 95% rename from src/main/java/com/github/dockerjava/jaxrs/util/JsonClientFilter.java rename to src/main/java/com/github/dockerjava/jaxrs2/util/JsonClientFilter.java index e0eaa4a4a..3c19653ad 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/util/JsonClientFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/util/JsonClientFilter.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs.util; +package com.github.dockerjava.jaxrs2.util; import javax.ws.rs.client.ClientRequestContext; diff --git a/src/main/java/com/github/dockerjava/jaxrs/util/ResponseStatusExceptionFilter.java b/src/main/java/com/github/dockerjava/jaxrs2/util/ResponseStatusExceptionFilter.java similarity index 98% rename from src/main/java/com/github/dockerjava/jaxrs/util/ResponseStatusExceptionFilter.java rename to src/main/java/com/github/dockerjava/jaxrs2/util/ResponseStatusExceptionFilter.java index 61d97f93b..25d0e38c6 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/util/ResponseStatusExceptionFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/util/ResponseStatusExceptionFilter.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs.util; +package com.github.dockerjava.jaxrs2.util; import java.io.EOFException; import java.io.IOException; diff --git a/src/main/java/com/github/dockerjava/jaxrs/util/SelectiveLoggingFilter.java b/src/main/java/com/github/dockerjava/jaxrs2/util/SelectiveLoggingFilter.java similarity index 96% rename from src/main/java/com/github/dockerjava/jaxrs/util/SelectiveLoggingFilter.java rename to src/main/java/com/github/dockerjava/jaxrs2/util/SelectiveLoggingFilter.java index 7f7e06c73..1682f1d9b 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/util/SelectiveLoggingFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs2/util/SelectiveLoggingFilter.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.jaxrs.util; +package com.github.dockerjava.jaxrs2.util; import java.io.IOException; import java.util.Set; diff --git a/src/main/resources/META-INF/services/com.github.dockerjava.api.command.DockerCmdExecFactory b/src/main/resources/META-INF/services/com.github.dockerjava.api.command.DockerCmdExecFactory index f0686bc9f..0fbd6fcd3 100644 --- a/src/main/resources/META-INF/services/com.github.dockerjava.api.command.DockerCmdExecFactory +++ b/src/main/resources/META-INF/services/com.github.dockerjava.api.command.DockerCmdExecFactory @@ -1 +1 @@ -com.github.dockerjava.jaxrs.DockerCmdExecFactoryImpl \ No newline at end of file +com.github.dockerjava.jaxrs1.DockerCmdExecFactoryImpl \ No newline at end of file diff --git a/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java index 353fea12d..6ff40d35a 100644 --- a/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java @@ -14,7 +14,6 @@ import java.lang.reflect.Method; import org.apache.commons.lang.StringUtils; - import org.testng.ITestResult; import org.testng.annotations.AfterMethod; import org.testng.annotations.AfterTest; diff --git a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java index a45333326..9f43f99cd 100644 --- a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java @@ -17,6 +17,7 @@ import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.api.model.*; +import com.github.dockerjava.client.AbstractDockerClientTest; import org.testng.ITestResult; import org.testng.annotations.AfterMethod; @@ -25,8 +26,6 @@ import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; -import com.github.dockerjava.client.AbstractDockerClientTest; - public class StartContainerCmdImplTest extends AbstractDockerClientTest {