Author: kwall
Date: Sun Jul 26 21:44:23 2015
New Revision: 1692774

URL: http://svn.apache.org/r1692774
Log:
QPID-6658: [Java Broker] Add derived attribute 'protocol' to Connection model 
object and expose through management UI

Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
    
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java
    
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java
    
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_8.java
    
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9.java
    
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9_1.java
    
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngineTest.java
    
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
    
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showConnection.html

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
 Sun Jul 26 21:44:23 2015
@@ -82,6 +82,9 @@ public interface Connection<X extends Co
     Transport getTransport();
 
     @DerivedAttribute
+    Protocol getProtocol();
+
+    @DerivedAttribute
     VirtualHost getVirtualHost();
 
     @DerivedAttribute

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
 Sun Jul 26 21:44:23 2015
@@ -49,6 +49,7 @@ import org.apache.qpid.server.model.Abst
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.Session;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.StateTransition;
@@ -74,18 +75,19 @@ public abstract class AbstractAMQPConnec
     private final NetworkConnection _network;
     private final AmqpPort<?> _port;
     private final Transport _transport;
+    private final Protocol _protocol;
     private final long _connectionId;
     private final AggregateTicker _aggregateTicker;
     private final Subject _subject = new Subject();
     private final List<Action<? super C>> _connectionCloseTaskList =
             new CopyOnWriteArrayList<>();
-    private final LogSubject _logSubject;
 
+    private final LogSubject _logSubject;
     private String _clientProduct;
     private String _clientVersion;
     private String _remoteProcessPid;
-    private String _clientId;
 
+    private String _clientId;
     private volatile boolean _stopped;
     private final StatisticsCounter _messagesDelivered, _dataDelivered, 
_messagesReceived, _dataReceived;
     private final SettableFuture<Void> _transportClosedFuture = 
SettableFuture.create();
@@ -98,8 +100,9 @@ public abstract class AbstractAMQPConnec
                                   NetworkConnection network,
                                   AmqpPort<?> port,
                                   Transport transport,
+                                  Protocol protocol,
                                   long connectionId,
-                                  final AggregateTicker aggregateTicker)
+                                  AggregateTicker aggregateTicker)
     {
         super(parentsMap(port),createAttributes(connectionId, network));
 
@@ -107,6 +110,7 @@ public abstract class AbstractAMQPConnec
         _network = network;
         _port = port;
         _transport = transport;
+        _protocol = protocol;
         _connectionId = connectionId;
         _aggregateTicker = aggregateTicker;
         _subject.getPrincipals().add(new ConnectionPrincipal(this));
@@ -177,6 +181,12 @@ public abstract class AbstractAMQPConnec
     }
 
     @Override
+    public Protocol getProtocol()
+    {
+        return _protocol;
+    }
+
+    @Override
     public final AggregateTicker getAggregateTicker()
     {
         return _aggregateTicker;

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java
 Sun Jul 26 21:44:23 2015
@@ -37,6 +37,7 @@ import org.slf4j.LoggerFactory;
 import org.apache.qpid.protocol.AMQConstant;
 import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.Transport;
 import org.apache.qpid.server.model.VirtualHost;
@@ -84,7 +85,7 @@ public class AMQPConnection_0_10 extends
                                final long id,
                                final AggregateTicker aggregateTicker)
     {
-        super(broker, network, port, transport, id, aggregateTicker);
+        super(broker, network, port, transport, Protocol.AMQP_0_10, id, 
aggregateTicker);
 
         _connection = new ServerConnection(id, broker, port, transport);
         _connection.setAmqpConnection(this);

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java
 Sun Jul 26 21:44:23 2015
@@ -59,6 +59,7 @@ import org.apache.qpid.common.ServerProp
 import org.apache.qpid.framing.*;
 import org.apache.qpid.properties.ConnectionStartProperties;
 import org.apache.qpid.protocol.AMQConstant;
+import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.protocol.ConnectionClosingTicker;
 import org.apache.qpid.server.transport.AbstractAMQPConnection;
 import org.apache.qpid.server.transport.ProtocolEngine;
@@ -170,11 +171,14 @@ public class AMQPConnection_0_8
     private final AtomicReference<Thread> _messageAssignmentSuspended = new 
AtomicReference<>();
 
     public AMQPConnection_0_8(Broker<?> broker,
-                              final NetworkConnection network,
-                              AmqpPort<?> port, Transport transport, final 
long connectionId,
-                              final AggregateTicker aggregateTicker)
+                              NetworkConnection network,
+                              AmqpPort<?> port,
+                              Transport transport,
+                              Protocol protocol,
+                              long connectionId,
+                              AggregateTicker aggregateTicker)
     {
-        super(broker, network, port, transport, connectionId, aggregateTicker);
+        super(broker, network, port, transport, protocol, connectionId, 
aggregateTicker);
         _maxNoOfChannels = broker.getConnection_sessionCountLimit();
         _decoder = new BrokerDecoder(this);
         _binaryDataLimit = 
getBroker().getContextKeys(false).contains(BROKER_DEBUG_BINARY_DATA_LENGTH)

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_8.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_8.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_8.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_8.java
 Sun Jul 26 21:44:23 2015
@@ -66,7 +66,7 @@ public class ProtocolEngineCreator_0_8 i
                                             long id, final AggregateTicker 
aggregateTicker)
     {
         final AMQPConnection_0_8 protocolEngine =
-                new AMQPConnection_0_8(broker, network, port, transport, id, 
aggregateTicker);
+                new AMQPConnection_0_8(broker, network, port, transport, 
getVersion(), id, aggregateTicker);
         protocolEngine.create();
         return protocolEngine;
     }

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9.java
 Sun Jul 26 21:44:23 2015
