You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2020/06/23 16:32:09 UTC
[cxf] branch 3.2.x-fixes updated: [CXF-8306]be able to configure
http-undertow worker|threadpool name
This is an automated email from the ASF dual-hosted git repository.
ffang pushed a commit to branch 3.2.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/3.2.x-fixes by this push:
new 87d083e [CXF-8306]be able to configure http-undertow worker|threadpool name
87d083e is described below
commit 87d083e7b4534f6c56bfae67a4e2806d346a2804
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Tue Jun 23 12:16:25 2020 -0400
[CXF-8306]be able to configure http-undertow worker|threadpool name
(cherry picked from commit b87a6ab32f0975bcae554bc2215efdca69aa0213)
(cherry picked from commit febdf30718c988e4e43425a15c4e99e3d927487e)
---
.../cxf/transport/http_undertow/ThreadingParameters.java | 15 +++++++++++++++
.../transport/http_undertow/UndertowHTTPServerEngine.java | 5 +++++
.../blueprint/UndertowHTTPServerEngineFactoryHolder.java | 3 +++
.../osgi/HTTPUndertowTransportActivator.java | 2 ++
.../UndertowHTTPServerEngineBeanDefinitionParser.java | 3 +++
.../http_undertow/spring/UndertowSpringTypesFactory.java | 1 +
.../resources/schemas/configuration/http-undertow.xsd | 5 +++++
7 files changed, 34 insertions(+)
diff --git a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/ThreadingParameters.java b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/ThreadingParameters.java
index 995c845..8f41878 100644
--- a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/ThreadingParameters.java
+++ b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/ThreadingParameters.java
@@ -19,6 +19,8 @@
package org.apache.cxf.transport.http_undertow;
+import org.apache.cxf.common.util.StringUtils;
+
public class ThreadingParameters {
/**
* Specify the number of I/O threads to create for the worker. If not specified, a default will be chosen.
@@ -39,6 +41,7 @@ public class ThreadingParameters {
private boolean workerIOThreadsSet;
private boolean minThreadsSet;
private boolean maxThreadsSet;
+ private String workerIOName;
public void setWorkerIOThreads(int number) {
workerIOThreadsSet = true;
@@ -54,6 +57,10 @@ public class ThreadingParameters {
maxThreadsSet = true;
maxThreads = number;
}
+
+ public void setWorkerIOName(String workerIOName) {
+ this.workerIOName = workerIOName;
+ }
public int getWorkerIOThreads() {
return workerIOThreads;
@@ -66,6 +73,10 @@ public class ThreadingParameters {
public int getMaxThreads() {
return maxThreads;
}
+
+ public String getWorkerIOName() {
+ return workerIOName;
+ }
public boolean isWorkerIOThreadsSet() {
return workerIOThreadsSet;
@@ -80,5 +91,9 @@ public class ThreadingParameters {
public boolean isMaxThreadsSet() {
return maxThreadsSet;
}
+
+ public boolean isWorkerIONameSet() {
+ return !StringUtils.isEmpty(this.workerIOName);
+ }
}
diff --git a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/UndertowHTTPServerEngine.java b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/UndertowHTTPServerEngine.java
index 243ac72..f5dd39b 100644
--- a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/UndertowHTTPServerEngine.java
+++ b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/UndertowHTTPServerEngine.java
@@ -241,7 +241,12 @@ public class UndertowHTTPServerEngine implements ServerEngine {
builder = builder.setWorkerOption(Options.WORKER_TASK_MAX_THREADS,
this.threadingParameters.getMaxThreads());
}
+ if (this.threadingParameters.isWorkerIONameSet()) {
+ builder = builder.setWorkerOption(Options.WORKER_NAME,
+ this.threadingParameters.getWorkerIOName());
+ }
}
+
return builder;
}
diff --git a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/blueprint/UndertowHTTPServerEngineFactoryHolder.java b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/blueprint/UndertowHTTPServerEngineFactoryHolder.java
index 9d7c916..5a4057f 100644
--- a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/blueprint/UndertowHTTPServerEngineFactoryHolder.java
+++ b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/blueprint/UndertowHTTPServerEngineFactoryHolder.java
@@ -91,6 +91,9 @@ public class UndertowHTTPServerEngineFactoryHolder {
if (threads.getThreadingParameters().getMinThreads() != null) {
rThreads.setMinThreads(threads.getThreadingParameters().getMinThreads());
}
+ if (threads.getThreadingParameters().getWorkerIOName() != null) {
+ rThreads.setWorkerIOName(threads.getThreadingParameters().getWorkerIOName());
+ }
rThreads.setWorkerIOThreads(threads.getThreadingParameters().getWorkerIOThreads());
threadingParametersMap.put(id, rThreads);
}
diff --git a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/osgi/HTTPUndertowTransportActivator.java b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/osgi/HTTPUndertowTransportActivator.java
index 2a54ce2..a988f83 100644
--- a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/osgi/HTTPUndertowTransportActivator.java
+++ b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/osgi/HTTPUndertowTransportActivator.java
@@ -163,6 +163,8 @@ public class HTTPUndertowTransportActivator
p.setMaxThreads(Integer.parseInt(v));
} else if ("workerIOThreads".equals(k)) {
p.setWorkerIOThreads(Integer.parseInt(v));
+ } else if ("workerIOName".equals(k)) {
+ p.setWorkerIOName(v);
}
}
}
diff --git a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/spring/UndertowHTTPServerEngineBeanDefinitionParser.java b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/spring/UndertowHTTPServerEngineBeanDefinitionParser.java
index 1efd18f..f1440dd 100644
--- a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/spring/UndertowHTTPServerEngineBeanDefinitionParser.java
+++ b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/spring/UndertowHTTPServerEngineBeanDefinitionParser.java
@@ -224,6 +224,9 @@ public class UndertowHTTPServerEngineBeanDefinitionParser extends AbstractBeanDe
if (paramtype.getWorkerIOThreads() != null) {
params.setWorkerIOThreads(paramtype.getWorkerIOThreads());
}
+ if (paramtype.getWorkerIOName() != null) {
+ params.setWorkerIOName(paramtype.getWorkerIOName());
+ }
return params;
}
diff --git a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/spring/UndertowSpringTypesFactory.java b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/spring/UndertowSpringTypesFactory.java
index 3a7e1ff..c8ac1c7 100644
--- a/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/spring/UndertowSpringTypesFactory.java
+++ b/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/spring/UndertowSpringTypesFactory.java
@@ -62,6 +62,7 @@ public final class UndertowSpringTypesFactory {
ThreadingParameters params = new ThreadingParameters();
params.setMaxThreads(paramtype.getMaxThreads());
params.setMinThreads(paramtype.getMinThreads());
+ params.setWorkerIOName(paramtype.getWorkerIOName());
params.setWorkerIOThreads(paramtype.getWorkerIOThreads());
return params;
}
diff --git a/rt/transports/http-undertow/src/main/resources/schemas/configuration/http-undertow.xsd b/rt/transports/http-undertow/src/main/resources/schemas/configuration/http-undertow.xsd
index d6b677f..9625750 100644
--- a/rt/transports/http-undertow/src/main/resources/schemas/configuration/http-undertow.xsd
+++ b/rt/transports/http-undertow/src/main/resources/schemas/configuration/http-undertow.xsd
@@ -57,6 +57,11 @@
<xs:documentation>Specify the number of I/O threads to create for the worker. If not specified, a default will be chosen. One IO thread per CPU core is a reasonable default.</xs:documentation>
</xs:annotation>
</xs:attribute>
+ <xs:attribute name="workerIOName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>Specify the name for the worker. If not specified, the default "XNIO-1" will be chosen.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
</xs:complexType>
<xs:complexType name="ThreadingParametersIdentifiedType">