[MTOMCAT-278] Ignoring nonProxyHosts during deployment
Submitted by  John Gregg

git-svn-id: https://svn.apache.org/repos/asf/tomcat/maven-plugin/trunk@1623908 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManager.java b/common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManager.java
index bf40886..fd79b9b 100644
--- a/common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManager.java
+++ b/common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/deployer/TomcatManager.java
@@ -42,6 +42,8 @@
 import org.apache.http.impl.conn.PoolingClientConnectionManager;
 import org.apache.http.protocol.BasicHttpContext;
 import org.apache.maven.settings.Proxy;
+import org.apache.maven.wagon.proxy.ProxyInfo;
+import org.apache.maven.wagon.proxy.ProxyUtils;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -294,15 +296,19 @@
      */
     private void applyProxy()
     {
-        if ( this.proxy != null )
-        {
-            HttpHost proxy = new HttpHost( this.proxy.getHost(), this.proxy.getPort(), this.proxy.getProtocol() );
-            httpClient.getParams().setParameter( ConnRoutePNames.DEFAULT_PROXY, proxy );
-            if ( this.proxy.getUsername() != null )
-            {
-                httpClient.getCredentialsProvider().setCredentials(
-                    new AuthScope( this.proxy.getHost(), this.proxy.getPort() ),
-                    new UsernamePasswordCredentials( this.proxy.getUsername(), this.proxy.getPassword() ) );
+        if ( this.proxy != null ) {
+
+            ProxyInfo proxyInfo = new ProxyInfo();
+            proxyInfo.setNonProxyHosts(this.proxy.getNonProxyHosts());
+
+            if (!ProxyUtils.validateNonProxyHosts(proxyInfo, url.getHost())) {
+                HttpHost proxy = new HttpHost(this.proxy.getHost(), this.proxy.getPort(), this.proxy.getProtocol());
+                httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
+                if (this.proxy.getUsername() != null) {
+                    httpClient.getCredentialsProvider().setCredentials(
+                            new AuthScope(this.proxy.getHost(), this.proxy.getPort()),
+                            new UsernamePasswordCredentials(this.proxy.getUsername(), this.proxy.getPassword()));
+                }
             }
         }
         else