Polishing
This commit is contained in:
parent
c803ad7998
commit
90a4740279
|
@ -692,7 +692,7 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void ternaryWithBooleanReturn() { // SPR-12271
|
||||
public void ternaryWithBooleanReturn_SPR12271() {
|
||||
expression = parser.parseExpression("T(Boolean).TRUE?'abc':'def'");
|
||||
assertEquals("abc", expression.getValue());
|
||||
assertCanCompile(expression);
|
||||
|
@ -4199,7 +4199,7 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void propertyReferenceVisibility() { // SPR-12771
|
||||
public void propertyReferenceVisibility_SPR12771() {
|
||||
StandardEvaluationContext ctx = new StandardEvaluationContext();
|
||||
ctx.setVariable("httpServletRequest", HttpServlet3RequestFactory.getOne());
|
||||
// Without a fix compilation was inserting a checkcast to a private type
|
||||
|
@ -4898,7 +4898,6 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
|
|||
assertIsCompiled(exp);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void elvisOperator_SPR17214() throws Exception {
|
||||
SpelParserConfiguration spc = new SpelParserConfiguration(SpelCompilerMode.IMMEDIATE, null);
|
||||
|
@ -4947,22 +4946,6 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
|
|||
assertNull(expression.getValue(rh));
|
||||
}
|
||||
|
||||
public static class RecordHolder {
|
||||
public void add(String key, Long value) {
|
||||
record.put(key, value);
|
||||
}
|
||||
public long get(String key) {
|
||||
return record.get(key);
|
||||
}
|
||||
public Map<String,Long> record = new HashMap<>();
|
||||
public LongHolder expression = new LongHolder();
|
||||
|
||||
}
|
||||
|
||||
public static class LongHolder {
|
||||
public Long someLong = 3L;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ternaryOperator_SPR15192() {
|
||||
SpelParserConfiguration configuration = new SpelParserConfiguration(SpelCompilerMode.IMMEDIATE, null);
|
||||
|
@ -6125,4 +6108,26 @@ public class SpelCompilationCoverageTests extends AbstractExpressionTests {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public static class RecordHolder {
|
||||
|
||||
public Map<String,Long> record = new HashMap<>();
|
||||
|
||||
public LongHolder expression = new LongHolder();
|
||||
|
||||
public void add(String key, Long value) {
|
||||
record.put(key, value);
|
||||
}
|
||||
|
||||
public long get(String key) {
|
||||
return record.get(key);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class LongHolder {
|
||||
|
||||
public Long someLong = 3L;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.http.client.reactive;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
@ -45,19 +46,16 @@ public class ReactorResourceFactory implements InitializingBean, DisposableBean
|
|||
@Nullable
|
||||
private Consumer<HttpResources> globalResourcesConsumer;
|
||||
|
||||
|
||||
private Supplier<ConnectionProvider> connectionProviderSupplier = () -> ConnectionProvider.elastic("webflux");
|
||||
|
||||
private Supplier<LoopResources> loopResourcesSupplier = () -> LoopResources.create("webflux-http");
|
||||
|
||||
|
||||
@Nullable
|
||||
private ConnectionProvider connectionProvider;
|
||||
|
||||
@Nullable
|
||||
private LoopResources loopResources;
|
||||
|
||||
|
||||
private boolean manageConnectionProvider = false;
|
||||
|
||||
private boolean manageLoopResources = false;
|
||||
|
@ -76,6 +74,14 @@ public class ReactorResourceFactory implements InitializingBean, DisposableBean
|
|||
this.useGlobalResources = useGlobalResources;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether this factory exposes the global
|
||||
* {@link reactor.netty.http.HttpResources HttpResources} holder.
|
||||
*/
|
||||
public boolean isUseGlobalResources() {
|
||||
return this.useGlobalResources;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a Consumer for configuring the global Reactor Netty resources on
|
||||
* startup. When this option is used, {@link #setUseGlobalResources} is also
|
||||
|
@ -97,7 +103,7 @@ public class ReactorResourceFactory implements InitializingBean, DisposableBean
|
|||
* {@link #setConnectionProvider(ConnectionProvider)} is set.
|
||||
* @param supplier the supplier to use
|
||||
*/
|
||||
public void setConnectionProviderSupplier(@Nullable Supplier<ConnectionProvider> supplier) {
|
||||
public void setConnectionProviderSupplier(Supplier<ConnectionProvider> supplier) {
|
||||
this.connectionProviderSupplier = supplier;
|
||||
}
|
||||
|
||||
|
@ -109,7 +115,7 @@ public class ReactorResourceFactory implements InitializingBean, DisposableBean
|
|||
* {@link #setLoopResources(LoopResources)} is set.
|
||||
* @param supplier the supplier to use
|
||||
*/
|
||||
public void setLoopResourcesSupplier(@Nullable Supplier<LoopResources> supplier) {
|
||||
public void setLoopResourcesSupplier(Supplier<LoopResources> supplier) {
|
||||
this.loopResourcesSupplier = supplier;
|
||||
}
|
||||
|
||||
|
@ -118,50 +124,41 @@ public class ReactorResourceFactory implements InitializingBean, DisposableBean
|
|||
* {@link ConnectionProvider} instance.
|
||||
* @param connectionProvider the connection provider to use as is
|
||||
*/
|
||||
public void setConnectionProvider(@Nullable ConnectionProvider connectionProvider) {
|
||||
public void setConnectionProvider(ConnectionProvider connectionProvider) {
|
||||
this.connectionProvider = connectionProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the configured {@link ConnectionProvider}.
|
||||
*/
|
||||
public ConnectionProvider getConnectionProvider() {
|
||||
Assert.state(this.connectionProvider != null, "ConnectionProvider not initialized yet");
|
||||
return this.connectionProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* Use this option when you want to provide an externally managed
|
||||
* {@link LoopResources} instance.
|
||||
* @param loopResources the loop resources to use as is
|
||||
*/
|
||||
public void setLoopResources(@Nullable LoopResources loopResources) {
|
||||
public void setLoopResources(LoopResources loopResources) {
|
||||
this.loopResources = loopResources;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Whether this factory exposes the global
|
||||
* {@link reactor.netty.http.HttpResources HttpResources} holder.
|
||||
*/
|
||||
public boolean isUseGlobalResources() {
|
||||
return this.useGlobalResources;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the configured {@link ConnectionProvider}.
|
||||
*/
|
||||
public ConnectionProvider getConnectionProvider() {
|
||||
Assert.notNull(this.connectionProvider, "ConnectionProvider not initialized yet via InitializingBean.");
|
||||
return this.connectionProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the configured {@link LoopResources}.
|
||||
*/
|
||||
public LoopResources getLoopResources() {
|
||||
Assert.notNull(this.loopResources, "LoopResources not initialized yet via InitializingBean.");
|
||||
Assert.state(this.loopResources != null, "LoopResources not initialized yet");
|
||||
return this.loopResources;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
public void afterPropertiesSet() {
|
||||
if (this.useGlobalResources) {
|
||||
Assert.isTrue(this.loopResources == null && this.connectionProvider == null,
|
||||
"'useGlobalResources' is mutually exclusive with explicitly configured resources.");
|
||||
"'useGlobalResources' is mutually exclusive with explicitly configured resources");
|
||||
HttpResources httpResources = HttpResources.get();
|
||||
if (this.globalResourcesConsumer != null) {
|
||||
this.globalResourcesConsumer.accept(httpResources);
|
||||
|
|
|
@ -156,7 +156,7 @@ public class ServletHttpHandlerAdapter implements Servlet {
|
|||
|
||||
@Override
|
||||
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
|
||||
|
||||
// Check for existing error attribute first
|
||||
if (DispatcherType.ASYNC.equals(request.getDispatcherType())) {
|
||||
Throwable ex = (Throwable) request.getAttribute(WRITE_ERROR_ATTRIBUTE_NAME);
|
||||
throw new ServletException("Failed to create response content", ex);
|
||||
|
@ -179,9 +179,7 @@ public class ServletHttpHandlerAdapter implements Servlet {
|
|||
return;
|
||||
}
|
||||
|
||||
ServerHttpResponse httpResponse =
|
||||
createResponse(((HttpServletResponse) response), asyncContext, httpRequest);
|
||||
|
||||
ServerHttpResponse httpResponse = createResponse(((HttpServletResponse) response), asyncContext, httpRequest);
|
||||
if (httpRequest.getMethod() == HttpMethod.HEAD) {
|
||||
httpResponse = new HttpHeadResponseDecorator(httpResponse);
|
||||
}
|
||||
|
@ -247,7 +245,6 @@ public class ServletHttpHandlerAdapter implements Servlet {
|
|||
|
||||
private final String logPrefix;
|
||||
|
||||
|
||||
public HandlerResultAsyncListener(AtomicBoolean isCompleted, ServletServerHttpRequest httpRequest) {
|
||||
this.isCompleted = isCompleted;
|
||||
this.logPrefix = httpRequest.getLogPrefix();
|
||||
|
@ -288,7 +285,6 @@ public class ServletHttpHandlerAdapter implements Servlet {
|
|||
|
||||
private final String logPrefix;
|
||||
|
||||
|
||||
public HandlerResultSubscriber(
|
||||
AsyncContext asyncContext, AtomicBoolean isCompleted, ServletServerHttpRequest httpRequest) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue