diff --git a/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/AbstractDockerMojo.java b/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/AbstractDockerMojo.java index 5884c2967..5f50a1216 100644 --- a/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/AbstractDockerMojo.java +++ b/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/AbstractDockerMojo.java @@ -21,10 +21,10 @@ abstract class AbstractDockerMojo extends AbstractMojo { - protected static final String DEFAULT_MYSQL_CONTAINER = "openmrs-sdk-mysql-v3-2"; + protected static final String DEFAULT_MYSQL_CONTAINER = "openmrs-sdk-mysql-v8-4-1"; protected static final String DEFAULT_MYSQL_EXPOSED_PORT = "3308"; protected static final String DEFAULT_MYSQL_PASSWORD = "Admin123"; - protected static final String MYSQL_5_6 = "mysql:5.6"; + protected static final String MYSQL_8_4_1 = "mysql:8.4.1"; protected static final String DEFAULT_MYSQL_DB_URI = "jdbc:mysql://localhost:" + DEFAULT_MYSQL_EXPOSED_PORT + "/"; private static final Logger logger = LoggerFactory.getLogger(AbstractDockerMojo.class); diff --git a/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java b/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java index f10a580cc..d56e2fd7c 100644 --- a/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java +++ b/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java @@ -62,7 +62,7 @@ public void executeTask() throws MojoExecutionException { } private boolean noMySqlImage(DockerClient docker) { - List mysql = docker.listImagesCmd().withImageNameFilter(MYSQL_5_6).exec(); + List mysql = docker.listImagesCmd().withImageNameFilter(MYSQL_8_4_1).exec(); return mysql.size() == 0; } @@ -81,7 +81,7 @@ private void createMysqlContainer(DockerClient docker) { .withPortBindings(portBinding) .withBinds(boundVolume); - docker.createContainerCmd(MYSQL_5_6) + docker.createContainerCmd(MYSQL_8_4_1) .withHostConfig(hostConfig) .withName(container) .withEnv("MYSQL_ROOT_PASSWORD="+rootPassword) @@ -93,11 +93,11 @@ private void createMysqlContainer(DockerClient docker) { private void pullMySqlImage(DockerClient docker) throws MojoExecutionException { final CountDownLatch latch = new CountDownLatch(1); docker.pullImageCmd("mysql") - .withTag("5.6") + .withTag("8.4.1") .exec(new ResultCallback() { @Override public void onStart(Closeable closeable) { - showMessage("Started downloading mysql:5.6 image ..."); + showMessage("Started downloading mysql:8.4.1 image ..."); } @Override @@ -107,7 +107,7 @@ public void onNext(PullResponseItem object) { @Override public void onError(Throwable throwable) { - + showMessage("Error downloading mysql:8.4.1 image : " + throwable.getMessage()); } @Override diff --git a/maven-plugin/src/main/java/org/openmrs/maven/plugins/utility/DBConnector.java b/maven-plugin/src/main/java/org/openmrs/maven/plugins/utility/DBConnector.java index 24242d0f7..e7d9173b7 100644 --- a/maven-plugin/src/main/java/org/openmrs/maven/plugins/utility/DBConnector.java +++ b/maven-plugin/src/main/java/org/openmrs/maven/plugins/utility/DBConnector.java @@ -15,7 +15,15 @@ public class DBConnector implements AutoCloseable { public DBConnector(String url, String user, String pass, String dbName) throws SQLException { DriverManager.setLoginTimeout(60); - this.connection = DriverManager.getConnection(url, user, pass); + /* + * Connection attempts to a database in a newly created Docker container might fail on the first try due to the container not being fully ready + * This is to mitigate such errors. + */ + try { + this.connection = DriverManager.getConnection(url, user, pass); + } catch (SQLException e) { + this.connection = DriverManager.getConnection(url, user, pass); + } this.dbName = dbName; } diff --git a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java index 0b0c8ce35..8c3e53e3f 100644 --- a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java +++ b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java @@ -118,7 +118,7 @@ public class DefaultWizard implements Wizard { public static final String DB_OPTION_MYSQL = "MySQL 5.6 and above (requires pre-installed MySQL 5.6 and above)"; - public static final String DB_OPTION_SDK_DOCKER_MYSQL = "MySQL 5.6 and above in SDK docker container (requires pre-installed Docker)"; + public static final String DB_OPTION_SDK_DOCKER_MYSQL = "MySQL 8.4.1 and above in SDK docker container (requires pre-installed Docker)"; public static final String DB_OPTION_DOCKER_MYSQL = "Existing docker container (requires pre-installed Docker)"; diff --git a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java index aad2ac3a1..e51b5cb33 100644 --- a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java +++ b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java @@ -26,7 +26,7 @@ public class DockerHelper { - public static final String DOCKER_DEFAULT_CONTAINER_ID = "openmrs-sdk-mysql-v3-2"; + public static final String DOCKER_DEFAULT_CONTAINER_ID = "openmrs-sdk-mysql-v8-4-1"; public static final String DOCKER_MYSQL_PORT = "3308"; public static final String DOCKER_MYSQL_USERNAME = "root"; public static final String DOCKER_MYSQL_PASSWORD = "Admin123";