@@ -66,7 +66,7 @@ public class ProtocolEngineCreator_0_9 i
                                             long id, final AggregateTicker 
aggregateTicker)
     {
         final AMQPConnection_0_8 protocolEngine =
-                new AMQPConnection_0_8(broker, network, port, transport, id, 
aggregateTicker);
+                new AMQPConnection_0_8(broker, network, port, transport, 
getVersion(), id, aggregateTicker);
         protocolEngine.create();
         return protocolEngine;
     }

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9_1.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9_1.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9_1.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9_1.java
 Sun Jul 26 21:44:23 2015
@@ -67,7 +67,7 @@ public class ProtocolEngineCreator_0_9_1
                                             long id, final AggregateTicker 
aggregateTicker)
     {
         final AMQPConnection_0_8 protocolEngine =
-                new AMQPConnection_0_8(broker, network, port, transport, id, 
aggregateTicker);
+                new AMQPConnection_0_8(broker, network, port, transport, 
getVersion(), id, aggregateTicker);
         protocolEngine.create();
         return protocolEngine;
     }

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngineTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngineTest.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngineTest.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngineTest.java
 Sun Jul 26 21:44:23 2015
@@ -33,6 +33,7 @@ import org.apache.qpid.server.configurat
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.Transport;
 import org.apache.qpid.server.model.port.AmqpPort;
 import org.apache.qpid.server.util.BrokerTestHelper;
@@ -46,6 +47,7 @@ public class AMQProtocolEngineTest exten
     private AmqpPort _port;
     private NetworkConnection _network;
     private Transport _transport;
+    private Protocol _protocol;
 
     public void setUp() throws Exception
     {
@@ -65,6 +67,7 @@ public class AMQProtocolEngineTest exten
 
         _network = mock(NetworkConnection.class);
         _transport = Transport.TCP;
+        _protocol = Protocol.AMQP_0_8;
     }
 
     public void tearDown() throws Exception
