Remove Jetty dependencies from JdkHttpClientResourceFactory

This commit removes the Eclipse Jetty dependencies from
JdkHttpClientResourceFactory, replacing them with a check for
ExecutorService.

Closes gh-28588
This commit is contained in:
Arjen Poutsma 2022-06-14 10:59:02 +02:00
parent 7e8b1ed401
commit 1881e48bb4
1 changed files with 6 additions and 16 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2021 the original author or authors. * Copyright 2002-2022 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -18,12 +18,10 @@ package org.springframework.http.client.reactive;
import java.net.http.HttpClient; import java.net.http.HttpClient;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadFactory;
import org.eclipse.jetty.util.component.LifeCycle;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
@ -70,10 +68,10 @@ public class JdkHttpClientResourceFactory implements InitializingBean, Disposabl
} }
/** /**
* Configure the thread prefix to initialize {@link QueuedThreadPool} executor with. This * Configure the thread prefix to initialize the executor with. This
* is used only when a {@link Executor} instance isn't * is used only when a {@link Executor} instance isn't
* {@link #setExecutor(Executor) provided}. * {@link #setExecutor(Executor) provided}.
* <p>By default set to "jetty-http". * <p>By default set to "jdk-http".
* @param threadPrefix the thread prefix to use * @param threadPrefix the thread prefix to use
*/ */
public void setThreadPrefix(String threadPrefix) { public void setThreadPrefix(String threadPrefix) {
@ -88,20 +86,12 @@ public class JdkHttpClientResourceFactory implements InitializingBean, Disposabl
String name = this.threadPrefix + "@" + Integer.toHexString(hashCode()); String name = this.threadPrefix + "@" + Integer.toHexString(hashCode());
this.executor = Executors.newCachedThreadPool(new CustomizableThreadFactory(name)); this.executor = Executors.newCachedThreadPool(new CustomizableThreadFactory(name));
} }
if (this.executor instanceof LifeCycle) {
((LifeCycle)this.executor).start();
}
} }
@Override @Override
public void destroy() throws Exception { public void destroy() throws Exception {
try { if (this.executor instanceof ExecutorService executorService) {
if (this.executor instanceof LifeCycle) { executorService.shutdown();
((LifeCycle)this.executor).stop();
}
}
catch (Throwable ex) {
// ignore
} }
} }