diff --git a/pom.xml b/pom.xml index fc6b068..aa2ed65 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cawandu https://github.com/julian-eggers/cawandu - 0.2.25-RELEASE + 0.3.0-RELEASE @@ -17,7 +17,7 @@ 2.7 4.1.0 - 1.6.4 + 1.6.6 3.4 8.0.2.2 @@ -27,7 +27,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.4.RELEASE + 1.5.1.RELEASE @@ -153,7 +153,7 @@ com.spotify docker-client - 6.1.1 + 7.0.2 org.json @@ -170,8 +170,8 @@ provided - - + + https://github.com/julian-eggers/cawandu scm:git:https://github.com/julian-eggers/cawandu.git scm:git:https://github.com/julian-eggers/cawandu.git @@ -213,6 +213,10 @@ org.springframework.boot spring-boot-maven-plugin + + pl.project13.maven + git-commit-id-plugin + org.codehaus.mojo @@ -244,10 +248,10 @@ true ${project.version} - 0.2 + 0.3 latest - jeanblanchard/java:serverjre-8 + openjdk:8-jre-alpine /var/log/apps diff --git a/src/main/java/com/itelg/docker/cawandu/config/DockerConfiguration.java b/src/main/java/com/itelg/docker/cawandu/config/DockerConfiguration.java index 9d0661a..f069ffd 100644 --- a/src/main/java/com/itelg/docker/cawandu/config/DockerConfiguration.java +++ b/src/main/java/com/itelg/docker/cawandu/config/DockerConfiguration.java @@ -17,7 +17,7 @@ import com.spotify.docker.client.DockerClient; import com.spotify.docker.client.exceptions.DockerCertificateException; import com.spotify.docker.client.exceptions.DockerException; -import com.spotify.docker.client.messages.AuthConfig; +import com.spotify.docker.client.messages.RegistryAuth; @Configuration public class DockerConfiguration @@ -46,7 +46,7 @@ public void postConstruct() public DockerClient dockerClient() throws DockerCertificateException { DefaultDockerClient.Builder dockerClientBuilder = getDockerClientBuilder(); - dockerClientBuilder.authConfig(getAuthConfig()); + dockerClientBuilder.registryAuth(getAuthConfig()); DockerClient dockerClient = dockerClientBuilder.build(); return dockerClient; } @@ -70,11 +70,11 @@ else if (Files.exists(Paths.get("/var/run/docker.sock"))) } } - private AuthConfig getAuthConfig() + private RegistryAuth getAuthConfig() { if (isNotBlank(dockerRegistryUsername) && isNotBlank(dockerRegistryEmail) && isNotBlank(dockerRegistryPassword)) { - AuthConfig.Builder authConfigBuilder = AuthConfig.builder(); + RegistryAuth.Builder authConfigBuilder = RegistryAuth.builder(); authConfigBuilder.username(dockerRegistryUsername); authConfigBuilder.email(dockerRegistryEmail); authConfigBuilder.password(dockerRegistryPassword); diff --git a/src/main/java/com/itelg/docker/cawandu/repository/http/parser/AbstractJsonConverter.java b/src/main/java/com/itelg/docker/cawandu/repository/http/parser/AbstractJsonConverter.java new file mode 100644 index 0000000..48be8e9 --- /dev/null +++ b/src/main/java/com/itelg/docker/cawandu/repository/http/parser/AbstractJsonConverter.java @@ -0,0 +1,22 @@ +package com.itelg.docker.cawandu.repository.http.parser; + +import org.json.JSONException; +import org.springframework.core.convert.converter.Converter; + +public abstract class AbstractJsonConverter implements Converter +{ + @Override + public T convert(String json) + { + try + { + return convertJson(json); + } + catch (JSONException e) + { + throw new RuntimeException(e); + } + } + + protected abstract T convertJson(String json) throws JSONException; +} \ No newline at end of file diff --git a/src/main/java/com/itelg/docker/cawandu/repository/http/parser/RegistryAuthTokenParser.java b/src/main/java/com/itelg/docker/cawandu/repository/http/parser/RegistryAuthTokenParser.java index 58e0d6d..1f74191 100644 --- a/src/main/java/com/itelg/docker/cawandu/repository/http/parser/RegistryAuthTokenParser.java +++ b/src/main/java/com/itelg/docker/cawandu/repository/http/parser/RegistryAuthTokenParser.java @@ -1,14 +1,14 @@ package com.itelg.docker.cawandu.repository.http.parser; +import org.json.JSONException; import org.json.JSONObject; -import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; @Component -public class RegistryAuthTokenParser implements Converter +public class RegistryAuthTokenParser extends AbstractJsonConverter { @Override - public String convert(String json) + public String convertJson(String json) throws JSONException { return new JSONObject(json).getString("token"); } diff --git a/src/main/java/com/itelg/docker/cawandu/repository/http/parser/RegistryImageTagListParser.java b/src/main/java/com/itelg/docker/cawandu/repository/http/parser/RegistryImageTagListParser.java index 40e4b69..fe966f6 100644 --- a/src/main/java/com/itelg/docker/cawandu/repository/http/parser/RegistryImageTagListParser.java +++ b/src/main/java/com/itelg/docker/cawandu/repository/http/parser/RegistryImageTagListParser.java @@ -5,15 +5,15 @@ import java.util.List; import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; -import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; @Component -public class RegistryImageTagListParser implements Converter> +public class RegistryImageTagListParser extends AbstractJsonConverter> { @Override - public List convert(String json) + public List convertJson(String json) throws JSONException { JSONObject jsonObject = new JSONObject(json); JSONArray jsonArray = jsonObject.getJSONArray("tags"); diff --git a/src/test/java/com/itelg/docker/cawandu/repository/dockerclient/converter/ContainerConverterTest.java b/src/test/java/com/itelg/docker/cawandu/repository/dockerclient/converter/ContainerConverterTest.java deleted file mode 100644 index 053e8dc..0000000 --- a/src/test/java/com/itelg/docker/cawandu/repository/dockerclient/converter/ContainerConverterTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.itelg.docker.cawandu.repository.dockerclient.converter; - -import java.time.LocalDateTime; -import java.util.Collections; -import java.util.HashMap; - -import org.junit.Assert; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.itelg.docker.cawandu.domain.container.ContainerState; -import com.spotify.docker.client.messages.Container; - -public class ContainerConverterTest -{ - @Test - public void testConvert() - { - Container clientContainer = new Container(); - Whitebox.setInternalState(clientContainer, "id", "123"); - Whitebox.setInternalState(clientContainer, "status", "Up"); - Whitebox.setInternalState(clientContainer, "names", ImmutableList.of("/test")); - Whitebox.setInternalState(clientContainer, "image", "jeggers/cawandu:latest"); - Whitebox.setInternalState(clientContainer, "imageId", "123456789"); - Whitebox.setInternalState(clientContainer, "labels", ImmutableMap.of("key", "value")); - Whitebox.setInternalState(clientContainer, "created", Long.valueOf(1459512451)); - - com.itelg.docker.cawandu.domain.container.Container container = new ContainerConverter().convert(clientContainer); - Assert.assertEquals("123", container.getId()); - Assert.assertEquals(ContainerState.UP, container.getState()); - Assert.assertEquals("test", container.getName()); - Assert.assertEquals("jeggers/cawandu:latest", container.getImageName()); - Assert.assertEquals("123456789", container.getImageId()); - Assert.assertEquals(Collections.singletonMap("key", "value"), container.getLabels()); - Assert.assertEquals(HashMap.class, container.getLabels().getClass()); - Assert.assertEquals(LocalDateTime.of(2016, 4, 1, 12, 7, 31), container.getCreated()); - } -} \ No newline at end of file