@@ -82,11 +85,11 @@ public class AMQProtocolEngineTest exten
     public void testSetClientPropertiesForNoRouteProvidedAsString()
     {
         AMQPConnection_0_8
-                engine = new AMQPConnection_0_8(_broker, _network, _port, 
_transport, 0, new AggregateTicker());
+                engine = new AMQPConnection_0_8(_broker, _network, _port, 
_transport, _protocol, 0, new AggregateTicker());
         engine.create();
         assertTrue("Unexpected closeWhenNoRoute before client properties set", 
engine.isCloseWhenNoRoute());
 
-        Map<String, Object> clientProperties = new HashMap<String, Object>();
+        Map<String, Object> clientProperties = new HashMap<>();
         
clientProperties.put(ConnectionStartProperties.QPID_CLOSE_WHEN_NO_ROUTE, 
Boolean.FALSE.toString());
         
engine.setClientProperties(FieldTable.convertToFieldTable(clientProperties));
 
@@ -96,11 +99,11 @@ public class AMQProtocolEngineTest exten
     public void testSetClientPropertiesForNoRouteProvidedAsBoolean()
     {
         AMQPConnection_0_8
-                engine = new AMQPConnection_0_8(_broker, _network, _port, 
_transport, 0, new AggregateTicker());
+                engine = new AMQPConnection_0_8(_broker, _network, _port, 
_transport, _protocol, 0, new AggregateTicker());
         engine.create();
         assertTrue("Unexpected closeWhenNoRoute before client properties set", 
engine.isCloseWhenNoRoute());
 
-        Map<String, Object> clientProperties = new HashMap<String, Object>();
+        Map<String, Object> clientProperties = new HashMap<>();
         
clientProperties.put(ConnectionStartProperties.QPID_CLOSE_WHEN_NO_ROUTE, 
Boolean.FALSE);
         
engine.setClientProperties(FieldTable.convertToFieldTable(clientProperties));
 

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
 Sun Jul 26 21:44:23 2015
@@ -48,6 +48,7 @@ import org.apache.qpid.server.message.In
 import org.apache.qpid.server.message.MessageContentSource;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.port.AmqpPort;
 import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
 import org.apache.qpid.server.security.auth.UsernamePrincipal;
@@ -67,7 +68,8 @@ public class InternalTestProtocolSession
     public InternalTestProtocolSession(VirtualHostImpl virtualHost, Broker<?> 
broker, final AmqpPort<?> port) throws
                                                                                
                               QpidException
     {
-        super(broker, new TestNetworkConnection(), port, null, 
ID_GENERATOR.getAndIncrement(), new AggregateTicker());
+        super(broker, new TestNetworkConnection(), port, null, null,
+              ID_GENERATOR.getAndIncrement(), new AggregateTicker());
 
         _channelDelivers = new HashMap<Integer, Map<String, 
LinkedList<DeliveryPair>>>();
 
@@ -104,7 +106,6 @@ public class InternalTestProtocolSession
                             int replyCode,
                             AMQShortString replyText)
     {
-        //To change body of implemented methods use File | Settings | File 
Templates.
     }
 
     public byte getProtocolMinorVersion()
@@ -363,4 +364,6 @@ public class InternalTestProtocolSession
         {
         }
     }
+
+
 }

Modified: 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
 Sun Jul 26 21:44:23 2015
@@ -54,6 +54,7 @@ import org.apache.qpid.common.QpidProper
 import org.apache.qpid.common.ServerPropertyNames;
 import org.apache.qpid.protocol.AMQConstant;
 import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.protocol.ConnectionClosingTicker;
 import org.apache.qpid.server.transport.AbstractAMQPConnection;
@@ -152,7 +153,7 @@ public class AMQPConnection_1_0 extends
                               final AggregateTicker aggregateTicker,
                               final boolean useSASL)
     {
-        super(broker, network, port, transport, id, aggregateTicker);
+        super(broker, network, port, transport, Protocol.AMQP_1_0, id, 
aggregateTicker);
         _broker = broker;
         _connection = createConnection(broker, network, port, transport, id, 
useSASL);
 

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
 Sun Jul 26 21:44:23 2015
@@ -103,6 +103,7 @@ define(["dojo/parser",
                            "principal",
                            "port",
                            "transport",
+                           "protocol",
                            "remoteProcessPid",
                            "createdTime",
                            "lastIoTime",
@@ -161,6 +162,7 @@ define(["dojo/parser",
               this.principal.innerHTML = 
entities.encode(String(this.connectionData[ "principal" ]));
               this.port.innerHTML = 
entities.encode(String(this.connectionData[ "port" ]));
               this.transport.innerHTML = 
entities.encode(String(this.connectionData[ "transport" ]));
+              this.protocol.innerHTML = 
entities.encode(String(this.connectionData[ "protocol" ]));
               var remoteProcessPid = this.connectionData[ "remoteProcessPid" ];
               this.remoteProcessPid.innerHTML = 
entities.encode(String(remoteProcessPid ? remoteProcessPid : "N/A"));
               var userPreferences = this.management.userPreferences;

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showConnection.html
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showConnection.html?rev=1692774&r1=1692773&r2=1692774&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showConnection.html
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showConnection.html
 Sun Jul 26 21:44:23 2015
@@ -83,6 +83,10 @@
             <div class="formLabel-labelCell">Transport:</div>
             <div class="transport"></div>
         </div>
+        <div class="clear">
+            <div class="formLabel-labelCell">Protocol:</div>
+            <div class="protocol"></div>
+        </div>
     </div>
     <div class="dijitDialogPaneActionBar">
         <button data-dojo-type="dijit.form.Button" class="closeButton" 
data-dojo-props="iconClass: 'dijitIconDelete'">Close</button>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to