Skip to content

Commit 5b5ba2e

Browse files
committedJan 7, 2025
Polish "Configure Postgres' application_name from the environment"
This commit configure the 'application_name' property of the Postgres container from the standard 'spring.application.name'. See gh-42460
1 parent ce0bcf3 commit 5b5ba2e

File tree

2 files changed

+11
-21
lines changed

2 files changed

+11
-21
lines changed
 

‎spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java

+5-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -64,7 +64,8 @@ void runCreatesConnectionDetailsApplicationName(JdbcConnectionDetails connection
6464
assertThat(connectionDetails.getPassword()).isEqualTo("secret");
6565
assertThat(connectionDetails.getJdbcUrl()).startsWith("jdbc:postgresql://")
6666
.endsWith("?ApplicationName=spring+boot");
67-
checkApplicationName(connectionDetails, "spring boot");
67+
assertThat(executeQuery(connectionDetails, "select current_setting('application_name')", String.class))
68+
.isEqualTo("spring boot");
6869
}
6970

7071
private void assertConnectionDetails(JdbcConnectionDetails connectionDetails) {
@@ -74,18 +75,12 @@ private void assertConnectionDetails(JdbcConnectionDetails connectionDetails) {
7475
}
7576

7677
private void checkDatabaseAccess(JdbcConnectionDetails connectionDetails) throws ClassNotFoundException {
77-
assertThat(queryForObject(connectionDetails, DatabaseDriver.POSTGRESQL.getValidationQuery(), Integer.class))
78+
assertThat(executeQuery(connectionDetails, DatabaseDriver.POSTGRESQL.getValidationQuery(), Integer.class))
7879
.isEqualTo(1);
7980
}
8081

81-
private void checkApplicationName(JdbcConnectionDetails connectionDetails, String applicationName)
82-
throws ClassNotFoundException {
83-
assertThat(queryForObject(connectionDetails, "select current_setting('application_name')", String.class))
84-
.isEqualTo(applicationName);
85-
}
86-
8782
@SuppressWarnings("unchecked")
88-
private <T> T queryForObject(JdbcConnectionDetails connectionDetails, String sql, Class<T> result)
83+
private <T> T executeQuery(JdbcConnectionDetails connectionDetails, String sql, Class<T> result)
8984
throws ClassNotFoundException {
9085
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
9186
dataSource.setUrl(connectionDetails.getJdbcUrl());

‎spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java

+6-11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -66,7 +66,8 @@ void runCreatesConnectionDetailsApplicationName(R2dbcConnectionDetails connectio
6666
assertConnectionDetails(connectionDetails);
6767
ConnectionFactoryOptions options = connectionDetails.getConnectionFactoryOptions();
6868
assertThat(options.getValue(Option.valueOf("applicationName"))).isEqualTo("spring boot");
69-
checkApplicationName(connectionDetails, "spring boot");
69+
assertThat(executeQuery(connectionDetails, "select current_setting('application_name')", String.class))
70+
.isEqualTo("spring boot");
7071
}
7172

7273
private void assertConnectionDetails(R2dbcConnectionDetails connectionDetails) {
@@ -80,17 +81,11 @@ private void assertConnectionDetails(R2dbcConnectionDetails connectionDetails) {
8081
}
8182

8283
private void checkDatabaseAccess(R2dbcConnectionDetails connectionDetails) {
83-
Integer result = queryForObject(connectionDetails, DatabaseDriver.POSTGRESQL.getValidationQuery(),
84-
Integer.class);
85-
assertThat(result).isEqualTo(1);
84+
assertThat(executeQuery(connectionDetails, DatabaseDriver.POSTGRESQL.getValidationQuery(), Integer.class))
85+
.isEqualTo(1);
8686
}
8787

88-
private void checkApplicationName(R2dbcConnectionDetails connectionDetails, String applicationName) {
89-
assertThat(queryForObject(connectionDetails, "select current_setting('application_name')", String.class))
90-
.isEqualTo(applicationName);
91-
}
92-
93-
private <T> T queryForObject(R2dbcConnectionDetails connectionDetails, String sql, Class<T> result) {
88+
private <T> T executeQuery(R2dbcConnectionDetails connectionDetails, String sql, Class<T> result) {
9489
ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions();
9590
return DatabaseClient.create(ConnectionFactories.get(connectionFactoryOptions))
9691
.sql(sql)

0 commit comments

Comments
 (0)