Commit 7623c291 authored by Phillip Webb's avatar Phillip Webb

Attempt to fix failing CI build

parent 045088e8
...@@ -39,7 +39,7 @@ import org.springframework.data.redis.core.RedisTemplate; ...@@ -39,7 +39,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
/** /**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's redis support. * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Redis support.
* *
* @author Dave Syer * @author Dave Syer
*/ */
...@@ -99,9 +99,7 @@ public class RedisAutoConfiguration { ...@@ -99,9 +99,7 @@ public class RedisAutoConfiguration {
private PoolConfig poolConfig() { private PoolConfig poolConfig() {
PoolConfig pool = new PoolConfig(); PoolConfig pool = new PoolConfig();
// FQCN to avoid bizarre compiler error on command line build (!?) RedisProperties.Pool props = this.config.getPool();
org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration.RedisProperties.Pool props = this.config
.getPool();
if (props != null) { if (props != null) {
pool.setMaxActive(props.getMaxActive()); pool.setMaxActive(props.getMaxActive());
pool.setMaxIdle(props.getMaxIdle()); pool.setMaxIdle(props.getMaxIdle());
...@@ -185,9 +183,13 @@ public class RedisAutoConfiguration { ...@@ -185,9 +183,13 @@ public class RedisAutoConfiguration {
} }
public static class Pool { public static class Pool {
private int maxIdle = 8; private int maxIdle = 8;
private int minIdle = 0; private int minIdle = 0;
private int maxActive = 8; private int maxActive = 8;
private int maxWait = -1; private int maxWait = -1;
public int getMaxIdle() { public int getMaxIdle() {
......
...@@ -28,7 +28,6 @@ import org.springframework.boot.autoconfigure.ComponentScanDetectorConfiguration ...@@ -28,7 +28,6 @@ import org.springframework.boot.autoconfigure.ComponentScanDetectorConfiguration
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration; import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.AbstractJpaAutoConfigurationTests.TestConfigurationWithTransactionManager.CustomJpaTransactionManager;
import org.springframework.boot.autoconfigure.orm.jpa.test.City; import org.springframework.boot.autoconfigure.orm.jpa.test.City;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;
...@@ -43,7 +42,7 @@ import org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor; ...@@ -43,7 +42,7 @@ import org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor;
import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
...@@ -135,36 +134,37 @@ public abstract class AbstractJpaAutoConfigurationTests { ...@@ -135,36 +134,37 @@ public abstract class AbstractJpaAutoConfigurationTests {
assertThat(map.get("a"), equalTo((Object) "b")); assertThat(map.get("a"), equalTo((Object) "b"));
assertThat(map.get("c"), equalTo((Object) "d")); assertThat(map.get("c"), equalTo((Object) "d"));
} }
@Test @Test
public void usesManuallyDefinedEntityManagerFactoryBeanIfAvailable() { public void usesManuallyDefinedEntityManagerFactoryBeanIfAvailable() {
setupTestConfiguration(TestConfigurationWithEntityManagerFactory.class); setupTestConfiguration(TestConfigurationWithEntityManagerFactory.class);
this.context.refresh(); this.context.refresh();
LocalContainerEntityManagerFactoryBean factoryBean = this.context.getBean(LocalContainerEntityManagerFactoryBean.class); LocalContainerEntityManagerFactoryBean factoryBean = this.context
.getBean(LocalContainerEntityManagerFactoryBean.class);
Map<String, Object> map = factoryBean.getJpaPropertyMap(); Map<String, Object> map = factoryBean.getJpaPropertyMap();
assertThat(map.get("configured"), is((Object) "manually")); assertThat(map.get("configured"), equalTo((Object) "manually"));
} }
@Test @Test
public void usesManuallyDefinedTransactionManagerBeanIfAvailable() { public void usesManuallyDefinedTransactionManagerBeanIfAvailable() {
setupTestConfiguration(TestConfigurationWithTransactionManager.class); setupTestConfiguration(TestConfigurationWithTransactionManager.class);
this.context.refresh(); this.context.refresh();
PlatformTransactionManager txManager = this.context.getBean(PlatformTransactionManager.class); PlatformTransactionManager txManager = this.context
assertThat(txManager, is(instanceOf(CustomJpaTransactionManager.class))); .getBean(PlatformTransactionManager.class);
assertThat(txManager, instanceOf(CustomJpaTransactionManager.class));
} }
protected void setupTestConfiguration() { protected void setupTestConfiguration() {
setupTestConfiguration(TestConfiguration.class); setupTestConfiguration(TestConfiguration.class);
} }
protected void setupTestConfiguration(Class<?> configClass) { protected void setupTestConfiguration(Class<?> configClass) {
this.context.register(configClass, this.context.register(configClass, ComponentScanDetectorConfiguration.class,
ComponentScanDetectorConfiguration.class,
EmbeddedDataSourceConfiguration.class, EmbeddedDataSourceConfiguration.class,
PropertyPlaceholderAutoConfiguration.class, getAutoConfigureClass()); PropertyPlaceholderAutoConfiguration.class, getAutoConfigureClass());
} }
...@@ -188,33 +188,36 @@ public abstract class AbstractJpaAutoConfigurationTests { ...@@ -188,33 +188,36 @@ public abstract class AbstractJpaAutoConfigurationTests {
return new OpenEntityManagerInViewFilter(); return new OpenEntityManagerInViewFilter();
} }
} }
@Configuration @Configuration
protected static class TestConfigurationWithEntityManagerFactory extends TestConfiguration { protected static class TestConfigurationWithEntityManagerFactory extends
TestConfiguration {
@Bean @Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, JpaVendorAdapter adapter) { public LocalContainerEntityManagerFactoryBean entityManagerFactory(
DataSource dataSource, JpaVendorAdapter adapter) {
LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
factoryBean.setJpaVendorAdapter(adapter); factoryBean.setJpaVendorAdapter(adapter);
factoryBean.setDataSource(dataSource); factoryBean.setDataSource(dataSource);
factoryBean.setPersistenceUnitName("manually-configured"); factoryBean.setPersistenceUnitName("manually-configured");
factoryBean.setJpaPropertyMap(Collections.singletonMap("configured", "manually")); factoryBean.setJpaPropertyMap(Collections.singletonMap("configured",
"manually"));
return factoryBean; return factoryBean;
} }
} }
@Configuration @Configuration
@ComponentScan(basePackageClasses = { City.class }) @ComponentScan(basePackageClasses = { City.class })
protected static class TestConfigurationWithTransactionManager { protected static class TestConfigurationWithTransactionManager {
@Bean @Bean
public PlatformTransactionManager transactionManager() { public PlatformTransactionManager transactionManager() {
return new CustomJpaTransactionManager(); return new CustomJpaTransactionManager();
} }
static class CustomJpaTransactionManager extends JpaTransactionManager { }
} static class CustomJpaTransactionManager extends JpaTransactionManager {
} }
} }
...@@ -16,15 +16,12 @@ ...@@ -16,15 +16,12 @@
package sample.data.redis; package sample.data.redis;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.springframework.boot.OutputCapture; import org.springframework.boot.OutputCapture;
import sample.data.redis.SampleRedisApplication; import org.springframework.data.redis.RedisConnectionFailureException;
import org.springframework.core.NestedCheckedException;
import static org.junit.Assert.assertTrue;
/** /**
* Tests for {@link SampleRedisApplication}. * Tests for {@link SampleRedisApplication}.
...@@ -42,7 +39,7 @@ public class SampleRedisApplicationTests { ...@@ -42,7 +39,7 @@ public class SampleRedisApplicationTests {
SampleRedisApplication.main(new String[0]); SampleRedisApplication.main(new String[0]);
} }
catch (IllegalStateException ex) { catch (IllegalStateException ex) {
if (serverNotRunning(ex)) { if (!redisServerRunning(ex)) {
return; return;
} }
} }
...@@ -51,17 +48,11 @@ public class SampleRedisApplicationTests { ...@@ -51,17 +48,11 @@ public class SampleRedisApplicationTests {
output.contains("Found key spring.boot.redis.test")); output.contains("Found key spring.boot.redis.test"));
} }
private boolean serverNotRunning(IllegalStateException e) { private boolean redisServerRunning(Throwable ex) {
@SuppressWarnings("serial") System.out.println(ex.getMessage());
NestedCheckedException nested = new NestedCheckedException("failed", e) { if (ex instanceof RedisConnectionFailureException) {
}; return false;
if (nested.contains(IOException.class)) {
Throwable root = nested.getRootCause();
if (root.getMessage().contains("couldn't connect to [localhost")) {
return true;
}
} }
return false; return (ex.getCause() == null || redisServerRunning(ex.getCause()));
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment