Skip to content

Commit 13ec08e

Browse files
committed
Compose Dev Services MS SQL configurator fix
Fixes #48322
1 parent a0659db commit 13ec08e

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

extensions/devservices/common/src/main/java/io/quarkus/devservices/common/DatasourceServiceConfigurator.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ default String getJdbcUrl(ContainerAddress containerAddress, String databaseName
2121

2222
String getJdbcPrefix();
2323

24+
default String getParametersStartCharacter() {
25+
return "?";
26+
}
27+
2428
default String getParameters(Map<String, String> labels) {
2529
String parameters = labels.get(Labels.COMPOSE_JDBC_PARAMETERS);
26-
return StringUtil.isNullOrEmpty(parameters) ? "" : "?" + parameters;
30+
return StringUtil.isNullOrEmpty(parameters) ? "" : getParametersStartCharacter() + parameters;
2731
}
2832

2933
}

extensions/devservices/mssql/src/main/java/io/quarkus/devservices/mssql/deployment/MSSQLDatasourceServiceConfigurator.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package io.quarkus.devservices.mssql.deployment;
22

3-
import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_NAME;
43
import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_PASSWORD;
5-
import static io.quarkus.datasource.deployment.spi.DatabaseDefaultSetupConfig.DEFAULT_DATABASE_USERNAME;
64

75
import io.quarkus.datasource.deployment.spi.DevServicesDatasourceContainerConfig;
86
import io.quarkus.datasource.deployment.spi.DevServicesDatasourceProvider.RunningDevServicesDatasource;
@@ -12,17 +10,16 @@
1210

1311
public class MSSQLDatasourceServiceConfigurator implements DatasourceServiceConfigurator {
1412

15-
private final static String[] PASSWORD_ENVS = new String[] { "MSSQL_SA_PASSWORD", "SA_PASSWORD" };
13+
private final static String[] PASSWORD_ENVS = new String[] { "MSSQL_SA_PASSWORD", "SA_PASSWORD", "MSSQL_PASSWORD" };
1614

17-
private final static String[] DATABASE_ENVS = new String[] { "POSTGRES_DB", "POSTGRESQL_DB", "POSTGRESQL_DATABASE" };
15+
private final static String DEFAULT_MSSQL_USERNAME = "sa";
1816

1917
public RunningDevServicesDatasource composeRunningService(ContainerAddress containerAddress,
2018
DevServicesDatasourceContainerConfig containerConfig) {
2119
RunningContainer container = containerAddress.getRunningContainer();
22-
String effectiveDbName = containerConfig.getDbName().orElse(DEFAULT_DATABASE_NAME);
23-
String effectiveUsername = containerConfig.getDbName().orElse(DEFAULT_DATABASE_USERNAME);
24-
String effectivePassword = containerConfig.getDbName().orElse(DEFAULT_DATABASE_PASSWORD);
25-
String jdbcUrl = getJdbcUrl(containerAddress, container.tryGetEnv(DATABASE_ENVS).orElse(effectiveDbName));
20+
String effectiveUsername = containerConfig.getUsername().orElse(DEFAULT_MSSQL_USERNAME);
21+
String effectivePassword = containerConfig.getPassword().orElse(DEFAULT_DATABASE_PASSWORD);
22+
String jdbcUrl = getJdbcUrl(containerAddress, null);
2623
String reactiveUrl = getReactiveUrl(jdbcUrl);
2724
return new RunningDevServicesDatasource(
2825
containerAddress.getId(),
@@ -38,4 +35,18 @@ public String getJdbcPrefix() {
3835
return "sqlserver";
3936
}
4037

38+
@Override
39+
public String getParametersStartCharacter() {
40+
return ";";
41+
}
42+
43+
@Override
44+
public String getJdbcUrl(ContainerAddress containerAddress, String databaseName) {
45+
return String.format("jdbc:%s://%s:%d%s",
46+
getJdbcPrefix(),
47+
containerAddress.getHost(),
48+
containerAddress.getPort(),
49+
getParameters(containerAddress.getRunningContainer().containerInfo().labels()));
50+
}
51+
4152
}

0 commit comments

Comments
 (0)