Resolved several outstanding TODOs after upgrade to HC 4.4

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpasyncclient/trunk@1658393 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/httpasyncclient-cache/src/test/java/org/apache/http/impl/client/cache/TestHttpAsyncCacheJiraNumber1147.java b/httpasyncclient-cache/src/test/java/org/apache/http/impl/client/cache/TestHttpAsyncCacheJiraNumber1147.java
index 3e78b53..98c3ec5 100644
--- a/httpasyncclient-cache/src/test/java/org/apache/http/impl/client/cache/TestHttpAsyncCacheJiraNumber1147.java
+++ b/httpasyncclient-cache/src/test/java/org/apache/http/impl/client/cache/TestHttpAsyncCacheJiraNumber1147.java
@@ -27,8 +27,6 @@
 package org.apache.http.impl.client.cache;
 
 import org.apache.http.impl.execchain.ClientExecChain;
-import org.junit.Ignore;
-import org.junit.Test;
 
 public class TestHttpAsyncCacheJiraNumber1147 extends TestHttpCacheJiraNumber1147 {
 
@@ -40,8 +38,4 @@
         return new CachingHttpAsyncClientExecChain(backend, cache, config);
     }
 
-    @Override @Test @Ignore // TODO: re-enable the test after HttpClient 4.3.4 release
-    public void testIssue1147() throws Exception {
-        super.testIssue1147();
-    }
 }
diff --git a/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/PoolingNHttpClientConnectionManager.java b/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/PoolingNHttpClientConnectionManager.java
index 47b074f..21b3ed8 100644
--- a/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/PoolingNHttpClientConnectionManager.java
+++ b/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/PoolingNHttpClientConnectionManager.java
@@ -64,7 +64,6 @@
 import org.apache.http.nio.reactor.ConnectingIOReactor;
 import org.apache.http.nio.reactor.IOEventDispatch;
 import org.apache.http.nio.reactor.IOSession;
-import org.apache.http.nio.reactor.ssl.SSLIOSession;
 import org.apache.http.pool.ConnPoolControl;
 import org.apache.http.pool.PoolStats;
 import org.apache.http.protocol.HttpContext;
@@ -344,10 +343,6 @@
                 final IOSession ioSession = conn.getIOSession();
                 final IOSession currentSession = sf.upgrade(host, ioSession);
                 conn.bind(currentSession);
-                // TODO: to be removed (work-around for a bug in HttpCore 4.4b1)
-                if (currentSession instanceof SSLIOSession) {
-                    ioSession.setBufferStatus((SSLIOSession) currentSession);
-                }
             }
         }
     }
diff --git a/httpasyncclient/src/main/java/org/apache/http/nio/conn/ssl/SSLIOSessionStrategy.java b/httpasyncclient/src/main/java/org/apache/http/nio/conn/ssl/SSLIOSessionStrategy.java
index 5b92cf3..49c0260 100644
--- a/httpasyncclient/src/main/java/org/apache/http/nio/conn/ssl/SSLIOSessionStrategy.java
+++ b/httpasyncclient/src/main/java/org/apache/http/nio/conn/ssl/SSLIOSessionStrategy.java
@@ -28,10 +28,8 @@
 package org.apache.http.nio.conn.ssl;
 
 import java.io.IOException;
-import java.net.URL;
 import java.security.cert.Certificate;
 import java.security.cert.X509Certificate;
-import java.util.Arrays;
 
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.SSLContext;
@@ -41,22 +39,19 @@
 import javax.net.ssl.SSLSession;
 import javax.security.auth.x500.X500Principal;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.http.HttpHost;
 import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
 import org.apache.http.conn.ssl.BrowserCompatHostnameVerifier;
 import org.apache.http.conn.ssl.DefaultHostnameVerifier;
-import org.apache.http.conn.ssl.SSLContexts;
 import org.apache.http.conn.ssl.StrictHostnameVerifier;
 import org.apache.http.conn.ssl.X509HostnameVerifier;
