use of org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler in project wildfly by wildfly.
the class HandlerService method start.
@Override
public void start(final StartContext context) {
UndertowLogger.ROOT_LOGGER.tracef("starting handler: %s", httpHandler);
if (requestController != null) {
controlPoint = requestController.get().getControlPoint("org.wildfly.extension.undertow.handlers", name);
realHandler = new GlobalRequestControllerHandler(httpHandler, controlPoint, Collections.emptyList());
} else {
realHandler = httpHandler;
}
httpHandlerConsumer.accept(realHandler);
}
use of org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler in project wildfly-swarm by wildfly-swarm.
the class TopologyProxyService method updateProxyHosts.
private void updateProxyHosts(String serviceName, List<Topology.Entry> entries) {
HttpHandler proxyHandler = proxyHandlerMap.get(serviceName).getOptionalValue();
if (proxyHandler == null) {
// Service has been shutdown
proxyHandlerMap.remove(serviceName);
return;
}
LoadBalancingProxyClient proxyClient = null;
// which then wraps the next handler in the chain
if (proxyHandler instanceof GlobalRequestControllerHandler) {
// next in the chain of handlers
ProxyHandler proxy = (ProxyHandler) ((GlobalRequestControllerHandler) proxyHandler).getNext();
proxyClient = (LoadBalancingProxyClient) proxy.getProxyClient();
} else {
proxyClient = (LoadBalancingProxyClient) ((ProxyHandler) proxyHandler).getProxyClient();
}
List<Topology.Entry> oldEntries = proxyEntries.get(serviceName);
List<Topology.Entry> entriesToRemove = new ArrayList<>();
List<Topology.Entry> entriesToAdd = new ArrayList<>();
if (oldEntries == null) {
entriesToAdd.addAll(entries);
} else {
for (Topology.Entry oldEntry : oldEntries) {
if (!entries.contains(oldEntry)) {
entriesToRemove.add(oldEntry);
}
}
for (Topology.Entry entry : entries) {
if (!oldEntries.contains(entry)) {
entriesToAdd.add(entry);
}
}
}
for (Topology.Entry entry : entriesToRemove) {
try {
proxyClient.removeHost(entryToURI(entry));
} catch (URISyntaxException ex) {
log.log(Level.WARNING, "Error converting topology entry to URI", ex);
}
}
for (Topology.Entry entry : entriesToAdd) {
try {
proxyClient.addHost(entryToURI(entry));
} catch (URISyntaxException ex) {
log.log(Level.WARNING, "Error converting topology entry to URI", ex);
}
}
proxyEntries.put(serviceName, entries);
}
Aggregations