QPID-8448: Make sure that actual connection is closed

This closes #59
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/portunification/TlsOrPlainConnectionFactory.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/portunification/TlsOrPlainConnectionFactory.java
index 5c094fb..c3d0ac7 100644
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/portunification/TlsOrPlainConnectionFactory.java
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/portunification/TlsOrPlainConnectionFactory.java
@@ -127,13 +127,11 @@
         @Override
         public void addListener(Listener listener)
         {
-            if (_actualConnection == null)
+            _listeners.add(listener);
+            AbstractConnection actualConnection = _actualConnection;
+            if (actualConnection != null)
             {
-                _listeners.add(listener);
-            }
-            else
-            {
-                _actualConnection.addListener(listener);
+                actualConnection.addListener(listener);
             }
         }
 
@@ -141,6 +139,11 @@
         public void removeListener(Listener listener)
         {
             _listeners.remove(listener);
+            AbstractConnection actualConnection = _actualConnection;
+            if (actualConnection != null)
+            {
+                actualConnection.removeListener(listener);
+            }
         }
 
         @Override
@@ -157,6 +160,11 @@
                 listener.onOpened(this);
             }
 
+            final AbstractConnection actualConnection = _actualConnection;
+            if (actualConnection != null)
+            {
+                actualConnection.onOpen();
+            }
         }
 
         @Override
@@ -167,6 +175,12 @@
                 LOG.debug("onClose {}", this);
             }
 
+            final AbstractConnection actualConnection = _actualConnection;
+            if (actualConnection != null)
+            {
+                actualConnection.onClose();
+            }
+
             for (Listener listener : _listeners)
             {
                 listener.onClosed(this);
@@ -350,7 +364,10 @@
 
         private SslConnection newSslConnection(final Connector connector, final EndPoint endPoint, final SSLEngine engine)
         {
-            return new SslConnection(connector.getByteBufferPool(), connector.getExecutor(), endPoint, engine);
+            final SslConnection sslConnection =
+                    new SslConnection(connector.getByteBufferPool(), connector.getExecutor(), endPoint, engine);
+            TlsOrPlainConnectionFactory.this.configure(sslConnection, _connector, _endPoint);
+            return sslConnection;
         }