1 package com.atlassian.sal.core.net;
2
3 import org.apache.http.HttpException;
4 import org.apache.http.HttpHost;
5 import org.apache.http.HttpRequest;
6 import org.apache.http.impl.conn.DefaultRoutePlanner;
7 import org.apache.http.protocol.HttpContext;
8
9 public class ProxyRoutePlanner extends DefaultRoutePlanner {
10 private final HttpHost proxy;
11 private final String[] nonProxyHosts;
12
13 public ProxyRoutePlanner(final ProxyConfig proxyConfig) {
14 super(null);
15 this.proxy = new HttpHost(proxyConfig.getHost(), proxyConfig.getPort());
16 this.nonProxyHosts = proxyConfig.getNonProxyHosts();
17 }
18
19 @Override
20 protected HttpHost determineProxy(final HttpHost target, final HttpRequest request, final HttpContext context)
21 throws HttpException {
22 return ProxyUtil.shouldBeProxied(target.getHostName(), nonProxyHosts) ? proxy : null;
23 }
24 }