From 2ee1d6bd1342ef473e1204b5236f253c7e22f5ce Mon Sep 17 00:00:00 2001 From: James Fredley Date: Wed, 9 Oct 2024 19:25:18 -0400 Subject: [PATCH 1/3] include development, test and production dataSource configuration in generated application.yml --- .../feature/config/ConfigurationFeature.java | 8 +++- .../DatabaseDriverConfigurationFeature.java | 42 ++++++++++++++++++- .../database/DatabaseDriverFeature.java | 13 +++++- .../org/grails/forge/feature/database/H2.java | 14 ++++++- .../forge/feature/database/HibernateGorm.java | 11 +++-- .../grails/forge/feature/database/MySQL.java | 16 +++++-- .../forge/feature/database/PostgreSQL.java | 14 ++++++- .../forge/feature/database/SQLServer.java | 16 +++++-- .../feature/database/HibernateGormSpec.groovy | 37 +++++++++++++++- .../forge/feature/database/MySQLSpec.groovy | 4 +- .../feature/database/PostgresSpec.groovy | 4 +- .../feature/database/SQLServerSpec.groovy | 4 +- 12 files changed, 160 insertions(+), 23 deletions(-) diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/config/ConfigurationFeature.java b/grails-forge-core/src/main/java/org/grails/forge/feature/config/ConfigurationFeature.java index d5c08253..6ab1b8b2 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/config/ConfigurationFeature.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/config/ConfigurationFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2020 original authors + * Copyright 2017-2024 original authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,12 @@ public interface ConfigurationFeature extends OneOfFeature { + final String ENVIRONMENTS_KEY = "environments"; + final String DEV_ENVIRONMENT_KEY = "development"; + final String TEST_ENVIRONMENT_KEY = "test"; + final String PROD_ENVIRONMENT_KEY = "production"; + final String PROPERTIES_KEY = "properties"; + @Override default Class getFeatureClass() { return ConfigurationFeature.class; diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.java b/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.java index 9fcc85a7..dbf16b4a 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2020 original authors + * Copyright 2017-2024 original authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,13 @@ import java.util.Map; import java.util.Optional; +import static org.grails.forge.feature.config.ConfigurationFeature.DEV_ENVIRONMENT_KEY; +import static org.grails.forge.feature.config.ConfigurationFeature.TEST_ENVIRONMENT_KEY; +import static org.grails.forge.feature.config.ConfigurationFeature.PROD_ENVIRONMENT_KEY; +import static org.grails.forge.feature.config.ConfigurationFeature.ENVIRONMENTS_KEY; +import static org.grails.forge.feature.config.ConfigurationFeature.PROPERTIES_KEY; +import static org.grails.forge.feature.database.HibernateGorm.PREFIX; + /** * A feature that configures a datasource with a driver */ @@ -33,14 +40,45 @@ public interface DatabaseDriverConfigurationFeature extends Feature { String getPasswordKey(); + String getDbCreateKey(); + default void applyDefaultConfig(DatabaseDriverFeature dbFeature, Map config) { - Optional.ofNullable(dbFeature.getJdbcUrl()).ifPresent(url -> config.put(getUrlKey(), url)); Optional.ofNullable(dbFeature.getDriverClass()).ifPresent(driver -> config.put(getDriverKey(), driver)); Optional.ofNullable(dbFeature.getDefaultUser()).ifPresent(user -> config.put(getUsernameKey(), user)); Optional.ofNullable(dbFeature.getDefaultPassword()).ifPresent(pass -> config.put(getPasswordKey(), pass)); + + config.put(ENVIRONMENTS_KEY + "." + DEV_ENVIRONMENT_KEY + "." + getDbCreateKey(), "create-drop"); + Optional.ofNullable(dbFeature.getJdbcDevUrl()).ifPresent(url -> config.put(ENVIRONMENTS_KEY + "." + DEV_ENVIRONMENT_KEY + "." + getUrlKey(), url)); + config.put(ENVIRONMENTS_KEY + "." + TEST_ENVIRONMENT_KEY + "." + getDbCreateKey(), "update"); + Optional.ofNullable(dbFeature.getJdbcTestUrl()).ifPresent(url -> config.put(ENVIRONMENTS_KEY + "." + TEST_ENVIRONMENT_KEY + "." + getUrlKey(), url)); + config.put(ENVIRONMENTS_KEY + "." + PROD_ENVIRONMENT_KEY + "." + getDbCreateKey(), "none"); + Optional.ofNullable(dbFeature.getJdbcProdUrl()).ifPresent(url -> config.put(ENVIRONMENTS_KEY + "." + PROD_ENVIRONMENT_KEY + "." + getUrlKey(), url)); + + addProductionDataSourceProperties(config,"jmxEnabled", true); + addProductionDataSourceProperties(config,"initialSize", 5); + addProductionDataSourceProperties(config,"maxActive", 50); + addProductionDataSourceProperties(config,"minIdle", 5); + addProductionDataSourceProperties(config,"maxIdle", 25); + addProductionDataSourceProperties(config,"maxWait", 10000); + addProductionDataSourceProperties(config,"maxAge", 600000); + addProductionDataSourceProperties(config,"timeBetweenEvictionRunsMillis", 5000); + addProductionDataSourceProperties(config,"minEvictableIdleTimeMillis", 60000); + addProductionDataSourceProperties(config,"validationQuery", "SELECT 1"); + addProductionDataSourceProperties(config,"validationQueryTimeout", 3); + addProductionDataSourceProperties(config,"validationInterval", 15000); + addProductionDataSourceProperties(config,"testOnBorrow", true); + addProductionDataSourceProperties(config,"testWhileIdle", true); + addProductionDataSourceProperties(config,"testOnReturn", false); + addProductionDataSourceProperties(config,"jdbcInterceptors", "ConnectionState"); + addProductionDataSourceProperties(config,"defaultTransactionIsolation", 2); + final Map additionalConfig = dbFeature.getAdditionalConfig(); if (!additionalConfig.isEmpty()) { config.putAll(additionalConfig); } } + + default void addProductionDataSourceProperties(Map config, String key, Object value) { + config.put(ENVIRONMENTS_KEY + "." + PROD_ENVIRONMENT_KEY + "." + PREFIX + PROPERTIES_KEY + "." + key, value); + } } diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverFeature.java b/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverFeature.java index 26f6f2d5..2052e88b 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverFeature.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2020 original authors + * Copyright 2017-2024 original authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -65,7 +65,16 @@ public String getCategory() { public abstract boolean embedded(); - public abstract String getJdbcUrl(); + @Deprecated() + public String getJdbcUrl() { + return getJdbcProdUrl(); + } + + public abstract String getJdbcDevUrl(); + + public abstract String getJdbcTestUrl(); + + public abstract String getJdbcProdUrl(); public abstract String getDriverClass(); diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/database/H2.java b/grails-forge-core/src/main/java/org/grails/forge/feature/database/H2.java index b3779a54..d6656799 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/database/H2.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/database/H2.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2020 original authors + * Copyright 2017-2024 original authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,10 +40,20 @@ public String getDescription() { } @Override - public String getJdbcUrl() { + public String getJdbcDevUrl() { return "jdbc:h2:mem:devDb;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"; } + @Override + public String getJdbcTestUrl() { + return "jdbc:h2:mem:testDb;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"; + } + + @Override + public String getJdbcProdUrl() { + return "jdbc:h2:./prodDb;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"; + } + @Override public String getDriverClass() { return "org.h2.Driver"; diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/database/HibernateGorm.java b/grails-forge-core/src/main/java/org/grails/forge/feature/database/HibernateGorm.java index 37e6769a..ef0e91d2 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/database/HibernateGorm.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/database/HibernateGorm.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2020 original authors + * Copyright 2017-2024 original authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,11 +32,12 @@ @Singleton public class HibernateGorm extends GormFeature implements DatabaseDriverConfigurationFeature { - private static final String PREFIX = "dataSource."; + static final String PREFIX = "dataSource."; private static final String URL_KEY = PREFIX + "url"; private static final String DRIVER_KEY = PREFIX + "driverClassName"; private static final String USERNAME_KEY = PREFIX + "username"; private static final String PASSWORD_KEY = PREFIX + "password"; + private static final String DB_CREATE_KEY = PREFIX + "dbCreate"; private final DatabaseDriverFeature defaultDbFeature; @@ -74,7 +75,6 @@ public void apply(GeneratorContext generatorContext) { applyDefaultGormConfig(config); config.put("dataSource.pooled", true); config.put("dataSource.jmxExport", true); - config.put("dataSource.dbCreate", "update"); config.put("hibernate.cache.queries", false); config.put("hibernate.cache.use_second_level_cache", false); config.put("hibernate.cache.use_query_cache", false); @@ -113,6 +113,11 @@ public String getPasswordKey() { return PASSWORD_KEY; } + @Override + public String getDbCreateKey() { + return DB_CREATE_KEY; + } + @Override public boolean shouldApply(ApplicationType applicationType, Options options, Set selectedFeatures) { return selectedFeatures.stream().anyMatch(f -> f instanceof HibernateGorm) || options.getGormImpl() == GormImpl.HIBERNATE; diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/database/MySQL.java b/grails-forge-core/src/main/java/org/grails/forge/feature/database/MySQL.java index d68bab6b..a513ffa6 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/database/MySQL.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/database/MySQL.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2020 original authors + * Copyright 2017-2024 original authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,8 +44,18 @@ public String getDescription() { } @Override - public String getJdbcUrl() { - return "jdbc:mysql://localhost:3306/db"; + public String getJdbcDevUrl() { + return "jdbc:mysql://localhost:3306/devDb"; + } + + @Override + public String getJdbcTestUrl() { + return "jdbc:mysql://localhost:3306/testDb"; + } + + @Override + public String getJdbcProdUrl() { + return "jdbc:mysql://localhost:3306/prodDb"; } @Override diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/database/PostgreSQL.java b/grails-forge-core/src/main/java/org/grails/forge/feature/database/PostgreSQL.java index 0fa9d6d8..bf7a45f9 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/database/PostgreSQL.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/database/PostgreSQL.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2020 original authors + * Copyright 2017-2024 original authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,7 +44,17 @@ public String getDescription() { } @Override - public String getJdbcUrl() { + public String getJdbcDevUrl() { + return "jdbc:postgresql://localhost:5432/devDb"; + } + + @Override + public String getJdbcTestUrl() { + return "jdbc:postgresql://localhost:5432/testDb"; + } + + @Override + public String getJdbcProdUrl() { // postgres docker image uses default db name and username of postgres so we use the same return "jdbc:postgresql://localhost:5432/postgres"; } diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/database/SQLServer.java b/grails-forge-core/src/main/java/org/grails/forge/feature/database/SQLServer.java index 1bfbcec2..162ce4d4 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/database/SQLServer.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/database/SQLServer.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2020 original authors + * Copyright 2017-2024 original authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,8 +44,18 @@ public String getDescription() { } @Override - public String getJdbcUrl() { - return "jdbc:sqlserver://localhost:1433;databaseName=tempdb"; + public String getJdbcDevUrl() { + return "jdbc:sqlserver://localhost:1433;databaseName=devDb"; + } + + @Override + public String getJdbcTestUrl() { + return "jdbc:sqlserver://localhost:1433;databaseName=testDb"; + } + + @Override + public String getJdbcProdUrl() { + return "jdbc:sqlserver://localhost:1433;databaseName=prodDb"; } @Override diff --git a/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/HibernateGormSpec.groovy b/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/HibernateGormSpec.groovy index a7bbf4eb..91052970 100644 --- a/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/HibernateGormSpec.groovy +++ b/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/HibernateGormSpec.groovy @@ -1,5 +1,6 @@ package org.grails.forge.feature.database +import groovy.yaml.YamlSlurper import org.grails.forge.ApplicationContextSpec import org.grails.forge.BuildBuilder import org.grails.forge.application.ApplicationType @@ -59,12 +60,44 @@ class HibernateGormSpec extends ApplicationContextSpec implements CommandOutputF GeneratorContext ctx = buildGeneratorContext(['gorm-hibernate5']) then: - ctx.configuration.containsKey("dataSource.url") ctx.configuration.containsKey("dataSource.pooled") ctx.configuration.containsKey("dataSource.jmxExport") - ctx.configuration.containsKey("dataSource.dbCreate") ctx.configuration.containsKey("hibernate.cache.queries") ctx.configuration.containsKey("hibernate.cache.use_second_level_cache") ctx.configuration.containsKey("hibernate.cache.use_query_cache") } + + void "test match values of datasource config"() { + + when: + final def output = generate(ApplicationType.WEB, new Options(TestFramework.SPOCK, JdkVersion.JDK_11)) + final String applicationYaml = output["grails-app/conf/application.yml"] + def config = new YamlSlurper().parseText(applicationYaml) + + then: + config.environments.development.dataSource.dbCreate == 'create-drop' + config.environments.test.dataSource.dbCreate == 'update' + config.environments.production.dataSource.dbCreate == 'none' + config.environments.development.dataSource.url == 'jdbc:h2:mem:devDb;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE' + config.environments.test.dataSource.url == 'jdbc:h2:mem:testDb;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE' + config.environments.production.dataSource.url == 'jdbc:h2:./prodDb;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE' + + config.environments.production.dataSource.properties.jmxEnabled == true + config.environments.production.dataSource.properties.initialSize == 5 + config.environments.production.dataSource.properties.maxActive == 50 + config.environments.production.dataSource.properties.minIdle == 5 + config.environments.production.dataSource.properties.maxIdle == 25 + config.environments.production.dataSource.properties.maxWait == 10000 + config.environments.production.dataSource.properties.maxAge == 600000 + config.environments.production.dataSource.properties.timeBetweenEvictionRunsMillis == 5000 + config.environments.production.dataSource.properties.minEvictableIdleTimeMillis == 60000 + config.environments.production.dataSource.properties.validationQuery == "SELECT 1" + config.environments.production.dataSource.properties.validationQueryTimeout == 3 + config.environments.production.dataSource.properties.validationInterval == 15000 + config.environments.production.dataSource.properties.testOnBorrow == true + config.environments.production.dataSource.properties.testWhileIdle == true + config.environments.production.dataSource.properties.testOnReturn == false + config.environments.production.dataSource.properties.jdbcInterceptors == "ConnectionState" + config.environments.production.dataSource.properties.defaultTransactionIsolation == 2 + } } diff --git a/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/MySQLSpec.groovy b/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/MySQLSpec.groovy index 5fc078b1..cc7d654f 100644 --- a/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/MySQLSpec.groovy +++ b/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/MySQLSpec.groovy @@ -30,9 +30,11 @@ class MySQLSpec extends ApplicationContextSpec { GeneratorContext ctx = buildGeneratorContext(["gorm-hibernate5", "mysql"]) then: - ctx.getConfiguration().get("dataSource.url") == 'jdbc:mysql://localhost:3306/db' ctx.getConfiguration().get("dataSource.driverClassName") == 'com.mysql.cj.jdbc.Driver' ctx.getConfiguration().get("dataSource.username") == 'root' ctx.getConfiguration().get("dataSource.password") == '' + ctx.getConfiguration().get("environments.development.dataSource.url") == 'jdbc:mysql://localhost:3306/devDb' + ctx.getConfiguration().get("environments.test.dataSource.url") == 'jdbc:mysql://localhost:3306/testDb' + ctx.getConfiguration().get("environments.production.dataSource.url") == 'jdbc:mysql://localhost:3306/prodDb' } } diff --git a/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/PostgresSpec.groovy b/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/PostgresSpec.groovy index 70ac5b04..8991cebc 100644 --- a/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/PostgresSpec.groovy +++ b/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/PostgresSpec.groovy @@ -30,9 +30,11 @@ class PostgresSpec extends ApplicationContextSpec { GeneratorContext ctx = buildGeneratorContext(["gorm-hibernate5", "postgres"]) then: - ctx.getConfiguration().get("dataSource.url") == 'jdbc:postgresql://localhost:5432/postgres' ctx.getConfiguration().get("dataSource.driverClassName") == 'org.postgresql.Driver' ctx.getConfiguration().get("dataSource.username") == 'postgres' ctx.getConfiguration().get("dataSource.password") == '' + ctx.getConfiguration().get("environments.development.dataSource.url") == 'jdbc:postgresql://localhost:5432/devDb' + ctx.getConfiguration().get("environments.test.dataSource.url") == 'jdbc:postgresql://localhost:5432/testDb' + ctx.getConfiguration().get("environments.production.dataSource.url") == 'jdbc:postgresql://localhost:5432/postgres' } } diff --git a/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/SQLServerSpec.groovy b/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/SQLServerSpec.groovy index 46b95671..658cf8ea 100644 --- a/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/SQLServerSpec.groovy +++ b/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/SQLServerSpec.groovy @@ -30,10 +30,12 @@ class SQLServerSpec extends ApplicationContextSpec { GeneratorContext ctx = buildGeneratorContext(["gorm-hibernate5", "sqlserver"]) then: - ctx.getConfiguration().get("dataSource.url") == 'jdbc:sqlserver://localhost:1433;databaseName=tempdb' ctx.getConfiguration().get("dataSource.driverClassName") == 'com.microsoft.sqlserver.jdbc.SQLServerDriver' ctx.getConfiguration().get("dataSource.username") == 'sa' ctx.getConfiguration().get("dataSource.password") == '' + ctx.getConfiguration().get("environments.development.dataSource.url") == 'jdbc:sqlserver://localhost:1433;databaseName=devDb' + ctx.getConfiguration().get("environments.test.dataSource.url") == 'jdbc:sqlserver://localhost:1433;databaseName=testDb' + ctx.getConfiguration().get("environments.production.dataSource.url") == 'jdbc:sqlserver://localhost:1433;databaseName=prodDb' } } From b2df9fc2e8689bfa9d8cf7b7c5338f0e4fd37178 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Wed, 9 Oct 2024 19:35:29 -0400 Subject: [PATCH 2/3] make Checkstyle happy --- .../feature/config/ConfigurationFeature.java | 10 +++--- .../DatabaseDriverConfigurationFeature.java | 34 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/config/ConfigurationFeature.java b/grails-forge-core/src/main/java/org/grails/forge/feature/config/ConfigurationFeature.java index 6ab1b8b2..2635ae9b 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/config/ConfigurationFeature.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/config/ConfigurationFeature.java @@ -24,11 +24,11 @@ public interface ConfigurationFeature extends OneOfFeature { - final String ENVIRONMENTS_KEY = "environments"; - final String DEV_ENVIRONMENT_KEY = "development"; - final String TEST_ENVIRONMENT_KEY = "test"; - final String PROD_ENVIRONMENT_KEY = "production"; - final String PROPERTIES_KEY = "properties"; + String ENVIRONMENTS_KEY = "environments"; + String DEV_ENVIRONMENT_KEY = "development"; + String TEST_ENVIRONMENT_KEY = "test"; + String PROD_ENVIRONMENT_KEY = "production"; + String PROPERTIES_KEY = "properties"; @Override default Class getFeatureClass() { diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.java b/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.java index dbf16b4a..85de1013 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.java @@ -54,23 +54,23 @@ default void applyDefaultConfig(DatabaseDriverFeature dbFeature, Map config.put(ENVIRONMENTS_KEY + "." + PROD_ENVIRONMENT_KEY + "." + getUrlKey(), url)); - addProductionDataSourceProperties(config,"jmxEnabled", true); - addProductionDataSourceProperties(config,"initialSize", 5); - addProductionDataSourceProperties(config,"maxActive", 50); - addProductionDataSourceProperties(config,"minIdle", 5); - addProductionDataSourceProperties(config,"maxIdle", 25); - addProductionDataSourceProperties(config,"maxWait", 10000); - addProductionDataSourceProperties(config,"maxAge", 600000); - addProductionDataSourceProperties(config,"timeBetweenEvictionRunsMillis", 5000); - addProductionDataSourceProperties(config,"minEvictableIdleTimeMillis", 60000); - addProductionDataSourceProperties(config,"validationQuery", "SELECT 1"); - addProductionDataSourceProperties(config,"validationQueryTimeout", 3); - addProductionDataSourceProperties(config,"validationInterval", 15000); - addProductionDataSourceProperties(config,"testOnBorrow", true); - addProductionDataSourceProperties(config,"testWhileIdle", true); - addProductionDataSourceProperties(config,"testOnReturn", false); - addProductionDataSourceProperties(config,"jdbcInterceptors", "ConnectionState"); - addProductionDataSourceProperties(config,"defaultTransactionIsolation", 2); + addProductionDataSourceProperties(config, "jmxEnabled", true); + addProductionDataSourceProperties(config, "initialSize", 5); + addProductionDataSourceProperties(config, "maxActive", 50); + addProductionDataSourceProperties(config, "minIdle", 5); + addProductionDataSourceProperties(config, "maxIdle", 25); + addProductionDataSourceProperties(config, "maxWait", 10000); + addProductionDataSourceProperties(config, "maxAge", 600000); + addProductionDataSourceProperties(config, "timeBetweenEvictionRunsMillis", 5000); + addProductionDataSourceProperties(config, "minEvictableIdleTimeMillis", 60000); + addProductionDataSourceProperties(config, "validationQuery", "SELECT 1"); + addProductionDataSourceProperties(config, "validationQueryTimeout", 3); + addProductionDataSourceProperties(config, "validationInterval", 15000); + addProductionDataSourceProperties(config, "testOnBorrow", true); + addProductionDataSourceProperties(config, "testWhileIdle", true); + addProductionDataSourceProperties(config, "testOnReturn", false); + addProductionDataSourceProperties(config, "jdbcInterceptors", "ConnectionState"); + addProductionDataSourceProperties(config, "defaultTransactionIsolation", 2); final Map additionalConfig = dbFeature.getAdditionalConfig(); if (!additionalConfig.isEmpty()) { From 38a81816b463276da6d0441702c49e735248f4ef Mon Sep 17 00:00:00 2001 From: James Fredley Date: Thu, 10 Oct 2024 08:56:07 -0400 Subject: [PATCH 3/3] add @Deprecated(since = "6.2.2", forRemoval = true) --- .../grails/forge/feature/database/DatabaseDriverFeature.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverFeature.java b/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverFeature.java index 2052e88b..0b10fb28 100644 --- a/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverFeature.java +++ b/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverFeature.java @@ -65,7 +65,7 @@ public String getCategory() { public abstract boolean embedded(); - @Deprecated() + @Deprecated(since = "6.2.2", forRemoval = true) public String getJdbcUrl() { return getJdbcProdUrl(); }