Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,13 @@ default String getJdbcUrl(ContainerAddress containerAddress, String databaseName

String getJdbcPrefix();

default String getParametersStartCharacter() {
return "?";
}

default String getParameters(Map<String, String> labels) {
String parameters = labels.get(Labels.COMPOSE_JDBC_PARAMETERS);
return StringUtil.isNullOrEmpty(parameters) ? "" : "?" + parameters;
return StringUtil.isNullOrEmpty(parameters) ? "" : getParametersStartCharacter() + parameters;
}

}
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package io.quarkus.devservices.mssql.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 io.quarkus.datasource.deployment.spi.DevServicesDatasourceContainerConfig;
import io.quarkus.datasource.deployment.spi.DevServicesDatasourceProvider.RunningDevServicesDatasource;
Expand All @@ -12,17 +10,16 @@

public class MSSQLDatasourceServiceConfigurator implements DatasourceServiceConfigurator {

private final static String[] PASSWORD_ENVS = new String[] { "MSSQL_SA_PASSWORD", "SA_PASSWORD" };
private final static String[] PASSWORD_ENVS = new String[] { "MSSQL_SA_PASSWORD", "SA_PASSWORD", "MSSQL_PASSWORD" };

private final static String[] DATABASE_ENVS = new String[] { "POSTGRES_DB", "POSTGRESQL_DB", "POSTGRESQL_DATABASE" };
private final static String DEFAULT_MSSQL_USERNAME = "sa";

public RunningDevServicesDatasource composeRunningService(ContainerAddress containerAddress,
DevServicesDatasourceContainerConfig containerConfig) {
RunningContainer container = containerAddress.getRunningContainer();
String effectiveDbName = containerConfig.getDbName().orElse(DEFAULT_DATABASE_NAME);
String effectiveUsername = containerConfig.getDbName().orElse(DEFAULT_DATABASE_USERNAME);
String effectivePassword = containerConfig.getDbName().orElse(DEFAULT_DATABASE_PASSWORD);
String jdbcUrl = getJdbcUrl(containerAddress, container.tryGetEnv(DATABASE_ENVS).orElse(effectiveDbName));
String effectiveUsername = containerConfig.getUsername().orElse(DEFAULT_MSSQL_USERNAME);
String effectivePassword = containerConfig.getPassword().orElse(DEFAULT_DATABASE_PASSWORD);
String jdbcUrl = getJdbcUrl(containerAddress, null);
String reactiveUrl = getReactiveUrl(jdbcUrl);
return new RunningDevServicesDatasource(
containerAddress.getId(),
Expand All @@ -38,4 +35,18 @@ public String getJdbcPrefix() {
return "sqlserver";
}

@Override
public String getParametersStartCharacter() {
return ";";
}

@Override
public String getJdbcUrl(ContainerAddress containerAddress, String databaseName) {
return String.format("jdbc:%s://%s:%d%s",
getJdbcPrefix(),
containerAddress.getHost(),
containerAddress.getPort(),
getParameters(containerAddress.getRunningContainer().containerInfo().labels()));
}

}
Loading