Author: robbie
Date: Mon Feb  6 23:24:15 2012
New Revision: 1241257

URL: http://svn.apache.org/viewvc?rev=1241257&view=rev
Log:
QPID-3816: add client version to connection open logging

Modified:
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_0_10.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
    
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java
    
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java
    
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties?rev=1241257&r1=1241256&r2=1241257&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
 Mon Feb  6 23:24:15 2012
@@ -20,5 +20,6 @@
 
 # 0 - Client id
 # 1 - Protocol Version
-OPEN = CON-1001 : Open[ : Client ID : {0}][ : Protocol Version : {1}]
+# 2 - Client Version
+OPEN = CON-1001 : Open[ : Client ID : {0}][ : Protocol Version : {1}][ : 
Client Version : {2}]
 CLOSE = CON-1002 : Close
\ No newline at end of file

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java?rev=1241257&r1=1241256&r2=1241257&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
 Mon Feb  6 23:24:15 2012
@@ -179,7 +179,7 @@ public class AMQProtocolEngine implement
         _configStore = virtualHostRegistry.getConfigStore();
         _id = _configStore.createId();
 
-        _actor.message(ConnectionMessages.OPEN(null, null, false, false));
+        _actor.message(ConnectionMessages.OPEN(null, null, null, false, false, 
false));
 
         _registry = virtualHostRegistry.getApplicationRegistry();
         initialiseStatistics();
@@ -365,7 +365,7 @@ public class AMQProtocolEngine implement
         try
         {
             // Log incomming protocol negotiation request
-            _actor.message(ConnectionMessages.OPEN(null, pi.getProtocolMajor() 
+ "-" + pi.getProtocolMinor(), false, true));
+            _actor.message(ConnectionMessages.OPEN(null, pi.getProtocolMajor() 
+ "-" + pi.getProtocolMinor(), null, false, true, false));
 
             ProtocolVersion pv = pi.checkVersion(); // Fails if not correct
 
@@ -923,16 +923,16 @@ public class AMQProtocolEngine implement
         _clientProperties = clientProperties;
         if (_clientProperties != null)
         {
+            _clientVersion = 
_clientProperties.getString(ConnectionStartProperties.VERSION_0_8);
+
             if 
(_clientProperties.getString(ConnectionStartProperties.CLIENT_ID_0_8) != null)
             {
                 String clientID = 
_clientProperties.getString(ConnectionStartProperties.CLIENT_ID_0_8);
                 setContextKey(new AMQShortString(clientID));
 
                 // Log the Opening of the connection for this client
-                _actor.message(ConnectionMessages.OPEN(clientID, 
_protocolVersion.toString(), true, true));
+                _actor.message(ConnectionMessages.OPEN(clientID, 
_protocolVersion.toString(), _clientVersion, true, true, true));
             }
-
-            _clientVersion = 
_clientProperties.getString(ConnectionStartProperties.VERSION_0_8);
         }
     }
 

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_0_10.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_0_10.java?rev=1241257&r1=1241256&r2=1241257&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_0_10.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_0_10.java
 Mon Feb  6 23:24:15 2012
@@ -90,8 +90,8 @@ public class ProtocolEngine_0_10  extend
         _connection.setSender(new Disassembler(sender, MAX_FRAME_SIZE));
 
         // FIXME Two log messages to maintain compatibility with earlier 
protocol versions
-        _connection.getLogActor().message(ConnectionMessages.OPEN(null, null, 
false, false));
-        _connection.getLogActor().message(ConnectionMessages.OPEN(null, 
"0-10", false, true));
+        _connection.getLogActor().message(ConnectionMessages.OPEN(null, null, 
null, false, false, false));
+        _connection.getLogActor().message(ConnectionMessages.OPEN(null, 
"0-10", null, false, true, false));
     }
 
     public SocketAddress getRemoteAddress()

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java?rev=1241257&r1=1241256&r2=1241257&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
 Mon Feb  6 23:24:15 2012
@@ -107,7 +107,7 @@ public class ServerConnection extends Co
             {
                 _onOpenTask.run();    
             }
-            _actor.message(ConnectionMessages.OPEN(getClientId(), "0-10", 
true, true));
+            _actor.message(ConnectionMessages.OPEN(getClientId(), "0-10", 
getClientVersion(), true, true, true));
 
             getVirtualHost().getConnectionRegistry().registerConnection(this);
         }

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java?rev=1241257&r1=1241256&r2=1241257&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java
 Mon Feb  6 23:24:15 2012
