diff --git a/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/DynamicDataSourceBasedMultiTenantConnectionProvider.java b/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/DynamicDataSourceBasedMultiTenantConnectionProvider.java index e33389f..adae7cd 100644 --- a/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/DynamicDataSourceBasedMultiTenantConnectionProvider.java +++ b/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/DynamicDataSourceBasedMultiTenantConnectionProvider.java @@ -43,6 +43,9 @@ public class DynamicDataSourceBasedMultiTenantConnectionProvider extends Abstrac @Value("${multitenancy.datasource-cache.expireAfterAccess:10}") private Integer expireAfterAccess; + @Value("${spring.application.name:}") + private String applicationName; + private LoadingCache connectionPerTenant; private LoadingCache dataSourcePerConnectionString; @@ -55,7 +58,7 @@ public class DynamicDataSourceBasedMultiTenantConnectionProvider extends Abstrac public SchemaConnection load(String key) { var tenant = tenantProvider.getTenant(key); - var jdbcUrl = JDBCUtils.buildJdbcUrl(tenant.getDatabaseConnection()); + var jdbcUrl = JDBCUtils.buildJdbcUrl(tenant.getDatabaseConnection(), applicationName + "-multitenant"); return SchemaConnection.builder().jdbcUrl(jdbcUrl).databaseConnection(tenant.getDatabaseConnection()).build(); } }); @@ -86,7 +89,7 @@ public class DynamicDataSourceBasedMultiTenantConnectionProvider extends Abstrac tenantHikariSettings.setUsername(connection.getDatabaseConnection().getUsername()); tenantHikariSettings.setPassword(decryptedPassword); - var jdbcUrl = JDBCUtils.buildJdbcUrl(connection.getDatabaseConnection()); + var jdbcUrl = JDBCUtils.buildJdbcUrl(connection.getDatabaseConnection(), applicationName + "-multitenant"); tenantHikariSettings.setJdbcUrl(jdbcUrl); tenantHikariSettings.setPoolName(jdbcUrl + TENANT_POOL_NAME_SUFFIX); diff --git a/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/TenantLiquibaseInitializer.java b/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/TenantLiquibaseInitializer.java index 2110c09..b968fb6 100644 --- a/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/TenantLiquibaseInitializer.java +++ b/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/TenantLiquibaseInitializer.java @@ -12,6 +12,7 @@ import org.postgresql.util.PSQLException; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties; import org.springframework.core.io.ResourceLoader; import org.springframework.jdbc.core.JdbcTemplate; @@ -51,6 +52,9 @@ public class TenantLiquibaseInitializer { private final TenantProvider tenantProvider; private final EncryptionDecryptionService encryptionDecryptionService; + @Value("${spring.application.name:}") + private String applicationName; + public TenantLiquibaseInitializer(@Qualifier("tenantLiquibaseProperties") LiquibaseProperties liquibaseProperties, ResourceLoader resourceLoader, @@ -95,7 +99,7 @@ public class TenantLiquibaseInitializer { private void createSchema(TenantResponse tenantRequest) { - var jdbcUrl = JDBCUtils.buildJdbcUrl(tenantRequest.getDatabaseConnection()); + var jdbcUrl = JDBCUtils.buildJdbcUrl(tenantRequest.getDatabaseConnection(), applicationName + "-liquibase"); try (Connection connection = DriverManager.getConnection(jdbcUrl, tenantRequest.getDatabaseConnection().getUsername(), encryptionDecryptionService.decrypt(tenantRequest.getDatabaseConnection().getPassword()))) { diff --git a/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/utils/JDBCUtils.java b/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/utils/JDBCUtils.java index be7c8bb..9e7fbb0 100644 --- a/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/utils/JDBCUtils.java +++ b/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/utils/JDBCUtils.java @@ -18,13 +18,14 @@ public class JDBCUtils { } - public String buildJdbcUrl(DatabaseConnection databaseConnection) { + public String buildJdbcUrl(DatabaseConnection databaseConnection, String datasourceName) { StringBuilder sb = createJdbcConnectionStringBuilder(databaseConnection.getDriver(), databaseConnection.getHost(), databaseConnection.getPort(), databaseConnection.getDatabase()); Map params = getConnectionParameters(databaseConnection); + params.put("ApplicationName", datasourceName); appendParams(sb, params); return sb.toString(); }