use of org.apache.cxf.transport.http_undertow.ThreadingParameters in project cxf by apache.
the class HTTPUndertowTransportActivator method createThreadingParameters.
private ThreadingParameters createThreadingParameters(Dictionary<String, ?> d) {
Enumeration<String> keys = d.keys();
ThreadingParameters p = null;
while (keys.hasMoreElements()) {
String k = keys.nextElement();
if (k.startsWith("threadingParameters.")) {
if (p == null) {
p = new ThreadingParameters();
}
String v = (String) d.get(k);
k = k.substring("threadingParameters.".length());
if ("minThreads".equals(k)) {
p.setMinThreads(Integer.parseInt(v));
} else if ("maxThreads".equals(k)) {
p.setMaxThreads(Integer.parseInt(v));
} else if ("workerIOThreads".equals(k)) {
p.setWorkerIOThreads(Integer.parseInt(v));
}
}
}
return p;
}
use of org.apache.cxf.transport.http_undertow.ThreadingParameters in project cxf by apache.
the class UndertowSpringTypesFactory method toThreadingParameters.
private static ThreadingParameters toThreadingParameters(ThreadingParametersType paramtype) {
ThreadingParameters params = new ThreadingParameters();
params.setMaxThreads(paramtype.getMaxThreads());
params.setMinThreads(paramtype.getMinThreads());
params.setWorkerIOThreads(paramtype.getWorkerIOThreads());
return params;
}
use of org.apache.cxf.transport.http_undertow.ThreadingParameters in project cxf by apache.
the class UndertowHTTPServerEngineFactoryHolder method init.
public void init() {
try {
Element element = StaxUtils.read(new StringReader(parsedElement)).getDocumentElement();
UndertowHTTPServerEngineFactoryConfigType config = getJaxbObject(element, UndertowHTTPServerEngineFactoryConfigType.class);
factory = new UndertowHTTPServerEngineFactory();
Map<String, ThreadingParameters> threadingParametersMap = new TreeMap<String, ThreadingParameters>();
if (config.getIdentifiedThreadingParameters() != null) {
for (ThreadingParametersIdentifiedType threads : config.getIdentifiedThreadingParameters()) {
ThreadingParameters rThreads = new ThreadingParameters();
String id = threads.getId();
rThreads.setMaxThreads(threads.getThreadingParameters().getMaxThreads());
rThreads.setMinThreads(threads.getThreadingParameters().getMinThreads());
rThreads.setWorkerIOThreads(threads.getThreadingParameters().getWorkerIOThreads());
threadingParametersMap.put(id, rThreads);
}
factory.setThreadingParametersMap(threadingParametersMap);
}
// SSL
Map<String, TLSServerParameters> sslMap = new TreeMap<String, TLSServerParameters>();
if (config.getIdentifiedTLSServerParameters() != null) {
for (TLSServerParametersIdentifiedType t : config.getIdentifiedTLSServerParameters()) {
try {
TLSServerParameters parameter = new TLSServerParametersConfig(t.getTlsServerParameters());
sslMap.put(t.getId(), parameter);
} catch (Exception e) {
throw new RuntimeException("Could not configure TLS for id " + t.getId(), e);
}
}
factory.setTlsServerParametersMap(sslMap);
}
// Engines
List<UndertowHTTPServerEngine> engineList = new ArrayList<>();
for (UndertowHTTPServerEngineConfigType engine : config.getEngine()) {
UndertowHTTPServerEngine eng = new UndertowHTTPServerEngine();
if (engine.getHandlers() != null && handlersMap != null) {
List<CXFUndertowHttpHandler> handlers = handlersMap.get(engine.getPort().toString());
if (handlers != null) {
eng.setHandlers(handlers);
} else {
throw new RuntimeException("Could not find the handlers instance for engine with port" + engine.getPort().toString());
}
}
if (engine.isContinuationsEnabled() != null) {
eng.setContinuationsEnabled(engine.isContinuationsEnabled());
}
if (engine.getHost() != null && !StringUtils.isEmpty(engine.getHost())) {
eng.setHost(engine.getHost());
}
if (engine.getMaxIdleTime() != null) {
eng.setMaxIdleTime(engine.getMaxIdleTime());
}
if (engine.getPort() != null) {
eng.setPort(engine.getPort());
}
if (engine.getThreadingParameters() != null) {
ThreadingParametersType threads = engine.getThreadingParameters();
ThreadingParameters rThreads = new ThreadingParameters();
rThreads.setMaxThreads(threads.getMaxThreads());
rThreads.setMinThreads(threads.getMinThreads());
rThreads.setWorkerIOThreads(threads.getWorkerIOThreads());
eng.setThreadingParameters(rThreads);
}
if (engine.getTlsServerParameters() != null) {
TLSServerParameters parameter = null;
try {
parameter = new TLSServerParametersConfig(engine.getTlsServerParameters());
eng.setTlsServerParameters(parameter);
} catch (Exception e) {
throw new RuntimeException("Could not configure TLS for engine on " + eng.getHost() + ":" + eng.getPort(), e);
}
}
eng.finalizeConfig();
engineList.add(eng);
}
factory.setEnginesList(engineList);
// Unravel this completely.
factory.initComplete();
} catch (Exception e) {
throw new RuntimeException("Could not process configuration.", e);
}
}
use of org.apache.cxf.transport.http_undertow.ThreadingParameters in project cxf by apache.
the class HTTPUndertowTransportActivator method configure.
private void configure(UndertowHTTPServerEngine e, Dictionary<String, ?> properties) {
ThreadingParameters threading = createThreadingParameters(properties);
if (threading != null) {
e.setThreadingParameters(threading);
}
Enumeration<String> keys = properties.keys();
while (keys.hasMoreElements()) {
String k = keys.nextElement();
if ("continuationsEnabled".equals(k)) {
e.setContinuationsEnabled(Boolean.parseBoolean((String) properties.get(k)));
} else if ("maxIdleTime".equals(k)) {
e.setMaxIdleTime(Integer.parseInt((String) properties.get(k)));
}
}
}
use of org.apache.cxf.transport.http_undertow.ThreadingParameters in project cxf by apache.
the class UndertowSpringTypesFactory method toThreadingParameters.
private static Map<String, ThreadingParameters> toThreadingParameters(List<ThreadingParametersIdentifiedType> list) {
Map<String, ThreadingParameters> map = new TreeMap<String, ThreadingParameters>();
for (ThreadingParametersIdentifiedType t : list) {
ThreadingParameters parameter = toThreadingParameters(t.getThreadingParameters());
map.put(t.getId(), parameter);
}
return map;
}
Aggregations