-import org.apache.http.conn.util.PublicSuffixMatcher;
 import org.apache.http.conn.util.PublicSuffixMatcherLoader;
 import org.apache.http.nio.conn.SchemeIOSessionStrategy;
 import org.apache.http.nio.reactor.IOSession;
 import org.apache.http.nio.reactor.ssl.SSLIOSession;
 import org.apache.http.nio.reactor.ssl.SSLMode;
 import org.apache.http.nio.reactor.ssl.SSLSetupHandler;
+import org.apache.http.ssl.SSLContexts;
 import org.apache.http.util.Args;
 import org.apache.http.util.Asserts;
 import org.apache.http.util.TextUtils;
@@ -87,39 +82,11 @@
         return s.split(" *, *");
     }
 
-    //TODO: remove after upgrade to HttpCore 4.4-beta2 or newer
-    private static volatile PublicSuffixMatcher DEFAULT_INSTANCE;
-
-    private static PublicSuffixMatcher getDefaultPublicSuffixMatcher() {
-        if (DEFAULT_INSTANCE == null) {
-            synchronized (PublicSuffixMatcherLoader.class) {
-                if (DEFAULT_INSTANCE == null){
-                    final URL url = PublicSuffixMatcherLoader.class.getResource(
-                            "/mozilla/public-suffix-list.txt");
-                    if (url != null) {
-                        try {
-                            DEFAULT_INSTANCE = PublicSuffixMatcherLoader.load(url);
-                        } catch (IOException ex) {
-                            // Should never happen
-                            final Log log = LogFactory.getLog(PublicSuffixMatcherLoader.class);
-                            if (log.isWarnEnabled()) {
-                                log.warn("Failure loading public suffix list from default resource", ex);
-                            }
-                        }
-                    } else {
-                        DEFAULT_INSTANCE = new PublicSuffixMatcher(Arrays.asList("com"), null);
-                    }
-                }
-            }
-        }
-        return DEFAULT_INSTANCE;
-    }
-
     /**
      * @since 4.1
      */
     public static HostnameVerifier getDefaultHostnameVerifier() {
-        return new DefaultHostnameVerifier(getDefaultPublicSuffixMatcher());
+        return new DefaultHostnameVerifier(PublicSuffixMatcherLoader.getDefault());
     }
 
     public static SSLIOSessionStrategy getDefaultStrategy() {
diff --git a/httpasyncclient/src/test/java/org/apache/http/localserver/AbstractAsyncTest.java b/httpasyncclient/src/test/java/org/apache/http/localserver/AbstractAsyncTest.java
index 15da56c..2e6869b 100644
--- a/httpasyncclient/src/test/java/org/apache/http/localserver/AbstractAsyncTest.java
+++ b/httpasyncclient/src/test/java/org/apache/http/localserver/AbstractAsyncTest.java
@@ -34,7 +34,7 @@
 import org.apache.http.HttpHost;
 import org.apache.http.config.Registry;
 import org.apache.http.config.RegistryBuilder;
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.DefaultHostnameVerifier;
 import org.apache.http.impl.nio.bootstrap.HttpServer;
 import org.apache.http.impl.nio.bootstrap.ServerBootstrap;
 import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
@@ -98,9 +98,7 @@
         if (this.scheme.equals(ProtocolScheme.https)) {
             builder.register("https", new SSLIOSessionStrategy(
                     SSLTestContexts.createClientSSLContext(),
-                    // TODO: replace with the default hostname verifier
-                    // TODO: after upgrade to HttpCore 4.4-beta2 or newer
-                    NoopHostnameVerifier.INSTANCE));
+                    new DefaultHostnameVerifier()));
         }
         final Registry<SchemeIOSessionStrategy> registry =  builder.build();
         final DefaultConnectingIOReactor ioReactor = new DefaultConnectingIOReactor(ioReactorConfig);