diff --git a/spring-boot-deployment-tests/pom.xml b/spring-boot-deployment-tests/pom.xml
index c673493ccc..f1af1b523f 100644
--- a/spring-boot-deployment-tests/pom.xml
+++ b/spring-boot-deployment-tests/pom.xml
@@ -19,7 +19,6 @@
${basedir}/..
1.7
-
300000
${user.home}/.cargo/installs
@@ -28,7 +27,6 @@
spring-boot-deployment-test-tomcat
spring-boot-deployment-test-wildfly
-
@@ -74,5 +72,4 @@
-
diff --git a/spring-boot-samples/spring-boot-sample-simple/src/main/java/sample/simple/SampleSimpleApplication.java b/spring-boot-samples/spring-boot-sample-simple/src/main/java/sample/simple/SampleSimpleApplication.java
index 71e9ebf196..695d260189 100644
--- a/spring-boot-samples/spring-boot-sample-simple/src/main/java/sample/simple/SampleSimpleApplication.java
+++ b/spring-boot-samples/spring-boot-sample-simple/src/main/java/sample/simple/SampleSimpleApplication.java
@@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import sample.simple.service.HelloWorldService;
@@ -39,6 +40,9 @@ public class SampleSimpleApplication implements CommandLineRunner {
}
public static void main(String[] args) throws Exception {
+ SpringApplication application = new SpringApplication(
+ SampleSimpleApplication.class);
+ application.setApplicationContextClass(AnnotationConfigApplicationContext.class);
SpringApplication.run(SampleSimpleApplication.class, args);
}
diff --git a/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java b/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java
index 8efc0c1021..5725d7c4af 100644
--- a/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java
+++ b/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java
@@ -226,12 +226,21 @@ public class SpringApplication {
if (sources != null && sources.length > 0) {
this.sources.addAll(Arrays.asList(sources));
}
- this.webEnvironment = isSpringWebAvailable();
+ this.webEnvironment = deduceWebEnvironment();
setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));
setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));
this.mainApplicationClass = deduceMainApplicationClass();
}
+ private boolean deduceWebEnvironment() {
+ for (String className : WEB_ENVIRONMENT_CLASSES) {
+ if (!ClassUtils.isPresent(className, null)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
private Class> deduceMainApplicationClass() {
try {
StackTraceElement[] stackTrace = new RuntimeException().getStackTrace();
@@ -877,12 +886,20 @@ public class SpringApplication {
public void setApplicationContextClass(
Class extends ConfigurableApplicationContext> applicationContextClass) {
this.applicationContextClass = applicationContextClass;
- if (!isSpringWebAvailable()
- || !WebApplicationContext.class.isAssignableFrom(applicationContextClass)) {
+ if (!isWebApplicationContext(applicationContextClass)) {
this.webEnvironment = false;
}
}
+ private boolean isWebApplicationContext(Class> applicationContextClass) {
+ try {
+ return WebApplicationContext.class.isAssignableFrom(applicationContextClass);
+ }
+ catch (NoClassDefFoundError ex) {
+ return false;
+ }
+ }
+
/**
* Sets the {@link ApplicationContextInitializer} that will be applied to the Spring
* {@link ApplicationContext}.
@@ -941,15 +958,6 @@ public class SpringApplication {
return asUnmodifiableOrderedSet(this.listeners);
}
- private boolean isSpringWebAvailable() {
- for (String className : WEB_ENVIRONMENT_CLASSES) {
- if (!ClassUtils.isPresent(className, null)) {
- return false;
- }
- }
- return true;
- }
-
/**
* Static helper that can be used to run a {@link SpringApplication} from the
* specified source using default settings.
diff --git a/spring-boot/src/main/java/org/springframework/boot/test/SpringApplicationContextLoader.java b/spring-boot/src/main/java/org/springframework/boot/test/SpringApplicationContextLoader.java
index d0e3f9e608..e5cd39e0cc 100644
--- a/spring-boot/src/main/java/org/springframework/boot/test/SpringApplicationContextLoader.java
+++ b/spring-boot/src/main/java/org/springframework/boot/test/SpringApplicationContextLoader.java
@@ -81,6 +81,7 @@ public class SpringApplicationContextLoader extends AbstractContextLoader {
throws Exception {
assertValidAnnotations(config.getTestClass());
SpringApplication application = getSpringApplication();
+ application.setRegisterShutdownHook(false);
application.setMainApplicationClass(config.getTestClass());
application.setSources(getSources(config));
ConfigurableEnvironment environment = new StandardEnvironment();