From 137fb26234f805ff9ceedb87d3ae2390cf46868f Mon Sep 17 00:00:00 2001 From: newur Date: Sun, 1 May 2022 15:42:58 +0200 Subject: [PATCH] Unify Dev Services datasource names --- .../test/DevServicesH2DatasourceTestCase.java | 4 +++- .../MultipleDevServicesDataSourcesConfigTest.java | 13 +++++++++---- .../deployment/spi/DatabaseDefaultSetupConfig.java | 13 +++++++++++++ .../db2/deployment/DB2DevServicesProcessor.java | 10 +++++++--- .../h2/deployment/H2DevServicesProcessor.java | 14 +++++++++----- .../deployment/MariaDBDevServicesProcessor.java | 10 +++++++--- .../deployment/MSSQLDevServicesProcessor.java | 4 +++- .../deployment/MySQLDevServicesProcessor.java | 10 +++++++--- .../deployment/OracleDevServicesProcessor.java | 9 +++++---- .../deployment/PostgresqlDevServicesProcessor.java | 10 +++++++--- .../it/opentelemetry/vertx/SqlClientTest.java | 2 +- 11 files changed, 71 insertions(+), 28 deletions(-) create mode 100644 extensions/datasource/deployment-spi/src/main/java/io/quarkus/datasource/deployment/spi/DatabaseDefaultSetupConfig.java diff --git a/extensions/agroal/deployment/src/test/java/io/quarkus/agroal/test/DevServicesH2DatasourceTestCase.java b/extensions/agroal/deployment/src/test/java/io/quarkus/agroal/test/DevServicesH2DatasourceTestCase.java index c29d39d62ecd3..bf750efb887e0 100644 --- a/extensions/agroal/deployment/src/test/java/io/quarkus/agroal/test/DevServicesH2DatasourceTestCase.java +++ b/extensions/agroal/deployment/src/test/java/io/quarkus/agroal/test/DevServicesH2DatasourceTestCase.java @@ -16,6 +16,7 @@ import io.agroal.api.AgroalDataSource; import io.agroal.api.configuration.AgroalConnectionPoolConfiguration; import io.agroal.api.configuration.AgroalConnectionPoolConfiguration.ExceptionSorter; +import io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig; import io.quarkus.test.QuarkusUnitTest; public class DevServicesH2DatasourceTestCase { @@ -40,7 +41,8 @@ public class DevServicesH2DatasourceTestCase { public void testDatasource() throws Exception { AgroalConnectionPoolConfiguration configuration = dataSource.getConfiguration().connectionPoolConfiguration(); assertTrue(configuration.connectionFactoryConfiguration().jdbcUrl().contains("jdbc:h2:")); - assertEquals("sa", configuration.connectionFactoryConfiguration().principal().getName()); + assertEquals(DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME, + configuration.connectionFactoryConfiguration().principal().getName()); assertEquals(20, configuration.maxSize()); assertThat(configuration.exceptionSorter()).isInstanceOf(ExceptionSorter.emptyExceptionSorter().getClass()); diff --git a/extensions/agroal/deployment/src/test/java/io/quarkus/agroal/test/MultipleDevServicesDataSourcesConfigTest.java b/extensions/agroal/deployment/src/test/java/io/quarkus/agroal/test/MultipleDevServicesDataSourcesConfigTest.java index 15cbc2484e5df..786123ddcabea 100644 --- a/extensions/agroal/deployment/src/test/java/io/quarkus/agroal/test/MultipleDevServicesDataSourcesConfigTest.java +++ b/extensions/agroal/deployment/src/test/java/io/quarkus/agroal/test/MultipleDevServicesDataSourcesConfigTest.java @@ -13,6 +13,7 @@ import io.agroal.api.AgroalDataSource; import io.quarkus.agroal.DataSource; +import io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig; import io.quarkus.test.QuarkusUnitTest; public class MultipleDevServicesDataSourcesConfigTest { @@ -38,12 +39,16 @@ public class MultipleDevServicesDataSourcesConfigTest { @Test public void testDataSourceInjection() throws SQLException { - testDataSource("default", defaultDataSource, - "jdbc:h2:tcp://localhost:" + extractPort(defaultDataSource) + "/mem:default;DB_CLOSE_DELAY=-1", "sa", 20); + testDataSource(DatabaseDefaultSetupConfig.DEFAULT_DATABASE_NAME, defaultDataSource, + "jdbc:h2:tcp://localhost:" + extractPort(defaultDataSource) + "/mem:" + + DatabaseDefaultSetupConfig.DEFAULT_DATABASE_NAME + ";DB_CLOSE_DELAY=-1", + DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME, 20); testDataSource("users", dataSource1, - "jdbc:h2:tcp://localhost:" + extractPort(dataSource1) + "/mem:users;DB_CLOSE_DELAY=-1", "sa", 20); + "jdbc:h2:tcp://localhost:" + extractPort(dataSource1) + "/mem:users;DB_CLOSE_DELAY=-1", + DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME, 20); testDataSource("inventory", dataSource2, - "jdbc:h2:tcp://localhost:" + extractPort(dataSource2) + "/mem:inventory;DB_CLOSE_DELAY=-1", "sa", 20); + "jdbc:h2:tcp://localhost:" + extractPort(dataSource2) + "/mem:inventory;DB_CLOSE_DELAY=-1", + DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME, 20); } public int extractPort(AgroalDataSource ds) { diff --git a/extensions/datasource/deployment-spi/src/main/java/io/quarkus/datasource/deployment/spi/DatabaseDefaultSetupConfig.java b/extensions/datasource/deployment-spi/src/main/java/io/quarkus/datasource/deployment/spi/DatabaseDefaultSetupConfig.java new file mode 100644 index 0000000000000..adccdb4b23172 --- /dev/null +++ b/extensions/datasource/deployment-spi/src/main/java/io/quarkus/datasource/deployment/spi/DatabaseDefaultSetupConfig.java @@ -0,0 +1,13 @@ +package io.quarkus.datasource.deployment.spi; + +public final class DatabaseDefaultSetupConfig { + + private DatabaseDefaultSetupConfig() { + } + + public static final String DEFAULT_DATABASE_USERNAME = "quarkus"; + + // mssql container enforces a 'strong' password with min 8 chars, upper/lowercase, number or special char + public static final String DEFAULT_DATABASE_PASSWORD = "qu@rkus1"; + public static final String DEFAULT_DATABASE_NAME = "quarkus"; +} diff --git a/extensions/devservices/db2/src/main/java/io/quarkus/devservices/db2/deployment/DB2DevServicesProcessor.java b/extensions/devservices/db2/src/main/java/io/quarkus/devservices/db2/deployment/DB2DevServicesProcessor.java index 6fb9218f41c2a..fccd627fa4cff 100644 --- a/extensions/devservices/db2/src/main/java/io/quarkus/devservices/db2/deployment/DB2DevServicesProcessor.java +++ b/extensions/devservices/db2/src/main/java/io/quarkus/devservices/db2/deployment/DB2DevServicesProcessor.java @@ -1,5 +1,9 @@ package io.quarkus.devservices.db2.deployment; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_NAME; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_PASSWORD; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME; + import java.io.Closeable; import java.io.IOException; import java.time.Duration; @@ -36,9 +40,9 @@ public RunningDevServicesDatasource startDatabase(Optional username, Opt QuarkusDb2Container container = new QuarkusDb2Container(imageName, fixedExposedPort, !devServicesSharedNetworkBuildItem.isEmpty()); startupTimeout.ifPresent(container::withStartupTimeout); - container.withPassword(password.orElse("quarkus")) - .withUsername(username.orElse("quarkus")) - .withDatabaseName(datasourceName.orElse("default")); + container.withUsername(username.orElse(DEFAULT_DATABASE_USERNAME)) + .withPassword(password.orElse(DEFAULT_DATABASE_PASSWORD)) + .withDatabaseName(datasourceName.orElse(DEFAULT_DATABASE_NAME)); additionalJdbcUrlProperties.forEach(container::withUrlParam); container.start(); diff --git a/extensions/devservices/h2/src/main/java/io/quarkus/devservices/h2/deployment/H2DevServicesProcessor.java b/extensions/devservices/h2/src/main/java/io/quarkus/devservices/h2/deployment/H2DevServicesProcessor.java index 9b4fb7a7200aa..85ead84a6dce9 100644 --- a/extensions/devservices/h2/src/main/java/io/quarkus/devservices/h2/deployment/H2DevServicesProcessor.java +++ b/extensions/devservices/h2/src/main/java/io/quarkus/devservices/h2/deployment/H2DevServicesProcessor.java @@ -1,5 +1,9 @@ package io.quarkus.devservices.h2.deployment; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_NAME; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_PASSWORD; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME; + import java.io.Closeable; import java.io.IOException; import java.sql.Connection; @@ -49,12 +53,12 @@ public RunningDevServicesDatasource startDatabase(Optional username, Opt LOG.info("Dev Services for H2 started."); String connectionUrl = "jdbc:h2:tcp://localhost:" + tcpServer.getPort() + "/mem:" - + datasourceName.orElse("default") + + datasourceName.orElse(DEFAULT_DATABASE_NAME) + ";DB_CLOSE_DELAY=-1" + additionalArgs.toString(); return new RunningDevServicesDatasource(null, connectionUrl, - "sa", - "sa", + DEFAULT_DATABASE_USERNAME, + DEFAULT_DATABASE_PASSWORD, new Closeable() { @Override public void close() throws IOException { @@ -64,8 +68,8 @@ public void close() throws IOException { //make sure the DB is removed on close try (Connection connection = DriverManager.getConnection( connectionUrl, - "sa", - "sa")) { + DEFAULT_DATABASE_USERNAME, + DEFAULT_DATABASE_PASSWORD)) { try (Statement statement = connection.createStatement()) { statement.execute("SET DB_CLOSE_DELAY 0"); } diff --git a/extensions/devservices/mariadb/src/main/java/io/quarkus/devservices/mariadb/deployment/MariaDBDevServicesProcessor.java b/extensions/devservices/mariadb/src/main/java/io/quarkus/devservices/mariadb/deployment/MariaDBDevServicesProcessor.java index d0d6bc62f6428..8fcdcaee6c7f2 100644 --- a/extensions/devservices/mariadb/src/main/java/io/quarkus/devservices/mariadb/deployment/MariaDBDevServicesProcessor.java +++ b/extensions/devservices/mariadb/src/main/java/io/quarkus/devservices/mariadb/deployment/MariaDBDevServicesProcessor.java @@ -1,5 +1,9 @@ package io.quarkus.devservices.mariadb.deployment; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_NAME; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_PASSWORD; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME; + import java.io.Closeable; import java.io.IOException; import java.time.Duration; @@ -39,9 +43,9 @@ public RunningDevServicesDatasource startDatabase(Optional username, Opt QuarkusMariaDBContainer container = new QuarkusMariaDBContainer(imageName, fixedExposedPort, !devServicesSharedNetworkBuildItem.isEmpty()); startupTimeout.ifPresent(container::withStartupTimeout); - container.withPassword(password.orElse("quarkus")) - .withUsername(username.orElse("quarkus")) - .withDatabaseName(datasourceName.orElse("default")); + container.withUsername(username.orElse(DEFAULT_DATABASE_USERNAME)) + .withPassword(password.orElse(DEFAULT_DATABASE_PASSWORD)) + .withDatabaseName(datasourceName.orElse(DEFAULT_DATABASE_NAME)); if (containerProperties.containsKey(MY_CNF_CONFIG_OVERRIDE_PARAM_NAME)) { container.withConfigurationOverride(containerProperties.get(MY_CNF_CONFIG_OVERRIDE_PARAM_NAME)); diff --git a/extensions/devservices/mssql/src/main/java/io/quarkus/devservices/mssql/deployment/MSSQLDevServicesProcessor.java b/extensions/devservices/mssql/src/main/java/io/quarkus/devservices/mssql/deployment/MSSQLDevServicesProcessor.java index 412e0cf84c931..939350c48edc1 100644 --- a/extensions/devservices/mssql/src/main/java/io/quarkus/devservices/mssql/deployment/MSSQLDevServicesProcessor.java +++ b/extensions/devservices/mssql/src/main/java/io/quarkus/devservices/mssql/deployment/MSSQLDevServicesProcessor.java @@ -1,5 +1,7 @@ package io.quarkus.devservices.mssql.deployment; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_PASSWORD; + import java.io.Closeable; import java.io.IOException; import java.time.Duration; @@ -36,7 +38,7 @@ public RunningDevServicesDatasource startDatabase(Optional username, Opt QuarkusMSSQLServerContainer container = new QuarkusMSSQLServerContainer(imageName, fixedExposedPort, !devServicesSharedNetworkBuildItem.isEmpty()); startupTimeout.ifPresent(container::withStartupTimeout); - container.withPassword(password.orElse("Quarkuspassword1")); + container.withPassword(password.orElse(DEFAULT_DATABASE_PASSWORD)); additionalJdbcUrlProperties.forEach(container::withUrlParam); container.start(); diff --git a/extensions/devservices/mysql/src/main/java/io/quarkus/devservices/mysql/deployment/MySQLDevServicesProcessor.java b/extensions/devservices/mysql/src/main/java/io/quarkus/devservices/mysql/deployment/MySQLDevServicesProcessor.java index 2f6c834bff0eb..9aab744078c68 100644 --- a/extensions/devservices/mysql/src/main/java/io/quarkus/devservices/mysql/deployment/MySQLDevServicesProcessor.java +++ b/extensions/devservices/mysql/src/main/java/io/quarkus/devservices/mysql/deployment/MySQLDevServicesProcessor.java @@ -1,5 +1,9 @@ package io.quarkus.devservices.mysql.deployment; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_NAME; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_PASSWORD; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME; + import java.io.Closeable; import java.io.IOException; import java.time.Duration; @@ -38,9 +42,9 @@ public RunningDevServicesDatasource startDatabase(Optional username, Opt QuarkusMySQLContainer container = new QuarkusMySQLContainer(imageName, fixedExposedPort, !devServicesSharedNetworkBuildItem.isEmpty()); startupTimeout.ifPresent(container::withStartupTimeout); - container.withPassword(password.orElse("quarkus")) - .withUsername(username.orElse("quarkus")) - .withDatabaseName(datasourceName.orElse("default")); + container.withUsername(username.orElse(DEFAULT_DATABASE_USERNAME)) + .withPassword(password.orElse(DEFAULT_DATABASE_PASSWORD)) + .withDatabaseName(datasourceName.orElse(DEFAULT_DATABASE_NAME)); if (containerProperties.containsKey(MY_CNF_CONFIG_OVERRIDE_PARAM_NAME)) { container.withConfigurationOverride(containerProperties.get(MY_CNF_CONFIG_OVERRIDE_PARAM_NAME)); diff --git a/extensions/devservices/oracle/src/main/java/io/quarkus/devservices/oracle/deployment/OracleDevServicesProcessor.java b/extensions/devservices/oracle/src/main/java/io/quarkus/devservices/oracle/deployment/OracleDevServicesProcessor.java index 80889956024fd..e8c9043bdd7e8 100644 --- a/extensions/devservices/oracle/src/main/java/io/quarkus/devservices/oracle/deployment/OracleDevServicesProcessor.java +++ b/extensions/devservices/oracle/src/main/java/io/quarkus/devservices/oracle/deployment/OracleDevServicesProcessor.java @@ -1,5 +1,9 @@ package io.quarkus.devservices.oracle.deployment; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_NAME; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_PASSWORD; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME; + import java.io.Closeable; import java.io.IOException; import java.time.Duration; @@ -25,9 +29,6 @@ public class OracleDevServicesProcessor { private static final Logger LOG = Logger.getLogger(OracleDevServicesProcessor.class); public static final String IMAGE = "gvenzl/oracle-xe"; - public static final String DEFAULT_DATABASE_USER = "quarkus"; - public static final String DEFAULT_DATABASE_PASSWORD = "quarkus"; - public static final String DEFAULT_DATABASE_NAME = "quarkusdb"; public static final int PORT = 1521; @BuildStep @@ -42,7 +43,7 @@ public RunningDevServicesDatasource startDatabase(Optional username, Opt QuarkusOracleServerContainer container = new QuarkusOracleServerContainer(imageName, fixedExposedPort, !devServicesSharedNetworkBuildItem.isEmpty()); startupTimeout.ifPresent(container::withStartupTimeout); - container.withUsername(username.orElse(DEFAULT_DATABASE_USER)) + container.withUsername(username.orElse(DEFAULT_DATABASE_USERNAME)) .withPassword(password.orElse(DEFAULT_DATABASE_PASSWORD)) .withDatabaseName(datasourceName.orElse(DEFAULT_DATABASE_NAME)); diff --git a/extensions/devservices/postgresql/src/main/java/io/quarkus/devservices/postgresql/deployment/PostgresqlDevServicesProcessor.java b/extensions/devservices/postgresql/src/main/java/io/quarkus/devservices/postgresql/deployment/PostgresqlDevServicesProcessor.java index 575e6612ba1d6..65aef486617f4 100644 --- a/extensions/devservices/postgresql/src/main/java/io/quarkus/devservices/postgresql/deployment/PostgresqlDevServicesProcessor.java +++ b/extensions/devservices/postgresql/src/main/java/io/quarkus/devservices/postgresql/deployment/PostgresqlDevServicesProcessor.java @@ -1,5 +1,9 @@ package io.quarkus.devservices.postgresql.deployment; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_NAME; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_PASSWORD; +import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME; + import java.io.Closeable; import java.io.IOException; import java.time.Duration; @@ -43,9 +47,9 @@ public RunningDevServicesDatasource startDatabase(Optional username, Opt QuarkusPostgreSQLContainer container = new QuarkusPostgreSQLContainer(imageName, fixedExposedPort, !devServicesSharedNetworkBuildItem.isEmpty()); startupTimeout.ifPresent(container::withStartupTimeout); - container.withPassword(password.orElse("quarkus")) - .withUsername(username.orElse("quarkus")) - .withDatabaseName(datasourceName.orElse("default")); + container.withUsername(username.orElse(DEFAULT_DATABASE_USERNAME)) + .withPassword(password.orElse(DEFAULT_DATABASE_PASSWORD)) + .withDatabaseName(datasourceName.orElse(DEFAULT_DATABASE_NAME)); additionalJdbcUrlProperties.forEach(container::withUrlParam); container.start(); diff --git a/integration-tests/opentelemetry-vertx/src/test/java/io/quarkus/it/opentelemetry/vertx/SqlClientTest.java b/integration-tests/opentelemetry-vertx/src/test/java/io/quarkus/it/opentelemetry/vertx/SqlClientTest.java index 11c8dc7434036..cc602c44d7bd1 100644 --- a/integration-tests/opentelemetry-vertx/src/test/java/io/quarkus/it/opentelemetry/vertx/SqlClientTest.java +++ b/integration-tests/opentelemetry-vertx/src/test/java/io/quarkus/it/opentelemetry/vertx/SqlClientTest.java @@ -100,7 +100,7 @@ void sqlClient() { assertEquals("h2", spans.get(1).getAttributes().get(DB_SYSTEM)); assertEquals("SELECT", spans.get(1).getAttributes().get(DB_OPERATION)); assertEquals("SELECT * FROM USERS", spans.get(1).getAttributes().get(DB_STATEMENT)); - assertEquals("sa", spans.get(1).getAttributes().get(DB_USER)); + assertEquals("quarkus", spans.get(1).getAttributes().get(DB_USER)); assertNotNull(spans.get(1).getAttributes().get(DB_CONNECTION_STRING)); //noinspection ConstantConditions assertTrue(spans.get(1).getAttributes().get(DB_CONNECTION_STRING).startsWith("jdbc:h2:tcp://localhost"));