Skip to content

Commit 74a88cd

Browse files
committed
Merge pull request #32184 from ldziedziul
* pr/32184: Polish "Make sure Hazelcast shutdown logs are available" Make sure Hazelcast shutdown logs are available Closes gh-32184
2 parents 9ef067d + 960b034 commit 74a88cd

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/hazelcast/HazelcastServerConfiguration.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ class HazelcastServerConfiguration {
5252

5353
static final String CONFIG_SYSTEM_PROPERTY = "hazelcast.config";
5454

55+
static final String HAZELCAST_LOGGING_TYPE = "hazelcast.logging.type";
56+
5557
private static HazelcastInstance getHazelcastInstance(Config config) {
5658
if (StringUtils.hasText(config.getInstanceName())) {
5759
return Hazelcast.getOrCreateHazelcastInstance(config);
@@ -123,6 +125,22 @@ HazelcastConfigCustomizer springManagedContextHazelcastConfigCustomizer(Applicat
123125

124126
}
125127

128+
@Configuration(proxyBeanMethods = false)
129+
@ConditionalOnClass(org.slf4j.Logger.class)
130+
static class HazelcastLoggingConfigCustomizerConfiguration {
131+
132+
@Bean
133+
@Order(0)
134+
HazelcastConfigCustomizer loggingHazelcastConfigCustomizer() {
135+
return (config) -> {
136+
if (!config.getProperties().containsKey(HAZELCAST_LOGGING_TYPE)) {
137+
config.setProperty(HAZELCAST_LOGGING_TYPE, "slf4j");
138+
}
139+
};
140+
}
141+
142+
}
143+
126144
/**
127145
* {@link HazelcastConfigResourceCondition} that checks if the
128146
* {@code spring.hazelcast.config} configuration key is defined.

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/hazelcast/HazelcastAutoConfigurationServerTests.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,22 @@ void autoConfiguredContextCanOverrideManagementContextUsingCustomizer() {
206206
});
207207
}
208208

209+
@Test
210+
void autoConfiguredConfigSetsHazelcastLoggingToSlf4j() {
211+
this.contextRunner.run((context) -> {
212+
Config config = context.getBean(HazelcastInstance.class).getConfig();
213+
assertThat(config.getProperty(HazelcastServerConfiguration.HAZELCAST_LOGGING_TYPE)).isEqualTo("slf4j");
214+
});
215+
}
216+
217+
@Test
218+
void autoConfiguredConfigCanOverrideHazelcastLogging() {
219+
this.contextRunner.withUserConfiguration(HazelcastConfigWithJDKLogging.class).run((context) -> {
220+
Config config = context.getBean(HazelcastInstance.class).getConfig();
221+
assertThat(config.getProperty(HazelcastServerConfiguration.HAZELCAST_LOGGING_TYPE)).isEqualTo("jdk");
222+
});
223+
}
224+
209225
private static Config createTestConfig(String instanceName) {
210226
Config config = new Config(instanceName);
211227
JoinConfig join = config.getNetworkConfig().getJoin();
@@ -236,6 +252,18 @@ Config anotherHazelcastConfig() {
236252

237253
}
238254

255+
@Configuration(proxyBeanMethods = false)
256+
static class HazelcastConfigWithJDKLogging {
257+
258+
@Bean
259+
Config anotherHazelcastConfig() {
260+
Config config = new Config();
261+
config.setProperty(HazelcastServerConfiguration.HAZELCAST_LOGGING_TYPE, "jdk");
262+
return config;
263+
}
264+
265+
}
266+
239267
@SpringAware
240268
static class SpringAwareEntryProcessor<V> implements EntryProcessor<String, V, String> {
241269

0 commit comments

Comments
 (0)