Commit 7b2b8dc4 authored by Phillip Webb's avatar Phillip Webb

Merge branch '1.5.x'

parents 2ae39fce dca463c7
...@@ -46,7 +46,6 @@ import org.springframework.core.annotation.AliasFor; ...@@ -46,7 +46,6 @@ import org.springframework.core.annotation.AliasFor;
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Documented @Documented
@Inherited @Inherited
@AutoConfigurationPackage
@Import(ImportAutoConfigurationImportSelector.class) @Import(ImportAutoConfigurationImportSelector.class)
public @interface ImportAutoConfiguration { public @interface ImportAutoConfiguration {
......
...@@ -49,8 +49,8 @@ class ActiveMQConnectionFactoryConfiguration { ...@@ -49,8 +49,8 @@ class ActiveMQConnectionFactoryConfiguration {
public ActiveMQConnectionFactory jmsConnectionFactory(ActiveMQProperties properties, public ActiveMQConnectionFactory jmsConnectionFactory(ActiveMQProperties properties,
ObjectProvider<List<ActiveMQConnectionFactoryCustomizer>> factoryCustomizers) { ObjectProvider<List<ActiveMQConnectionFactoryCustomizer>> factoryCustomizers) {
return new ActiveMQConnectionFactoryFactory(properties, return new ActiveMQConnectionFactoryFactory(properties,
factoryCustomizers.getIfAvailable()).createConnectionFactory( factoryCustomizers.getIfAvailable())
ActiveMQConnectionFactory.class); .createConnectionFactory(ActiveMQConnectionFactory.class);
} }
@ConditionalOnClass(PooledConnectionFactory.class) @ConditionalOnClass(PooledConnectionFactory.class)
...@@ -67,21 +67,21 @@ class ActiveMQConnectionFactoryConfiguration { ...@@ -67,21 +67,21 @@ class ActiveMQConnectionFactoryConfiguration {
ActiveMQConnectionFactory.class)); ActiveMQConnectionFactory.class));
ActiveMQProperties.Pool pool = properties.getPool(); ActiveMQProperties.Pool pool = properties.getPool();
pooledConnectionFactory.setBlockIfSessionPoolIsFull(pool.isBlockIfFull()); pooledConnectionFactory.setBlockIfSessionPoolIsFull(pool.isBlockIfFull());
pooledConnectionFactory.setBlockIfSessionPoolIsFullTimeout( pooledConnectionFactory
pool.getBlockIfFullTimeout()); .setBlockIfSessionPoolIsFullTimeout(pool.getBlockIfFullTimeout());
pooledConnectionFactory.setCreateConnectionOnStartup( pooledConnectionFactory
pool.isCreateConnectionOnStartup()); .setCreateConnectionOnStartup(pool.isCreateConnectionOnStartup());
pooledConnectionFactory.setExpiryTimeout(pool.getExpiryTimeout()); pooledConnectionFactory.setExpiryTimeout(pool.getExpiryTimeout());
pooledConnectionFactory.setIdleTimeout(pool.getIdleTimeout()); pooledConnectionFactory.setIdleTimeout(pool.getIdleTimeout());
pooledConnectionFactory.setMaxConnections(pool.getMaxConnections()); pooledConnectionFactory.setMaxConnections(pool.getMaxConnections());
pooledConnectionFactory.setMaximumActiveSessionPerConnection( pooledConnectionFactory.setMaximumActiveSessionPerConnection(
pool.getMaximumActiveSessionPerConnection()); pool.getMaximumActiveSessionPerConnection());
pooledConnectionFactory.setReconnectOnException( pooledConnectionFactory
pool.isReconnectOnException()); .setReconnectOnException(pool.isReconnectOnException());
pooledConnectionFactory.setTimeBetweenExpirationCheckMillis( pooledConnectionFactory.setTimeBetweenExpirationCheckMillis(
pool.getTimeBetweenExpirationCheck()); pool.getTimeBetweenExpirationCheck());
pooledConnectionFactory.setUseAnonymousProducers( pooledConnectionFactory
pool.isUseAnonymousProducers()); .setUseAnonymousProducers(pool.isUseAnonymousProducers());
return pooledConnectionFactory; return pooledConnectionFactory;
} }
......
...@@ -158,8 +158,8 @@ public class ActiveMQProperties { ...@@ -158,8 +158,8 @@ public class ActiveMQProperties {
private boolean blockIfFull = true; private boolean blockIfFull = true;
/** /**
* Blocking period, in milliseconds, before throwing an exception if the pool * Blocking period, in milliseconds, before throwing an exception if the pool is
* is still full. * still full.
*/ */
private long blockIfFullTimeout = -1; private long blockIfFullTimeout = -1;
...@@ -265,7 +265,8 @@ public class ActiveMQProperties { ...@@ -265,7 +265,8 @@ public class ActiveMQProperties {
return this.maximumActiveSessionPerConnection; return this.maximumActiveSessionPerConnection;
} }
public void setMaximumActiveSessionPerConnection(int maximumActiveSessionPerConnection) { public void setMaximumActiveSessionPerConnection(
int maximumActiveSessionPerConnection) {
this.maximumActiveSessionPerConnection = maximumActiveSessionPerConnection; this.maximumActiveSessionPerConnection = maximumActiveSessionPerConnection;
} }
......
...@@ -64,8 +64,8 @@ class ActiveMQXAConnectionFactoryConfiguration { ...@@ -64,8 +64,8 @@ class ActiveMQXAConnectionFactoryConfiguration {
ActiveMQProperties properties, ActiveMQProperties properties,
ObjectProvider<List<ActiveMQConnectionFactoryCustomizer>> factoryCustomizers) { ObjectProvider<List<ActiveMQConnectionFactoryCustomizer>> factoryCustomizers) {
return new ActiveMQConnectionFactoryFactory(properties, return new ActiveMQConnectionFactoryFactory(properties,
factoryCustomizers.getIfAvailable()).createConnectionFactory( factoryCustomizers.getIfAvailable())
ActiveMQConnectionFactory.class); .createConnectionFactory(ActiveMQConnectionFactory.class);
} }
} }
...@@ -37,6 +37,7 @@ import org.springframework.core.env.Environment; ...@@ -37,6 +37,7 @@ import org.springframework.core.env.Environment;
import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.type.AnnotationMetadata; import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.classreading.SimpleMetadataReaderFactory; import org.springframework.core.type.classreading.SimpleMetadataReaderFactory;
import org.springframework.util.ClassUtils;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.verifyZeroInteractions;
...@@ -125,7 +126,6 @@ public class ImportAutoConfigurationImportSelectorTests { ...@@ -125,7 +126,6 @@ public class ImportAutoConfigurationImportSelectorTests {
public void exclusionsAliasesAreApplied() throws Exception { public void exclusionsAliasesAreApplied() throws Exception {
AnnotationMetadata annotationMetadata = getAnnotationMetadata( AnnotationMetadata annotationMetadata = getAnnotationMetadata(
ImportWithSelfAnnotatingAnnotationExclude.class); ImportWithSelfAnnotatingAnnotationExclude.class);
String[] imports = this.importSelector.selectImports(annotationMetadata); String[] imports = this.importSelector.selectImports(annotationMetadata);
assertThat(imports).isEmpty(); assertThat(imports).isEmpty();
} }
...@@ -182,6 +182,19 @@ public class ImportAutoConfigurationImportSelectorTests { ...@@ -182,6 +182,19 @@ public class ImportAutoConfigurationImportSelectorTests {
assertThat(set1).isNotEqualTo(set2); assertThat(set1).isNotEqualTo(set2);
} }
@Test
public void determineImportsShouldNotSetPackageImport() throws Exception {
Class<?> packageImportClass = ClassUtils.resolveClassName(
"org.springframework.boot.autoconfigure.AutoConfigurationPackages.PackageImport",
null);
Set<Object> selectedImports = this.importSelector
.determineImports(getAnnotationMetadata(
ImportMetaAutoConfigurationExcludeWithUnrelatedOne.class));
for (Object selectedImport : selectedImports) {
assertThat(selectedImport).isNotInstanceOf(packageImportClass);
}
}
private AnnotationMetadata getAnnotationMetadata(Class<?> source) throws IOException { private AnnotationMetadata getAnnotationMetadata(Class<?> source) throws IOException {
return new SimpleMetadataReaderFactory().getMetadataReader(source.getName()) return new SimpleMetadataReaderFactory().getMetadataReader(source.getName())
.getAnnotationMetadata(); .getAnnotationMetadata();
......
...@@ -67,24 +67,26 @@ public class ActiveMQAutoConfigurationTests { ...@@ -67,24 +67,26 @@ public class ActiveMQAutoConfigurationTests {
@Test @Test
public void defaultsConnectionFactoryAreApplied() { public void defaultsConnectionFactoryAreApplied() {
this.context.withUserConfiguration(EmptyConfiguration.class) this.context.withUserConfiguration(EmptyConfiguration.class)
.withPropertyValues("spring.activemq.pool.enabled=false").run((loaded) -> { .withPropertyValues("spring.activemq.pool.enabled=false")
assertThat(loaded.getBeansOfType(ActiveMQConnectionFactory.class)).hasSize(1); .run((loaded) -> {
ActiveMQConnectionFactory connectionFactory = loaded.getBean( assertThat(loaded.getBeansOfType(ActiveMQConnectionFactory.class))
ActiveMQConnectionFactory.class); .hasSize(1);
ActiveMQConnectionFactory connectionFactory = loaded
.getBean(ActiveMQConnectionFactory.class);
ActiveMQConnectionFactory defaultFactory = new ActiveMQConnectionFactory( ActiveMQConnectionFactory defaultFactory = new ActiveMQConnectionFactory(
"vm://localhost?broker.persistent=false"); "vm://localhost?broker.persistent=false");
assertThat(connectionFactory.getUserName()).isEqualTo( assertThat(connectionFactory.getUserName())
defaultFactory.getUserName()); .isEqualTo(defaultFactory.getUserName());
assertThat(connectionFactory.getPassword()).isEqualTo( assertThat(connectionFactory.getPassword())
defaultFactory.getPassword()); .isEqualTo(defaultFactory.getPassword());
assertThat(connectionFactory.getCloseTimeout()).isEqualTo( assertThat(connectionFactory.getCloseTimeout())
defaultFactory.getCloseTimeout()); .isEqualTo(defaultFactory.getCloseTimeout());
assertThat(connectionFactory.isNonBlockingRedelivery()).isEqualTo( assertThat(connectionFactory.isNonBlockingRedelivery())
defaultFactory.isNonBlockingRedelivery()); .isEqualTo(defaultFactory.isNonBlockingRedelivery());
assertThat(connectionFactory.getSendTimeout()).isEqualTo( assertThat(connectionFactory.getSendTimeout())
defaultFactory.getSendTimeout()); .isEqualTo(defaultFactory.getSendTimeout());
assertThat(connectionFactory.isTrustAllPackages()).isEqualTo( assertThat(connectionFactory.isTrustAllPackages())
defaultFactory.isTrustAllPackages()); .isEqualTo(defaultFactory.isTrustAllPackages());
assertThat(connectionFactory.getTrustedPackages()).containsExactly( assertThat(connectionFactory.getTrustedPackages()).containsExactly(
defaultFactory.getTrustedPackages().toArray(new String[] {})); defaultFactory.getTrustedPackages().toArray(new String[] {}));
}); });
...@@ -95,24 +97,26 @@ public class ActiveMQAutoConfigurationTests { ...@@ -95,24 +97,26 @@ public class ActiveMQAutoConfigurationTests {
this.context.withUserConfiguration(EmptyConfiguration.class) this.context.withUserConfiguration(EmptyConfiguration.class)
.withPropertyValues("spring.activemq.pool.enabled=false", .withPropertyValues("spring.activemq.pool.enabled=false",
"spring.activemq.brokerUrl=vm://localhost?useJmx=false&broker.persistent=false", "spring.activemq.brokerUrl=vm://localhost?useJmx=false&broker.persistent=false",
"spring.activemq.user=foo", "spring.activemq.user=foo", "spring.activemq.password=bar",
"spring.activemq.password=bar",
"spring.activemq.closeTimeout=500", "spring.activemq.closeTimeout=500",
"spring.activemq.nonBlockingRedelivery=true", "spring.activemq.nonBlockingRedelivery=true",
"spring.activemq.sendTimeout=1000", "spring.activemq.sendTimeout=1000",
"spring.activemq.packages.trust-all=false", "spring.activemq.packages.trust-all=false",
"spring.activemq.packages.trusted=com.example.acme").run((loaded) -> { "spring.activemq.packages.trusted=com.example.acme")
assertThat(loaded.getBeansOfType(ActiveMQConnectionFactory.class)).hasSize(1); .run((loaded) -> {
ActiveMQConnectionFactory connectionFactory = loaded.getBean( assertThat(loaded.getBeansOfType(ActiveMQConnectionFactory.class))
ActiveMQConnectionFactory.class); .hasSize(1);
ActiveMQConnectionFactory connectionFactory = loaded
.getBean(ActiveMQConnectionFactory.class);
assertThat(connectionFactory.getUserName()).isEqualTo("foo"); assertThat(connectionFactory.getUserName()).isEqualTo("foo");
assertThat(connectionFactory.getPassword()).isEqualTo("bar"); assertThat(connectionFactory.getPassword()).isEqualTo("bar");
assertThat(connectionFactory.getCloseTimeout()).isEqualTo(500); assertThat(connectionFactory.getCloseTimeout()).isEqualTo(500);
assertThat(connectionFactory.isNonBlockingRedelivery()).isEqualTo(true); assertThat(connectionFactory.isNonBlockingRedelivery())
.isEqualTo(true);
assertThat(connectionFactory.getSendTimeout()).isEqualTo(1000); assertThat(connectionFactory.getSendTimeout()).isEqualTo(1000);
assertThat(connectionFactory.isTrustAllPackages()).isFalse(); assertThat(connectionFactory.isTrustAllPackages()).isFalse();
assertThat(connectionFactory.getTrustedPackages()).containsExactly( assertThat(connectionFactory.getTrustedPackages())
"com.example.acme"); .containsExactly("com.example.acme");
}); });
} }
...@@ -120,30 +124,34 @@ public class ActiveMQAutoConfigurationTests { ...@@ -120,30 +124,34 @@ public class ActiveMQAutoConfigurationTests {
public void defaultsPooledConnectionFactoryAreApplied() { public void defaultsPooledConnectionFactoryAreApplied() {
this.context.withUserConfiguration(EmptyConfiguration.class) this.context.withUserConfiguration(EmptyConfiguration.class)
.withPropertyValues("spring.activemq.pool.enabled=true").run((loaded) -> { .withPropertyValues("spring.activemq.pool.enabled=true").run((loaded) -> {
assertThat(loaded.getBeansOfType(PooledConnectionFactory.class)).hasSize(1); assertThat(loaded.getBeansOfType(PooledConnectionFactory.class))
PooledConnectionFactory connectionFactory = loaded.getBean( .hasSize(1);
PooledConnectionFactory.class); PooledConnectionFactory connectionFactory = loaded
.getBean(PooledConnectionFactory.class);
PooledConnectionFactory defaultFactory = new PooledConnectionFactory(); PooledConnectionFactory defaultFactory = new PooledConnectionFactory();
assertThat(connectionFactory.isBlockIfSessionPoolIsFull()).isEqualTo( assertThat(connectionFactory.isBlockIfSessionPoolIsFull())
defaultFactory.isBlockIfSessionPoolIsFull()); .isEqualTo(defaultFactory.isBlockIfSessionPoolIsFull());
assertThat(connectionFactory.getBlockIfSessionPoolIsFullTimeout()).isEqualTo( assertThat(connectionFactory.getBlockIfSessionPoolIsFullTimeout())
.isEqualTo(
defaultFactory.getBlockIfSessionPoolIsFullTimeout()); defaultFactory.getBlockIfSessionPoolIsFullTimeout());
assertThat(connectionFactory.isCreateConnectionOnStartup()).isEqualTo( assertThat(connectionFactory.isCreateConnectionOnStartup())
defaultFactory.isCreateConnectionOnStartup()); .isEqualTo(defaultFactory.isCreateConnectionOnStartup());
assertThat(connectionFactory.getExpiryTimeout()).isEqualTo( assertThat(connectionFactory.getExpiryTimeout())
defaultFactory.getExpiryTimeout()); .isEqualTo(defaultFactory.getExpiryTimeout());
assertThat(connectionFactory.getIdleTimeout()).isEqualTo( assertThat(connectionFactory.getIdleTimeout())
defaultFactory.getIdleTimeout()); .isEqualTo(defaultFactory.getIdleTimeout());
assertThat(connectionFactory.getMaxConnections()).isEqualTo( assertThat(connectionFactory.getMaxConnections())
defaultFactory.getMaxConnections()); .isEqualTo(defaultFactory.getMaxConnections());
assertThat(connectionFactory.getMaximumActiveSessionPerConnection()).isEqualTo( assertThat(connectionFactory.getMaximumActiveSessionPerConnection())
defaultFactory.getMaximumActiveSessionPerConnection()); .isEqualTo(defaultFactory
assertThat(connectionFactory.isReconnectOnException()).isEqualTo( .getMaximumActiveSessionPerConnection());
defaultFactory.isReconnectOnException()); assertThat(connectionFactory.isReconnectOnException())
assertThat(connectionFactory.getTimeBetweenExpirationCheckMillis()).isEqualTo( .isEqualTo(defaultFactory.isReconnectOnException());
assertThat(connectionFactory.getTimeBetweenExpirationCheckMillis())
.isEqualTo(
defaultFactory.getTimeBetweenExpirationCheckMillis()); defaultFactory.getTimeBetweenExpirationCheckMillis());
assertThat(connectionFactory.isUseAnonymousProducers()).isEqualTo( assertThat(connectionFactory.isUseAnonymousProducers())
defaultFactory.isUseAnonymousProducers()); .isEqualTo(defaultFactory.isUseAnonymousProducers());
}); });
} }
...@@ -160,22 +168,29 @@ public class ActiveMQAutoConfigurationTests { ...@@ -160,22 +168,29 @@ public class ActiveMQAutoConfigurationTests {
"spring.activemq.pool.maximumActiveSessionPerConnection=1024", "spring.activemq.pool.maximumActiveSessionPerConnection=1024",
"spring.activemq.pool.reconnectOnException=false", "spring.activemq.pool.reconnectOnException=false",
"spring.activemq.pool.timeBetweenExpirationCheck=2048", "spring.activemq.pool.timeBetweenExpirationCheck=2048",
"spring.activemq.pool.useAnonymousProducers=false").run((loaded) -> { "spring.activemq.pool.useAnonymousProducers=false")
assertThat(loaded.getBeansOfType(PooledConnectionFactory.class)).hasSize(1); .run((loaded) -> {
PooledConnectionFactory connectionFactory = loaded.getBean( assertThat(loaded.getBeansOfType(PooledConnectionFactory.class))
PooledConnectionFactory.class); .hasSize(1);
assertThat(connectionFactory.isBlockIfSessionPoolIsFull()).isEqualTo(false); PooledConnectionFactory connectionFactory = loaded
assertThat(connectionFactory.getBlockIfSessionPoolIsFullTimeout()).isEqualTo(64); .getBean(PooledConnectionFactory.class);
assertThat(connectionFactory.isCreateConnectionOnStartup()).isEqualTo(false); assertThat(connectionFactory.isBlockIfSessionPoolIsFull())
.isEqualTo(false);
assertThat(connectionFactory.getBlockIfSessionPoolIsFullTimeout())
.isEqualTo(64);
assertThat(connectionFactory.isCreateConnectionOnStartup())
.isEqualTo(false);
assertThat(connectionFactory.getExpiryTimeout()).isEqualTo(4096); assertThat(connectionFactory.getExpiryTimeout()).isEqualTo(4096);
assertThat(connectionFactory.getIdleTimeout()).isEqualTo(512); assertThat(connectionFactory.getIdleTimeout()).isEqualTo(512);
assertThat(connectionFactory.getMaxConnections()).isEqualTo(256); assertThat(connectionFactory.getMaxConnections()).isEqualTo(256);
assertThat(connectionFactory.getMaximumActiveSessionPerConnection()) assertThat(connectionFactory.getMaximumActiveSessionPerConnection())
.isEqualTo(1024); .isEqualTo(1024);
assertThat(connectionFactory.isReconnectOnException()).isEqualTo(false); assertThat(connectionFactory.isReconnectOnException())
.isEqualTo(false);
assertThat(connectionFactory.getTimeBetweenExpirationCheckMillis()) assertThat(connectionFactory.getTimeBetweenExpirationCheckMillis())
.isEqualTo(2048); .isEqualTo(2048);
assertThat(connectionFactory.isUseAnonymousProducers()).isEqualTo(false); assertThat(connectionFactory.isUseAnonymousProducers())
.isEqualTo(false);
}); });
} }
......
...@@ -40,37 +40,38 @@ public class ActiveMQPropertiesTests { ...@@ -40,37 +40,38 @@ public class ActiveMQPropertiesTests {
@Test @Test
public void getBrokerUrlIsInMemoryByDefault() { public void getBrokerUrlIsInMemoryByDefault() {
assertThat(createFactory(this.properties).determineBrokerUrl()).isEqualTo( assertThat(createFactory(this.properties).determineBrokerUrl())
DEFAULT_EMBEDDED_BROKER_URL); .isEqualTo(DEFAULT_EMBEDDED_BROKER_URL);
} }
@Test @Test
public void getBrokerUrlUseExplicitBrokerUrl() { public void getBrokerUrlUseExplicitBrokerUrl() {
this.properties.setBrokerUrl("vm://foo-bar"); this.properties.setBrokerUrl("vm://foo-bar");
assertThat(createFactory(this.properties).determineBrokerUrl()).isEqualTo( assertThat(createFactory(this.properties).determineBrokerUrl())
"vm://foo-bar"); .isEqualTo("vm://foo-bar");
} }
@Test @Test
public void getBrokerUrlWithInMemorySetToFalse() { public void getBrokerUrlWithInMemorySetToFalse() {
this.properties.setInMemory(false); this.properties.setInMemory(false);
assertThat(createFactory(this.properties).determineBrokerUrl()).isEqualTo( assertThat(createFactory(this.properties).determineBrokerUrl())
DEFAULT_NETWORK_BROKER_URL); .isEqualTo(DEFAULT_NETWORK_BROKER_URL);
} }
@Test @Test
public void getExplicitBrokerUrlAlwaysWins() { public void getExplicitBrokerUrlAlwaysWins() {
this.properties.setBrokerUrl("vm://foo-bar"); this.properties.setBrokerUrl("vm://foo-bar");
this.properties.setInMemory(false); this.properties.setInMemory(false);
assertThat(createFactory(this.properties).determineBrokerUrl()).isEqualTo( assertThat(createFactory(this.properties).determineBrokerUrl())
"vm://foo-bar"); .isEqualTo("vm://foo-bar");
} }
@Test @Test
public void setTrustAllPackages() { public void setTrustAllPackages() {
this.properties.getPackages().setTrustAll(true); this.properties.getPackages().setTrustAll(true);
assertThat(createFactory(this.properties).createConnectionFactory( assertThat(createFactory(this.properties)
ActiveMQConnectionFactory.class).isTrustAllPackages()).isEqualTo(true); .createConnectionFactory(ActiveMQConnectionFactory.class)
.isTrustAllPackages()).isEqualTo(true);
} }
@Test @Test
...@@ -84,7 +85,8 @@ public class ActiveMQPropertiesTests { ...@@ -84,7 +85,8 @@ public class ActiveMQPropertiesTests {
assertThat(factory.getTrustedPackages().get(0)).isEqualTo("trusted.package"); assertThat(factory.getTrustedPackages().get(0)).isEqualTo("trusted.package");
} }
private ActiveMQConnectionFactoryFactory createFactory(ActiveMQProperties properties) { private ActiveMQConnectionFactoryFactory createFactory(
ActiveMQProperties properties) {
return new ActiveMQConnectionFactoryFactory(properties, return new ActiveMQConnectionFactoryFactory(properties,
Collections.<ActiveMQConnectionFactoryCustomizer>emptyList()); Collections.<ActiveMQConnectionFactoryCustomizer>emptyList());
} }
......
...@@ -24,6 +24,7 @@ import org.junit.runner.notification.RunNotifier; ...@@ -24,6 +24,7 @@ import org.junit.runner.notification.RunNotifier;
import org.junit.runners.model.InitializationError; import org.junit.runners.model.InitializationError;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigurationPackage;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
...@@ -94,8 +95,8 @@ public class ImportsContextCustomizerFactoryWithAutoConfigurationTests { ...@@ -94,8 +95,8 @@ public class ImportsContextCustomizerFactoryWithAutoConfigurationTests {
} }
@ContextConfiguration(classes = EmptyConfig.class)
@DataJpaTest @DataJpaTest
@ContextConfiguration(classes = EmptyConfig.class)
@Unrelated2 @Unrelated2
public static class DataJpaTest2 { public static class DataJpaTest2 {
...@@ -109,8 +110,8 @@ public class ImportsContextCustomizerFactoryWithAutoConfigurationTests { ...@@ -109,8 +110,8 @@ public class ImportsContextCustomizerFactoryWithAutoConfigurationTests {
} }
@ContextConfiguration(classes = EmptyConfig.class)
@DataJpaTest @DataJpaTest
@ContextConfiguration(classes = EmptyConfig.class)
@Unrelated1 @Unrelated1
public static class DataJpaTest3 { public static class DataJpaTest3 {
...@@ -124,8 +125,8 @@ public class ImportsContextCustomizerFactoryWithAutoConfigurationTests { ...@@ -124,8 +125,8 @@ public class ImportsContextCustomizerFactoryWithAutoConfigurationTests {
} }
@ContextConfiguration(classes = EmptyConfig.class)
@DataJpaTest(showSql = false) @DataJpaTest(showSql = false)
@ContextConfiguration(classes = EmptyConfig.class)
@Unrelated1 @Unrelated1
public static class DataJpaTest4 { public static class DataJpaTest4 {
...@@ -151,6 +152,7 @@ public class ImportsContextCustomizerFactoryWithAutoConfigurationTests { ...@@ -151,6 +152,7 @@ public class ImportsContextCustomizerFactoryWithAutoConfigurationTests {
@Configuration @Configuration
@EntityScan(basePackageClasses = ExampleEntity.class) @EntityScan(basePackageClasses = ExampleEntity.class)
@AutoConfigurationPackage
static class EmptyConfig { static class EmptyConfig {
} }
......
...@@ -71,8 +71,6 @@ public class Handler extends URLStreamHandler { ...@@ -71,8 +71,6 @@ public class Handler extends URLStreamHandler {
rootFileCache = new SoftReference<>(null); rootFileCache = new SoftReference<>(null);
} }
private final Logger logger = Logger.getLogger(getClass().getName());
private final JarFile jarFile; private final JarFile jarFile;
private URLStreamHandler fallbackHandler; private URLStreamHandler fallbackHandler;
...@@ -105,10 +103,10 @@ public class Handler extends URLStreamHandler { ...@@ -105,10 +103,10 @@ public class Handler extends URLStreamHandler {
} }
catch (Exception ex) { catch (Exception ex) {
if (reason instanceof IOException) { if (reason instanceof IOException) {
this.logger.log(Level.FINEST, "Unable to open fallback handler", ex); log(false, "Unable to open fallback handler", ex);
throw (IOException) reason; throw (IOException) reason;
} }
this.logger.log(Level.WARNING, "Unable to open fallback handler", ex); log(true, "Unable to open fallback handler", ex);
if (reason instanceof RuntimeException) { if (reason instanceof RuntimeException) {
throw (RuntimeException) reason; throw (RuntimeException) reason;
} }
...@@ -116,6 +114,18 @@ public class Handler extends URLStreamHandler { ...@@ -116,6 +114,18 @@ public class Handler extends URLStreamHandler {
} }
} }
private void log(boolean warning, String message, Exception cause) {
try {
Logger.getLogger(getClass().getName())
.log((warning ? Level.WARNING : Level.FINEST), message, cause);
}
catch (Exception ex) {
if (warning) {
System.err.println("WARNING: " + message);
}
}
}
private URLStreamHandler getFallbackHandler() { private URLStreamHandler getFallbackHandler() {
if (this.fallbackHandler != null) { if (this.fallbackHandler != null) {
return this.fallbackHandler; return this.fallbackHandler;
......
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