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]