@@ -63,16 +63,21 @@ public abstract class AbstractTestMessag
         return _logger.getLogMessages();
     }
 
+    protected void validateLogMessage(List<Object> logs, String tag, String[] 
expected)
+    {
+        validateLogMessage(logs, tag, false, expected);
+    }
+
     /**
-     * Validate that only a single log messasge occured and that the message
+     * Validate that only a single log message occurred and that the message
      * section starts with the specified tag
      *
      * @param logs     the logs generated during test run
      * @param tag      the tag to check for
      * @param expected the expected log messages
-     *
+     * @param useStringForNull replace a null String reference with "null"
      */
-    protected void validateLogMessage(List<Object> logs, String tag, String[] 
expected)
+    protected void validateLogMessage(List<Object> logs, String tag, boolean 
useStringForNull, String[] expected)
     {
         assertEquals("Log has incorrect message count", 1, logs.size());
 
@@ -97,6 +102,10 @@ public abstract class AbstractTestMessag
         int index = 0;
         for (String text : expected)
         {
+            if(useStringForNull && text == null)
+            {
+                text = "null";
+            }
             index = message.indexOf(text, index);
             assertTrue("Message does not contain expected (" + text + ") text 
:" + message, index != -1);
             index = index + text.length();

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java?rev=1241257&r1=1241256&r2=1241257&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java
 Mon Feb  6 23:24:15 2012
@@ -27,25 +27,27 @@ import java.util.List;
  */
 public class ConnectionMessagesTest extends AbstractTestMessages
 {
-    public void testConnectionOpen_WithClientIDProtocolVersion()
+    public void testConnectionOpen_WithClientIDProtocolVersionClientVersion()
     {
         String clientID = "client";
         String protocolVersion = "8-0";
+        String clientVersion = "1.2.3_4";
 
-        _logMessage = ConnectionMessages.OPEN(clientID, protocolVersion, true 
, true);
+        _logMessage = ConnectionMessages.OPEN(clientID, protocolVersion, 
clientVersion, true , true, true);
         List<Object> log = performLog();
 
         String[] expected = {"Open :", "Client ID", clientID,
-                             ": Protocol Version :", protocolVersion};
+                             ": Protocol Version :", protocolVersion,
+                             ": Client Version :", clientVersion};
 
         validateLogMessage(log, "CON-1001", expected);
     }
 
-    public void testConnectionOpen_WithClientIDNoProtocolVersion()
+    public void 
testConnectionOpen_WithClientIDNoProtocolVersionNoClientVersion()
     {
         String clientID = "client";        
 
-        _logMessage = ConnectionMessages.OPEN(clientID, null,true, false);
+        _logMessage = ConnectionMessages.OPEN(clientID, null, null, true, 
false, false);
         List<Object> log = performLog();
 
         String[] expected = {"Open :", "Client ID", clientID};
@@ -53,11 +55,11 @@ public class ConnectionMessagesTest exte
         validateLogMessage(log, "CON-1001", expected);
     }
 
-    public void testConnectionOpen_WithNOClientIDProtocolVersion()
+    public void 
testConnectionOpen_WithNOClientIDProtocolVersionNoClientVersion()
     {
         String protocolVersion = "8-0";
 
-        _logMessage = ConnectionMessages.OPEN(null, protocolVersion, false , 
true);
+        _logMessage = ConnectionMessages.OPEN(null, protocolVersion, null, 
false , true, false);
         List<Object> log = performLog();
 
         String[] expected = {"Open", ": Protocol Version :", protocolVersion};
@@ -65,17 +67,39 @@ public class ConnectionMessagesTest exte
         validateLogMessage(log, "CON-1001", expected);
     }
 
-    public void testConnectionOpen_WithNoClientIDNoProtocolVersion()
+    public void 
testConnectionOpen_WithNOClientIDNoProtocolVersionClientVersion()
     {
-        _logMessage = ConnectionMessages.OPEN(null, null,false, false);
+        String clientVersion = "1.2.3_4";
+
+        _logMessage = ConnectionMessages.OPEN(null, null, clientVersion, false 
, false, true);
         List<Object> log = performLog();
 
-        String[] expected = {"Open"};
+        String[] expected = {"Open", ": Client Version :", clientVersion};
 
         validateLogMessage(log, "CON-1001", expected);
     }
 
+    public void 
testConnectionOpen_WithNOClientIDNoProtocolVersionNullClientVersion()
+    {
+        String clientVersion = null;
+
+        _logMessage = ConnectionMessages.OPEN(null, null, clientVersion , 
false , false, true);
+        List<Object> log = performLog();
+
+        String[] expected = {"Open", ": Client Version :", clientVersion};
+
+        validateLogMessage(log, "CON-1001", true, expected);
+    }
 
+    public void 
testConnectionOpen_WithNoClientIDNoProtocolVersionNoClientVersion()
+    {
+        _logMessage = ConnectionMessages.OPEN(null, null, null, false, false, 
false);
+        List<Object> log = performLog();
+
+        String[] expected = {"Open"};
+
+        validateLogMessage(log, "CON-1001", expected);
+    }
 
     public void testConnectionClose()
     {

Modified: 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java?rev=1241257&r1=1241256&r2=1241257&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java
 (original)
+++ 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java
 Mon Feb  6 23:24:15 2012
@@ -21,6 +21,9 @@
 package org.apache.qpid.server.logging;
 
 import javax.jms.Connection;
+
+import org.apache.qpid.common.QpidProperties;
+
 import java.util.HashMap;
 import java.util.List;
 import java.util.TreeSet;
@@ -68,7 +71,7 @@ public class ConnectionLoggingTest exten
 
         // MESSAGE [con:1(/127.0.0.1:46927)] CON-1001 : Open
         // MESSAGE [con:1(/127.0.0.1:46927)] CON-1001 : Open : Protocol 
Version : 0-9
-        // MESSAGE [con:1(/127.0.0.1:46927)] CON-1001 : Open : Client ID : 
clientid : Protocol Version : 0-9
+        // MESSAGE [con:1(/127.0.0.1:46927)] CON-1001 : Open : Client ID : 
clientid : Protocol Version : 0-9 : Client Version : 1.2.3_4
         // MESSAGE [con:0(/127.0.0.1:46927)] CON-1002 : Close
 
         HashMap<Integer, List<String>> connectionData = 
splitResultsOnConnectionID(results);
@@ -87,18 +90,18 @@ public class ConnectionLoggingTest exten
         validateMessageID("CON-1001",log);
 
         // validate the last three CON-1001 messages.
-        //  MESSAGE [con:1(/127.0.0.1:52540)] CON-1001 : Open : Client ID : 
clientid : Protocol Version : 0-9
-        validateConnectionOpen(results, 0, true, true, clientid);
+        //  MESSAGE [con:1(/127.0.0.1:52540)] CON-1001 : Open : Client ID : 
clientid : Protocol Version : 0-9 : Client Version : 1.2.3_4
+        validateConnectionOpen(results, 0, true, true, clientid, true, 
QpidProperties.getReleaseVersion());
 
         //  MESSAGE [con:1(/127.0.0.1:52540)] CON-1001 : Open : Protocol 
Version : 0-9
-        validateConnectionOpen(results, 1, true, false, null);
+        validateConnectionOpen(results, 1, true, false, null, false, null);
 
         //  MESSAGE [con:1(/127.0.0.1:52540)] CON-1001 : Open
-        validateConnectionOpen(results, 2, false, false, null);
+        validateConnectionOpen(results, 2, false, false, null, false, null);
     }
     
     private void validateConnectionOpen(List<String> results, int 
positionFromEnd,
-                 boolean protocolVersionPresent, boolean 
clientIdOptionPresent, String clientIdValue)
+                 boolean protocolVersionPresent, boolean 
clientIdOptionPresent, String clientIdValue, boolean clientVersionPresent, 
String clientVersionValue)
     {
         String log = getLogMessageFromEnd(results, positionFromEnd);
         
@@ -115,6 +118,13 @@ public class ConnectionLoggingTest exten
                 protocolVersionPresent, fromMessage(log).contains("Protocol 
Version :"));
         //fixme there is no way currently to find out the negotiated protocol 
version
         // The delegate is the versioned class 
((AMQConnection)connection)._delegate
+
+        assertEquals("unexpected Client ID option state", 
clientVersionPresent, fromMessage(log).contains("Client Version :"));
+
+        if(clientVersionPresent && clientVersionValue != null)
+        {
+            assertTrue("Client version value is not present: " + 
clientVersionValue, fromMessage(log).contains(clientVersionValue));
+        }
     }
 
     /**



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to