Polishing
This commit is contained in:
@@ -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) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user