Polish
This commit is contained in:
@@ -102,12 +102,14 @@ public class ConcurrentKafkaListenerContainerFactoryConfigurer {
|
||||
.to(container::setAckTime);
|
||||
map.from(properties::getPollTimeout).whenNonNull().as(Duration::toMillis)
|
||||
.to(container::setPollTimeout);
|
||||
map.from(properties::getNoPollThreshold).whenNonNull().to(container::setNoPollThreshold);
|
||||
map.from(properties::getNoPollThreshold).whenNonNull()
|
||||
.to(container::setNoPollThreshold);
|
||||
map.from(properties::getIdleEventInterval).whenNonNull().as(Duration::toMillis)
|
||||
.to(container::setIdleEventInterval);
|
||||
map.from(properties::getMonitorInterval).whenNonNull().as(Duration::getSeconds)
|
||||
.as(Number::intValue).to(container::setMonitorInterval);
|
||||
map.from(properties::getLogContainerConfig).whenNonNull().to(container::setLogContainerConfig);
|
||||
map.from(properties::getLogContainerConfig).whenNonNull()
|
||||
.to(container::setLogContainerConfig);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -815,7 +815,8 @@ public class KafkaProperties {
|
||||
private Duration pollTimeout;
|
||||
|
||||
/**
|
||||
* Multiplier applied to "pollTimeout" to determine if a consumer is non-responsive.
|
||||
* Multiplier applied to "pollTimeout" to determine if a consumer is
|
||||
* non-responsive.
|
||||
*/
|
||||
private Float noPollThreshold;
|
||||
|
||||
|
||||
@@ -23,13 +23,14 @@ import java.util.Map;
|
||||
* properties before it is used by an auto-configured {@code EntityManagerFactory}.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface HibernatePropertiesCustomizer {
|
||||
|
||||
/**
|
||||
* Customize the specified JPA vendor properties.
|
||||
* @param hibernateProperties the current JPA vendor properties
|
||||
* @param hibernateProperties the JPA vendor properties to customize
|
||||
*/
|
||||
void customize(Map<String, Object> hibernateProperties);
|
||||
|
||||
|
||||
@@ -69,8 +69,8 @@ public class HibernateSettings {
|
||||
|
||||
public HibernateSettings hibernatePropertiesCustomizers(
|
||||
Collection<HibernatePropertiesCustomizer> hibernatePropertiesCustomizers) {
|
||||
this.hibernatePropertiesCustomizers = new ArrayList<>();
|
||||
this.hibernatePropertiesCustomizers.addAll(hibernatePropertiesCustomizers);
|
||||
this.hibernatePropertiesCustomizers = new ArrayList<>(
|
||||
hibernatePropertiesCustomizers);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -224,11 +224,10 @@ public class JpaProperties {
|
||||
else {
|
||||
result.remove("hibernate.hbm2ddl.auto");
|
||||
}
|
||||
Collection<HibernatePropertiesCustomizer> hibernatePropertiesCustomizers =
|
||||
settings.getHibernatePropertiesCustomizers();
|
||||
if (!ObjectUtils.isEmpty(hibernatePropertiesCustomizers)) {
|
||||
hibernatePropertiesCustomizers.forEach((customizer)
|
||||
-> customizer.customize(result));
|
||||
Collection<HibernatePropertiesCustomizer> customizers = settings
|
||||
.getHibernatePropertiesCustomizers();
|
||||
if (!ObjectUtils.isEmpty(customizers)) {
|
||||
customizers.forEach((customizer) -> customizer.customize(result));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -299,14 +299,18 @@ public class KafkaAutoConfigurationTests {
|
||||
assertThat(dfa.getPropertyValue("concurrency")).isEqualTo(3);
|
||||
assertThat(dfa.getPropertyValue("containerProperties.pollTimeout"))
|
||||
.isEqualTo(2000L);
|
||||
assertThat(dfa.getPropertyValue("containerProperties.noPollThreshold"))
|
||||
.isEqualTo(2.5f);
|
||||
assertThat(dfa.getPropertyValue("containerProperties.idleEventInterval"))
|
||||
.isEqualTo(1000L);
|
||||
assertThat(dfa.getPropertyValue("containerProperties.monitorInterval"))
|
||||
.isEqualTo(45);
|
||||
assertThat(dfa.getPropertyValue("containerProperties.logContainerConfig"))
|
||||
.isEqualTo(Boolean.TRUE);
|
||||
assertThat(
|
||||
dfa.getPropertyValue("containerProperties.noPollThreshold"))
|
||||
.isEqualTo(2.5f);
|
||||
assertThat(
|
||||
dfa.getPropertyValue("containerProperties.idleEventInterval"))
|
||||
.isEqualTo(1000L);
|
||||
assertThat(
|
||||
dfa.getPropertyValue("containerProperties.monitorInterval"))
|
||||
.isEqualTo(45);
|
||||
assertThat(dfa
|
||||
.getPropertyValue("containerProperties.logContainerConfig"))
|
||||
.isEqualTo(Boolean.TRUE);
|
||||
assertThat(dfa.getPropertyValue("batchListener")).isEqualTo(true);
|
||||
assertThat(
|
||||
context.getBeansOfType(KafkaJaasLoginModuleInitializer.class))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2017 the original author or authors.
|
||||
* Copyright 2012-2018 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -43,25 +43,25 @@ public class MongoAutoConfigurationTests {
|
||||
|
||||
@Test
|
||||
public void clientExists() {
|
||||
this.contextRunner.run((context) ->
|
||||
assertThat(context).hasSingleBean(MongoClient.class));
|
||||
this.contextRunner
|
||||
.run((context) -> assertThat(context).hasSingleBean(MongoClient.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void optionsAdded() {
|
||||
this.contextRunner.withPropertyValues("spring.data.mongodb.host:localhost")
|
||||
.withUserConfiguration(OptionsConfig.class).run((context) ->
|
||||
assertThat(context.getBean(MongoClient.class).getMongoClientOptions()
|
||||
.getSocketTimeout()).isEqualTo(300));
|
||||
.withUserConfiguration(OptionsConfig.class)
|
||||
.run((context) -> assertThat(context.getBean(MongoClient.class)
|
||||
.getMongoClientOptions().getSocketTimeout()).isEqualTo(300));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void optionsAddedButNoHost() {
|
||||
this.contextRunner
|
||||
.withPropertyValues("spring.data.mongodb.uri:mongodb://localhost/test")
|
||||
.withUserConfiguration(OptionsConfig.class).run((context) ->
|
||||
assertThat(context.getBean(MongoClient.class).getMongoClientOptions()
|
||||
.getSocketTimeout()).isEqualTo(300));
|
||||
.withUserConfiguration(OptionsConfig.class)
|
||||
.run((context) -> assertThat(context.getBean(MongoClient.class)
|
||||
.getMongoClientOptions().getSocketTimeout()).isEqualTo(300));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -69,13 +69,13 @@ public class MongoAutoConfigurationTests {
|
||||
this.contextRunner
|
||||
.withPropertyValues("spring.data.mongodb.uri:mongodb://localhost/test")
|
||||
.withUserConfiguration(SslOptionsConfig.class).run((context) -> {
|
||||
assertThat(context).hasSingleBean(MongoClient.class);
|
||||
MongoClient mongo = context.getBean(MongoClient.class);
|
||||
MongoClientOptions options = mongo.getMongoClientOptions();
|
||||
assertThat(options.isSslEnabled()).isTrue();
|
||||
assertThat(options.getSocketFactory())
|
||||
.isSameAs(context.getBean("mySocketFactory"));
|
||||
});
|
||||
assertThat(context).hasSingleBean(MongoClient.class);
|
||||
MongoClient mongo = context.getBean(MongoClient.class);
|
||||
MongoClientOptions options = mongo.getMongoClientOptions();
|
||||
assertThat(options.isSslEnabled()).isTrue();
|
||||
assertThat(options.getSocketFactory())
|
||||
.isSameAs(context.getBean("mySocketFactory"));
|
||||
});
|
||||
}
|
||||
|
||||
@Configuration
|
||||
|
||||
@@ -88,10 +88,10 @@ public class CustomHibernateJpaAutoConfigurationTests {
|
||||
.getVendorProperties();
|
||||
assertThat(hibernateProperties
|
||||
.get("hibernate.implicit_naming_strategy")).isEqualTo(
|
||||
NamingStrategyConfiguration.implicitNamingStrategy);
|
||||
NamingStrategyConfiguration.implicitNamingStrategy);
|
||||
assertThat(hibernateProperties
|
||||
.get("hibernate.physical_naming_strategy")).isEqualTo(
|
||||
NamingStrategyConfiguration.physicalNamingStrategy);
|
||||
NamingStrategyConfiguration.physicalNamingStrategy);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -77,16 +77,19 @@ public class JpaPropertiesTests {
|
||||
this.contextRunner
|
||||
.withPropertyValues(
|
||||
"spring.jpa.hibernate.naming.implicit-strategy:com.example.Implicit",
|
||||
"spring.jpa.hibernate.naming.physical-strategy:com.example.Physical"
|
||||
).run(assertJpaProperties((properties) -> {
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(new HibernateSettings().ddlAuto("none"));
|
||||
assertThat(hibernateProperties).contains(
|
||||
entry("hibernate.implicit_naming_strategy", "com.example.Implicit"),
|
||||
entry("hibernate.physical_naming_strategy", "com.example.Physical"));
|
||||
assertThat(hibernateProperties)
|
||||
.doesNotContainKeys("hibernate.ejb.naming_strategy");
|
||||
}));
|
||||
"spring.jpa.hibernate.naming.physical-strategy:com.example.Physical")
|
||||
.run(assertJpaProperties((properties) -> {
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(
|
||||
new HibernateSettings().ddlAuto("none"));
|
||||
assertThat(hibernateProperties).contains(
|
||||
entry("hibernate.implicit_naming_strategy",
|
||||
"com.example.Implicit"),
|
||||
entry("hibernate.physical_naming_strategy",
|
||||
"com.example.Physical"));
|
||||
assertThat(hibernateProperties)
|
||||
.doesNotContainKeys("hibernate.ejb.naming_strategy");
|
||||
}));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -111,54 +114,62 @@ public class JpaPropertiesTests {
|
||||
this.contextRunner
|
||||
.withPropertyValues(
|
||||
"spring.jpa.hibernate.naming.implicit-strategy:com.example.Implicit",
|
||||
"spring.jpa.hibernate.naming.physical-strategy:com.example.Physical"
|
||||
).run(assertJpaProperties((properties) -> {
|
||||
ImplicitNamingStrategy implicitStrategy = mock(ImplicitNamingStrategy.class);
|
||||
PhysicalNamingStrategy physicalStrategy = mock(PhysicalNamingStrategy.class);
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(new HibernateSettings().ddlAuto("none")
|
||||
.implicitNamingStrategy(implicitStrategy)
|
||||
.physicalNamingStrategy(physicalStrategy));
|
||||
assertThat(hibernateProperties).contains(
|
||||
entry("hibernate.implicit_naming_strategy", implicitStrategy),
|
||||
entry("hibernate.physical_naming_strategy", physicalStrategy));
|
||||
assertThat(hibernateProperties)
|
||||
.doesNotContainKeys("hibernate.ejb.naming_strategy");
|
||||
}));
|
||||
"spring.jpa.hibernate.naming.physical-strategy:com.example.Physical")
|
||||
.run(assertJpaProperties((properties) -> {
|
||||
ImplicitNamingStrategy implicitStrategy = mock(
|
||||
ImplicitNamingStrategy.class);
|
||||
PhysicalNamingStrategy physicalStrategy = mock(
|
||||
PhysicalNamingStrategy.class);
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(
|
||||
new HibernateSettings().ddlAuto("none")
|
||||
.implicitNamingStrategy(implicitStrategy)
|
||||
.physicalNamingStrategy(physicalStrategy));
|
||||
assertThat(hibernateProperties).contains(
|
||||
entry("hibernate.implicit_naming_strategy", implicitStrategy),
|
||||
entry("hibernate.physical_naming_strategy",
|
||||
physicalStrategy));
|
||||
assertThat(hibernateProperties)
|
||||
.doesNotContainKeys("hibernate.ejb.naming_strategy");
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void hibernatePropertiesCustomizerTakePrecedenceOverStrategyInstancesAndNamingStrategyProperties() {
|
||||
this.contextRunner
|
||||
.withPropertyValues(
|
||||
"spring.jpa.hibernate.naming.implicit-strategy:com.example.Implicit",
|
||||
"spring.jpa.hibernate.naming.physical-strategy:com.example.Physical"
|
||||
).run(assertJpaProperties((properties) -> {
|
||||
ImplicitNamingStrategy implicitStrategy = mock(ImplicitNamingStrategy.class);
|
||||
PhysicalNamingStrategy physicalStrategy = mock(PhysicalNamingStrategy.class);
|
||||
ImplicitNamingStrategy effectiveImplicitStrategy = mock(
|
||||
ImplicitNamingStrategy.class);
|
||||
PhysicalNamingStrategy effectivePhysicalStrategy = mock(
|
||||
PhysicalNamingStrategy.class);
|
||||
HibernatePropertiesCustomizer customizer = (hibernateProperties) -> {
|
||||
hibernateProperties.put("hibernate.implicit_naming_strategy",
|
||||
effectiveImplicitStrategy);
|
||||
hibernateProperties.put("hibernate.physical_naming_strategy",
|
||||
effectivePhysicalStrategy);
|
||||
};
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(new HibernateSettings().ddlAuto("none")
|
||||
.implicitNamingStrategy(implicitStrategy)
|
||||
.physicalNamingStrategy(physicalStrategy)
|
||||
.hibernatePropertiesCustomizers(
|
||||
Collections.singleton(customizer)));
|
||||
assertThat(hibernateProperties).contains(
|
||||
entry("hibernate.implicit_naming_strategy", effectiveImplicitStrategy),
|
||||
entry("hibernate.physical_naming_strategy", effectivePhysicalStrategy));
|
||||
assertThat(hibernateProperties)
|
||||
.doesNotContainKeys("hibernate.ejb.naming_strategy");
|
||||
}));
|
||||
"spring.jpa.hibernate.naming.physical-strategy:com.example.Physical")
|
||||
.run(assertJpaProperties((properties) -> {
|
||||
ImplicitNamingStrategy implicitStrategy = mock(
|
||||
ImplicitNamingStrategy.class);
|
||||
PhysicalNamingStrategy physicalStrategy = mock(
|
||||
PhysicalNamingStrategy.class);
|
||||
ImplicitNamingStrategy effectiveImplicitStrategy = mock(
|
||||
ImplicitNamingStrategy.class);
|
||||
PhysicalNamingStrategy effectivePhysicalStrategy = mock(
|
||||
PhysicalNamingStrategy.class);
|
||||
HibernatePropertiesCustomizer customizer = (hibernateProperties) -> {
|
||||
hibernateProperties.put("hibernate.implicit_naming_strategy",
|
||||
effectiveImplicitStrategy);
|
||||
hibernateProperties.put("hibernate.physical_naming_strategy",
|
||||
effectivePhysicalStrategy);
|
||||
};
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(
|
||||
new HibernateSettings().ddlAuto("none")
|
||||
.implicitNamingStrategy(implicitStrategy)
|
||||
.physicalNamingStrategy(physicalStrategy)
|
||||
.hibernatePropertiesCustomizers(
|
||||
Collections.singleton(customizer)));
|
||||
assertThat(hibernateProperties).contains(
|
||||
entry("hibernate.implicit_naming_strategy",
|
||||
effectiveImplicitStrategy),
|
||||
entry("hibernate.physical_naming_strategy",
|
||||
effectivePhysicalStrategy));
|
||||
assertThat(hibernateProperties)
|
||||
.doesNotContainKeys("hibernate.ejb.naming_strategy");
|
||||
}));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -166,17 +177,20 @@ public class JpaPropertiesTests {
|
||||
this.contextRunner
|
||||
.withPropertyValues(
|
||||
"spring.jpa.properties.hibernate.implicit_naming_strategy:com.example.Implicit",
|
||||
"spring.jpa.properties.hibernate.physical_naming_strategy:com.example.Physical"
|
||||
).run(assertJpaProperties((properties) -> {
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(new HibernateSettings().ddlAuto("none"));
|
||||
// You can override them as we don't provide any default
|
||||
assertThat(hibernateProperties).contains(
|
||||
entry("hibernate.implicit_naming_strategy", "com.example.Implicit"),
|
||||
entry("hibernate.physical_naming_strategy", "com.example.Physical"));
|
||||
assertThat(hibernateProperties)
|
||||
.doesNotContainKeys("hibernate.ejb.naming_strategy");
|
||||
}));
|
||||
"spring.jpa.properties.hibernate.physical_naming_strategy:com.example.Physical")
|
||||
.run(assertJpaProperties((properties) -> {
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(
|
||||
new HibernateSettings().ddlAuto("none"));
|
||||
// You can override them as we don't provide any default
|
||||
assertThat(hibernateProperties).contains(
|
||||
entry("hibernate.implicit_naming_strategy",
|
||||
"com.example.Implicit"),
|
||||
entry("hibernate.physical_naming_strategy",
|
||||
"com.example.Physical"));
|
||||
assertThat(hibernateProperties)
|
||||
.doesNotContainKeys("hibernate.ejb.naming_strategy");
|
||||
}));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -184,8 +198,8 @@ public class JpaPropertiesTests {
|
||||
this.contextRunner.run(assertJpaProperties((properties) -> {
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(new HibernateSettings().ddlAuto("none"));
|
||||
assertThat(hibernateProperties)
|
||||
.containsEntry(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
|
||||
assertThat(hibernateProperties).containsEntry(
|
||||
AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -193,19 +207,19 @@ public class JpaPropertiesTests {
|
||||
public void useNewIdGeneratorMappingsFalse() {
|
||||
this.contextRunner
|
||||
.withPropertyValues(
|
||||
"spring.jpa.hibernate.use-new-id-generator-mappings:false"
|
||||
).run(assertJpaProperties((properties) -> {
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(new HibernateSettings().ddlAuto("none"));
|
||||
assertThat(hibernateProperties)
|
||||
.containsEntry(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "false");
|
||||
}));
|
||||
"spring.jpa.hibernate.use-new-id-generator-mappings:false")
|
||||
.run(assertJpaProperties((properties) -> {
|
||||
Map<String, Object> hibernateProperties = properties
|
||||
.getHibernateProperties(
|
||||
new HibernateSettings().ddlAuto("none"));
|
||||
assertThat(hibernateProperties).containsEntry(
|
||||
AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "false");
|
||||
}));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void determineDatabaseNoCheckIfDatabaseIsSet() {
|
||||
this.contextRunner
|
||||
.withPropertyValues("spring.jpa.database=postgresql")
|
||||
this.contextRunner.withPropertyValues("spring.jpa.database=postgresql")
|
||||
.run(assertJpaProperties((properties) -> {
|
||||
DataSource dataSource = mockStandaloneDataSource();
|
||||
Database database = properties.determineDatabase(dataSource);
|
||||
@@ -230,8 +244,7 @@ public class JpaPropertiesTests {
|
||||
|
||||
@Test
|
||||
public void determineDatabaseWithKnownUrlAndUserConfig() {
|
||||
this.contextRunner
|
||||
.withPropertyValues("spring.jpa.database=mysql")
|
||||
this.contextRunner.withPropertyValues("spring.jpa.database=mysql")
|
||||
.run(assertJpaProperties((properties) -> {
|
||||
Database database = properties
|
||||
.determineDatabase(mockDataSource("jdbc:h2:mem:testdb"));
|
||||
|
||||
Reference in New Issue
Block a user