Add db-url-port option
to set the port when not using a full db-url closes #11251
This commit is contained in:
parent
7058a123b1
commit
7811f3721a
10 changed files with 38 additions and 11 deletions
|
@ -58,6 +58,11 @@ final class DatabasePropertyMappers {
|
|||
.description("Sets the database name of the default JDBC URL of the chosen vendor. If the `db-url` option is set, this option is ignored.")
|
||||
.paramLabel("dbname")
|
||||
.build(),
|
||||
builder().from("db-url-port")
|
||||
.to("kc.db-url-port")
|
||||
.description("Sets the port of the default JDBC URL of the chosen vendor. If the `db-url` option is set, this option is ignored.")
|
||||
.paramLabel("port")
|
||||
.build(),
|
||||
builder().from("db-url-properties")
|
||||
.to("kc.db-url-properties")
|
||||
.description("Sets the properties of the default JDBC URL of the chosen vendor. If the `db-url` option is set, this option is ignored.")
|
||||
|
|
|
@ -119,21 +119,21 @@ public final class Database {
|
|||
"com.mysql.cj.jdbc.MysqlXADataSource",
|
||||
"com.mysql.cj.jdbc.Driver",
|
||||
"org.hibernate.dialect.MySQL8Dialect",
|
||||
"jdbc:mysql://${kc.db-url-host:localhost}/${kc.db-url-database:keycloak}${kc.db-url-properties:}",
|
||||
"jdbc:mysql://${kc.db-url-host:localhost}:${kc.db-url-port:3306}/${kc.db-url-database:keycloak}${kc.db-url-properties:}",
|
||||
asList("org.keycloak.connections.jpa.updater.liquibase.UpdatedMySqlDatabase")
|
||||
),
|
||||
MARIADB("mariadb",
|
||||
"org.mariadb.jdbc.MySQLDataSource",
|
||||
"org.mariadb.jdbc.Driver",
|
||||
"org.hibernate.dialect.MariaDBDialect",
|
||||
"jdbc:mariadb://${kc.db-url-host:localhost}/${kc.db-url-database:keycloak}${kc.db-url-properties:}",
|
||||
"jdbc:mariadb://${kc.db-url-host:localhost}:${kc.db-url-port:3306}/${kc.db-url-database:keycloak}${kc.db-url-properties:}",
|
||||
asList("org.keycloak.connections.jpa.updater.liquibase.UpdatedMariaDBDatabase")
|
||||
),
|
||||
POSTGRES("postgresql",
|
||||
"org.postgresql.xa.PGXADataSource",
|
||||
"org.postgresql.Driver",
|
||||
"io.quarkus.hibernate.orm.runtime.dialect.QuarkusPostgreSQL10Dialect",
|
||||
"jdbc:postgresql://${kc.db-url-host:localhost}/${kc.db-url-database:keycloak}${kc.db-url-properties:}",
|
||||
"jdbc:postgresql://${kc.db-url-host:localhost}:${kc.db-url-port:5432}/${kc.db-url-database:keycloak}${kc.db-url-properties:}",
|
||||
asList("liquibase.database.core.PostgresDatabase",
|
||||
"org.keycloak.connections.jpa.updater.liquibase.PostgresPlusDatabase"),
|
||||
"postgres"
|
||||
|
@ -142,7 +142,7 @@ public final class Database {
|
|||
"com.microsoft.sqlserver.jdbc.SQLServerXADataSource",
|
||||
"com.microsoft.sqlserver.jdbc.SQLServerDriver",
|
||||
"org.hibernate.dialect.SQLServer2016Dialect",
|
||||
"jdbc:sqlserver://${kc.db-url-host:localhost}:1433;databaseName=${kc.db-url-database:keycloak}${kc.db-url-properties:}",
|
||||
"jdbc:sqlserver://${kc.db-url-host:localhost}:${kc.db-url-port:1433};databaseName=${kc.db-url-database:keycloak}${kc.db-url-properties:}",
|
||||
asList("org.keycloak.quarkus.runtime.storage.database.liquibase.database.CustomMSSQLDatabase"),
|
||||
"mssql"
|
||||
),
|
||||
|
@ -150,7 +150,7 @@ public final class Database {
|
|||
"oracle.jdbc.xa.client.OracleXADataSource",
|
||||
"oracle.jdbc.driver.OracleDriver",
|
||||
"org.hibernate.dialect.Oracle12cDialect",
|
||||
"jdbc:oracle:thin:@//${kc.db-url-host:localhost}:1521/${kc.db-url-database:keycloak}",
|
||||
"jdbc:oracle:thin:@//${kc.db-url-host:localhost}:${kc.db-url-port:1521}/${kc.db-url-database:keycloak}",
|
||||
asList("liquibase.database.core.OracleDatabase")
|
||||
);
|
||||
|
||||
|
|
|
@ -274,10 +274,20 @@ public class ConfigurationTest {
|
|||
SmallRyeConfig config = createConfig();
|
||||
assertEquals("io.quarkus.hibernate.orm.runtime.dialect.QuarkusPostgreSQL10Dialect",
|
||||
config.getConfigValue("quarkus.hibernate-orm.dialect").getValue());
|
||||
assertEquals("jdbc:postgresql://myhost/kcdb?foo=bar", config.getConfigValue("quarkus.datasource.jdbc.url").getValue());
|
||||
assertEquals("jdbc:postgresql://myhost:5432/kcdb?foo=bar", config.getConfigValue("quarkus.datasource.jdbc.url").getValue());
|
||||
assertEquals("postgresql", config.getConfigValue("quarkus.datasource.db-kind").getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDefaultDbPortGetApplied() {
|
||||
System.setProperty(CLI_ARGS, "--db=mssql" + ARG_SEPARATOR + "--db-url-host=myhost" + ARG_SEPARATOR + "--db-url-database=kcdb" + ARG_SEPARATOR + "--db-url-port=1234" + ARG_SEPARATOR + "--db-url-properties=?foo=bar");
|
||||
SmallRyeConfig config = createConfig();
|
||||
assertEquals("org.hibernate.dialect.SQLServer2016Dialect",
|
||||
config.getConfigValue("quarkus.hibernate-orm.dialect").getValue());
|
||||
assertEquals("jdbc:sqlserver://myhost:1234;databaseName=kcdb?foo=bar", config.getConfigValue("quarkus.datasource.jdbc.url").getValue());
|
||||
assertEquals("mssql", config.getConfigValue("quarkus.datasource.db-kind").getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetDbUrlOverridesDefaultDataSource() {
|
||||
System.setProperty(CLI_ARGS, "--db=mariadb" + ARG_SEPARATOR + "--db-url-host=myhost" + ARG_SEPARATOR + "--db-url=jdbc:mariadb://localhost/keycloak");
|
||||
|
@ -306,13 +316,13 @@ public class ConfigurationTest {
|
|||
System.setProperty("kc.db-url-properties", "?test=test&test1=test1");
|
||||
System.setProperty(CLI_ARGS, "--db=mariadb");
|
||||
config = createConfig();
|
||||
assertEquals("jdbc:mariadb://localhost/keycloak?test=test&test1=test1", config.getConfigValue("quarkus.datasource.jdbc.url").getValue());
|
||||
assertEquals("jdbc:mariadb://localhost:3306/keycloak?test=test&test1=test1", config.getConfigValue("quarkus.datasource.jdbc.url").getValue());
|
||||
assertEquals(MariaDBDialect.class.getName(), config.getConfigValue("quarkus.hibernate-orm.dialect").getValue());
|
||||
assertEquals(MySQLDataSource.class.getName(), config.getConfigValue("quarkus.datasource.jdbc.driver").getValue());
|
||||
|
||||
System.setProperty(CLI_ARGS, "--db=postgres");
|
||||
config = createConfig();
|
||||
assertEquals("jdbc:postgresql://localhost/keycloak?test=test&test1=test1", config.getConfigValue("quarkus.datasource.jdbc.url").getValue());
|
||||
assertEquals("jdbc:postgresql://localhost:5432/keycloak?test=test&test1=test1", config.getConfigValue("quarkus.datasource.jdbc.url").getValue());
|
||||
assertEquals(QuarkusPostgreSQL10Dialect.class.getName(), config.getConfigValue("quarkus.hibernate-orm.dialect").getValue());
|
||||
assertEquals(PGXADataSource.class.getName(), config.getConfigValue("quarkus.datasource.jdbc.driver").getValue());
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ public class OptionValidationTest {
|
|||
@Launch({"start", "--db-pasword mytestpw"})
|
||||
public void failUnknownOptionWhitespaceSeparatorNotShowingValue(LaunchResult result) {
|
||||
assertEquals("Unknown option: '--db-pasword'\n" +
|
||||
"Possible solutions: --db-username, --db-url-host, --db-pool-min-size, --db-password, --db-url-properties, --db-url-database, --db-schema, --db-pool-max-size, --db-pool-initial-size, --db-url\n" +
|
||||
"Possible solutions: --db-username, --db-url-host, --db-pool-min-size, --db-password, --db-url-properties, --db-url-database, --db-schema, --db-pool-max-size, --db-pool-initial-size, --db-url, --db-url-port\n" +
|
||||
"Try 'kc.sh start --help' for more information on the available options.", result.getErrorOutput());
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ public class OptionValidationTest {
|
|||
@Launch({"start", "--db-pasword=mytestpw"})
|
||||
public void failUnknownOptionEqualsSeparatorNotShowingValue(LaunchResult result) {
|
||||
assertEquals("Unknown option: '--db-pasword'\n" +
|
||||
"Possible solutions: --db-username, --db-url-host, --db-pool-min-size, --db-password, --db-url-properties, --db-url-database, --db-schema, --db-pool-max-size, --db-pool-initial-size, --db-url\n" +
|
||||
"Possible solutions: --db-username, --db-url-host, --db-pool-min-size, --db-password, --db-url-properties, --db-url-database, --db-schema, --db-pool-max-size, --db-pool-initial-size, --db-url, --db-url-port\n" +
|
||||
"Try 'kc.sh start --help' for more information on the available options.", result.getErrorOutput());
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ public class OptionValidationTest {
|
|||
@Launch({"start", "--db-username=foobar","--db-pasword=mytestpw", "--foobar=barfoo"})
|
||||
public void failWithFirstOptionOnMultipleUnknownOptions(LaunchResult result) {
|
||||
assertEquals("Unknown option: '--db-pasword'\n" +
|
||||
"Possible solutions: --db-username, --db-url-host, --db-pool-min-size, --db-password, --db-url-properties, --db-url-database, --db-schema, --db-pool-max-size, --db-pool-initial-size, --db-url\n" +
|
||||
"Possible solutions: --db-username, --db-url-host, --db-pool-min-size, --db-password, --db-url-properties, --db-url-database, --db-schema, --db-pool-max-size, --db-pool-initial-size, --db-url, --db-url-port\n" +
|
||||
"Try 'kc.sh start --help' for more information on the available options.", result.getErrorOutput());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,6 +34,8 @@ Database:
|
|||
--db-url-host <hostname>
|
||||
Sets the hostname of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
--db-url-port <port> Sets the port of the default JDBC URL of the chosen vendor. If the `db-url`
|
||||
option is set, this option is ignored.
|
||||
--db-url-properties <properties>
|
||||
Sets the properties of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
|
|
|
@ -34,6 +34,8 @@ Database:
|
|||
--db-url-host <hostname>
|
||||
Sets the hostname of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
--db-url-port <port> Sets the port of the default JDBC URL of the chosen vendor. If the `db-url`
|
||||
option is set, this option is ignored.
|
||||
--db-url-properties <properties>
|
||||
Sets the properties of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
|
|
|
@ -48,6 +48,8 @@ Database:
|
|||
--db-url-host <hostname>
|
||||
Sets the hostname of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
--db-url-port <port> Sets the port of the default JDBC URL of the chosen vendor. If the `db-url`
|
||||
option is set, this option is ignored.
|
||||
--db-url-properties <properties>
|
||||
Sets the properties of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
|
|
|
@ -48,6 +48,8 @@ Database:
|
|||
--db-url-host <hostname>
|
||||
Sets the hostname of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
--db-url-port <port> Sets the port of the default JDBC URL of the chosen vendor. If the `db-url`
|
||||
option is set, this option is ignored.
|
||||
--db-url-properties <properties>
|
||||
Sets the properties of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
|
|
|
@ -37,6 +37,8 @@ Database:
|
|||
--db-url-host <hostname>
|
||||
Sets the hostname of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
--db-url-port <port> Sets the port of the default JDBC URL of the chosen vendor. If the `db-url`
|
||||
option is set, this option is ignored.
|
||||
--db-url-properties <properties>
|
||||
Sets the properties of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
|
|
|
@ -37,6 +37,8 @@ Database:
|
|||
--db-url-host <hostname>
|
||||
Sets the hostname of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
--db-url-port <port> Sets the port of the default JDBC URL of the chosen vendor. If the `db-url`
|
||||
option is set, this option is ignored.
|
||||
--db-url-properties <properties>
|
||||
Sets the properties of the default JDBC URL of the chosen vendor. If the
|
||||
`db-url` option is set, this option is ignored.
|
||||
|
|
Loading…
Reference in a new issue