Merge branch '2.0.x'
This commit is contained in:
commit
a96856c99a
|
@ -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.
|
||||
|
@ -62,8 +62,6 @@ class OnWebApplicationCondition extends SpringBootCondition {
|
|||
|
||||
private ConditionOutcome isWebApplication(ConditionContext context,
|
||||
AnnotatedTypeMetadata metadata, boolean required) {
|
||||
ConditionMessage.Builder message = ConditionMessage.forCondition(
|
||||
ConditionalOnWebApplication.class, required ? "(required)" : "");
|
||||
Type type = deduceType(metadata);
|
||||
if (Type.SERVLET == type) {
|
||||
return isServletWebApplication(context);
|
||||
|
@ -72,25 +70,32 @@ class OnWebApplicationCondition extends SpringBootCondition {
|
|||
return isReactiveWebApplication(context);
|
||||
}
|
||||
else {
|
||||
ConditionOutcome servletOutcome = isServletWebApplication(context);
|
||||
if (servletOutcome.isMatch() && required) {
|
||||
return new ConditionOutcome(servletOutcome.isMatch(),
|
||||
message.because(servletOutcome.getMessage()));
|
||||
}
|
||||
ConditionOutcome reactiveOutcome = isReactiveWebApplication(context);
|
||||
if (reactiveOutcome.isMatch() && required) {
|
||||
return new ConditionOutcome(reactiveOutcome.isMatch(),
|
||||
message.because(reactiveOutcome.getMessage()));
|
||||
}
|
||||
boolean finalOutcome = (required
|
||||
? servletOutcome.isMatch() && reactiveOutcome.isMatch()
|
||||
: servletOutcome.isMatch() || reactiveOutcome.isMatch());
|
||||
return new ConditionOutcome(finalOutcome,
|
||||
message.because(servletOutcome.getMessage()).append("and")
|
||||
.append(reactiveOutcome.getMessage()));
|
||||
return isAnyWebApplication(context, required);
|
||||
}
|
||||
}
|
||||
|
||||
private ConditionOutcome isAnyWebApplication(ConditionContext context,
|
||||
boolean required) {
|
||||
ConditionMessage.Builder message = ConditionMessage.forCondition(
|
||||
ConditionalOnWebApplication.class, required ? "(required)" : "");
|
||||
ConditionOutcome servletOutcome = isServletWebApplication(context);
|
||||
if (servletOutcome.isMatch() && required) {
|
||||
return new ConditionOutcome(servletOutcome.isMatch(),
|
||||
message.because(servletOutcome.getMessage()));
|
||||
}
|
||||
ConditionOutcome reactiveOutcome = isReactiveWebApplication(context);
|
||||
if (reactiveOutcome.isMatch() && required) {
|
||||
return new ConditionOutcome(reactiveOutcome.isMatch(),
|
||||
message.because(reactiveOutcome.getMessage()));
|
||||
}
|
||||
boolean finalOutcome = (required
|
||||
? servletOutcome.isMatch() && reactiveOutcome.isMatch()
|
||||
: servletOutcome.isMatch() || reactiveOutcome.isMatch());
|
||||
return new ConditionOutcome(finalOutcome,
|
||||
message.because(servletOutcome.getMessage()).append("and")
|
||||
.append(reactiveOutcome.getMessage()));
|
||||
}
|
||||
|
||||
private ConditionOutcome isServletWebApplication(ConditionContext context) {
|
||||
ConditionMessage.Builder message = ConditionMessage.forCondition("");
|
||||
if (!ClassUtils.isPresent(WEB_CONTEXT_CLASS, context.getClassLoader())) {
|
||||
|
|
Loading…
Reference in New Issue