summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2013-10-27 17:09:42 +0000
committerRobert Gemmell <robbie@apache.org>2013-10-27 17:09:42 +0000
commit62adcf960b84eae15c5947f40c7913581472fe52 (patch)
tree93c32abcd34b6259fae8291daa55282494554fb8
parent76666e50981b92b60197d9a51c7fff62e38fb98e (diff)
downloadqpid-python-62adcf960b84eae15c5947f40c7913581472fe52.tar.gz
QPID-5266: include the client product string in connection open log message
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1536163 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java16
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java40
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java6
-rwxr-xr-xqpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java4
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java11
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java5
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java14
-rw-r--r--qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java6
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java20
11 files changed, 96 insertions, 30 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java
index 639705edbf..2766f0c1f1 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java
@@ -60,12 +60,12 @@ public class ConnectionMessages
/**
* Log a Connection message of the Format:
- * <pre>CON-1001 : Open[ : Client ID : {0}][ : Protocol Version : {1}][ : Client Version : {2}]</pre>
+ * <pre>CON-1001 : Open[ : Client ID : {0}][ : Protocol Version : {1}][ : Client Version : {2}][ : Client Product : {3}]</pre>
* Optional values are contained in [square brackets] and are numbered
* sequentially in the method call.
*
*/
- public static LogMessage OPEN(String param1, String param2, String param3, boolean opt1, boolean opt2, boolean opt3)
+ public static LogMessage OPEN(String param1, String param2, String param3, String param4, boolean opt1, boolean opt2, boolean opt3, boolean opt4)
{
String rawMessage = _messages.getString("OPEN");
StringBuffer msg = new StringBuffer();
@@ -108,11 +108,21 @@ public class ConnectionMessages
// Use 'end + 1' to remove the ']' from the output
msg.append(parts[3].substring(end + 1));
+
+ // Add Option : : Client Product : {3}.
+ end = parts[4].indexOf(']');
+ if (opt4)
+ {
+ msg.append(parts[4].substring(0, end));
+ }
+
+ // Use 'end + 1' to remove the ']' from the output
+ msg.append(parts[4].substring(end + 1));
}
rawMessage = msg.toString();
- final Object[] messageArguments = {param1, param2, param3};
+ final Object[] messageArguments = {param1, param2, param3, param4};
// Create a new MessageFormat to ensure thread safety.
// Sharing a MessageFormat and using applyPattern is not thread safe
MessageFormat formatter = new MessageFormat(rawMessage, _currentLocale);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
index a99bcc7352..ad9896a659 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
@@ -21,6 +21,6 @@
# 0 - Client id
# 1 - Protocol Version
# 2 - Client Version
-OPEN = CON-1001 : Open[ : Client ID : {0}][ : Protocol Version : {1}][ : Client Version : {2}]
+OPEN = CON-1001 : Open[ : Client ID : {0}][ : Protocol Version : {1}][ : Client Version : {2}][ : Client Product : {3}]
CLOSE = CON-1002 : Close
IDLE_CLOSE = CON-1003 : Closed due to inactivity
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
index 19c5d03e0c..180653af0e 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
@@ -79,6 +79,8 @@ public interface AMQConnectionModel extends StatisticsGatherer
String getClientVersion();
+ String getClientProduct();
+
String getPrincipalAsString();
long getSessionCountLimit();
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java
index b2951ae54a..fedc3fc52b 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ConnectionMessagesTest.java
@@ -27,27 +27,29 @@ import java.util.List;
*/
public class ConnectionMessagesTest extends AbstractTestMessages
{
- public void testConnectionOpen_WithClientIDProtocolVersionClientVersion()
+ public void testConnectionOpen_WithClientIDProtocolVersionClientVersionClientProduct()
{
String clientID = "client";
String protocolVersion = "8-0";
String clientVersion = "1.2.3_4";
+ String clientProduct = "myProduct";
- _logMessage = ConnectionMessages.OPEN(clientID, protocolVersion, clientVersion, true , true, true);
+ _logMessage = ConnectionMessages.OPEN(clientID, protocolVersion, clientVersion, clientProduct , true, true, true, true);
List<Object> log = performLog();
String[] expected = {"Open :", "Client ID", clientID,
": Protocol Version :", protocolVersion,
- ": Client Version :", clientVersion};
+ ": Client Version :", clientVersion,
+ ": Client Product :", clientProduct};
validateLogMessage(log, "CON-1001", expected);
}
- public void testConnectionOpen_WithClientIDNoProtocolVersionNoClientVersion()
+ public void testConnectionOpen_WithClientIDNoProtocolVersionNoClientVersionNoClientProduct()
{
String clientID = "client";
- _logMessage = ConnectionMessages.OPEN(clientID, null, null, true, false, false);
+ _logMessage = ConnectionMessages.OPEN(clientID, null, null, null, true, false, false, false);
List<Object> log = performLog();
String[] expected = {"Open :", "Client ID", clientID};
@@ -55,11 +57,11 @@ public class ConnectionMessagesTest extends AbstractTestMessages
validateLogMessage(log, "CON-1001", expected);
}
- public void testConnectionOpen_WithNOClientIDProtocolVersionNoClientVersion()
+ public void testConnectionOpen_WithNOClientIDProtocolVersionNoClientVersionNoClientProduct()
{
String protocolVersion = "8-0";
- _logMessage = ConnectionMessages.OPEN(null, protocolVersion, null, false , true, false);
+ _logMessage = ConnectionMessages.OPEN(null, protocolVersion, null, null , false, true, false, false);
List<Object> log = performLog();
String[] expected = {"Open", ": Protocol Version :", protocolVersion};
@@ -67,11 +69,11 @@ public class ConnectionMessagesTest extends AbstractTestMessages
validateLogMessage(log, "CON-1001", expected);
}
- public void testConnectionOpen_WithNOClientIDNoProtocolVersionClientVersion()
+ public void testConnectionOpen_WithNOClientIDNoProtocolVersionClientVersionNoClientProduct()
{
String clientVersion = "1.2.3_4";
- _logMessage = ConnectionMessages.OPEN(null, null, clientVersion, false , false, true);
+ _logMessage = ConnectionMessages.OPEN(null, null, clientVersion, null , false, false, true, false);
List<Object> log = performLog();
String[] expected = {"Open", ": Client Version :", clientVersion};
@@ -79,11 +81,11 @@ public class ConnectionMessagesTest extends AbstractTestMessages
validateLogMessage(log, "CON-1001", expected);
}
- public void testConnectionOpen_WithNOClientIDNoProtocolVersionNullClientVersion()
+ public void testConnectionOpen_WithNOClientIDNoProtocolVersionNullClientVersionNoClientProduct()
{
String clientVersion = null;
- _logMessage = ConnectionMessages.OPEN(null, null, clientVersion , false , false, true);
+ _logMessage = ConnectionMessages.OPEN(null, null, clientVersion , null , false, false, true, false);
List<Object> log = performLog();
String[] expected = {"Open", ": Client Version :", clientVersion};
@@ -91,9 +93,21 @@ public class ConnectionMessagesTest extends AbstractTestMessages
validateLogMessage(log, "CON-1001", true, expected);
}
- public void testConnectionOpen_WithNoClientIDNoProtocolVersionNoClientVersion()
+ public void testConnectionOpen_WithNOClientIDNoProtocolVersionNoClientVersionNullClientProduct()
{
- _logMessage = ConnectionMessages.OPEN(null, null, null, false, false, false);
+ String clientProduct = null;
+
+ _logMessage = ConnectionMessages.OPEN(null, null, null , clientProduct , false, false, false, true);
+ List<Object> log = performLog();
+
+ String[] expected = {"Open", ": Client Product :", clientProduct};
+
+ validateLogMessage(log, "CON-1001", true, expected);
+ }
+
+ public void testConnectionOpen_WithNoClientIDNoProtocolVersionNoClientVersionNoClientProduct()
+ {
+ _logMessage = ConnectionMessages.OPEN(null, null, null, null, false, false, false, false);
List<Object> log = performLog();
String[] expected = {"Open"};
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java
index b26d7530aa..77f09dc567 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java
@@ -530,6 +530,12 @@ public class MockSubscription implements Subscription
}
@Override
+ public String getClientProduct()
+ {
+ return null;
+ }
+
+ @Override
public String getPrincipalAsString()
{
return null;
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java
index 73708d9841..9e41a5234c 100755
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java
@@ -79,8 +79,8 @@ public class ProtocolEngine_0_10 extends InputHandler implements ServerProtocol
_connection.setSender(new Disassembler(wrapSender(sender), MAX_FRAME_SIZE));
_connection.setPeerPrincipal(_network.getPeerPrincipal());
// FIXME Two log messages to maintain compatibility with earlier protocol versions
- _connection.getLogActor().message(ConnectionMessages.OPEN(null, null, null, false, false, false));
- _connection.getLogActor().message(ConnectionMessages.OPEN(null, "0-10", null, false, true, false));
+ _connection.getLogActor().message(ConnectionMessages.OPEN(null, null, null, null, false, false, false, false));
+ _connection.getLogActor().message(ConnectionMessages.OPEN(null, "0-10", null, null, false, true, false, false));
}
private Sender<ByteBuffer> wrapSender(final Sender<ByteBuffer> sender)
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
index 0015988ab7..72d6a0832d 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
@@ -106,7 +106,7 @@ public class ServerConnection extends Connection implements AMQConnectionModel,
{
_onOpenTask.run();
}
- _actor.message(ConnectionMessages.OPEN(getClientId(), "0-10", getClientVersion(), true, true, true));
+ _actor.message(ConnectionMessages.OPEN(getClientId(), "0-10", getClientVersion(), getClientProduct(), true, true, true, true));
getVirtualHost().getConnectionRegistry().registerConnection(this);
}
@@ -499,17 +499,24 @@ public class ServerConnection extends Connection implements AMQConnectionModel,
return _lastIoTime.longValue();
}
-
+ @Override
public String getClientId()
{
return getConnectionDelegate().getClientId();
}
+ @Override
public String getClientVersion()
{
return getConnectionDelegate().getClientVersion();
}
+ @Override
+ public String getClientProduct()
+ {
+ return getConnectionDelegate().getClientProduct();
+ }
+
public String getPrincipalAsString()
{
return getAuthorizedPrincipal() == null ? null : getAuthorizedPrincipal().getName();
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
index 6634627805..129a811b61 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
@@ -347,4 +347,9 @@ public class ServerConnectionDelegate extends ServerDelegate
{
return _clientProperties == null ? null : (String) _clientProperties.get(ConnectionStartProperties.VERSION_0_10);
}
+
+ public String getClientProduct()
+ {
+ return _clientProperties == null ? null : (String) _clientProperties.get(ConnectionStartProperties.PRODUCT);
+ }
}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
index 34cbd90b8c..33300e9e59 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
@@ -114,6 +114,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
private AMQShortString _contextKey;
private String _clientVersion = null;
+ private String _clientProduct = null;
private VirtualHost _virtualHost;
@@ -212,7 +213,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
_logSubject = new ConnectionLogSubject(this);
- _actor.message(ConnectionMessages.OPEN(null, null, null, false, false, false));
+ _actor.message(ConnectionMessages.OPEN(null, null, null, null, false, false, false, false));
_closeWhenNoRoute = (Boolean)_broker.getAttribute(Broker.CONNECTION_CLOSE_WHEN_NO_ROUTE);
@@ -476,7 +477,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
try
{
// Log incomming protocol negotiation request
- _actor.message(ConnectionMessages.OPEN(null, pi.getProtocolMajor() + "-" + pi.getProtocolMinor(), null, false, true, false));
+ _actor.message(ConnectionMessages.OPEN(null, pi.getProtocolMajor() + "-" + pi.getProtocolMinor(), null, null, false, true, false, false));
ProtocolVersion pv = pi.checkVersion(); // Fails if not correct
@@ -1109,6 +1110,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
}
_clientVersion = _clientProperties.getString(ConnectionStartProperties.VERSION_0_8);
+ _clientProduct = _clientProperties.getString(ConnectionStartProperties.PRODUCT);
String clientId = _clientProperties.getString(ConnectionStartProperties.CLIENT_ID_0_8);
if (clientId != null)
@@ -1116,7 +1118,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
setContextKey(new AMQShortString(clientId));
}
- _actor.message(ConnectionMessages.OPEN(clientId, _protocolVersion.toString(), _clientVersion, true, true, true));
+ _actor.message(ConnectionMessages.OPEN(clientId, _protocolVersion.toString(), _clientVersion, _clientProduct, true, true, true, true));
}
}
@@ -1350,6 +1352,12 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
return _clientVersion;
}
+ @Override
+ public String getClientProduct()
+ {
+ return _clientProduct;
+ }
+
public String getPrincipalAsString()
{
return getAuthId();
diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java
index 320875cc97..4cb9767514 100644
--- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java
+++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java
@@ -224,6 +224,12 @@ public class Connection_1_0 implements ConnectionEventListener
}
@Override
+ public String getClientProduct()
+ {
+ return ""; //TODO
+ }
+
+ @Override
public String getPrincipalAsString()
{
return String.valueOf(_conn.getUser());
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java
index ffe25a5cbe..2eccab102b 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/ConnectionLoggingTest.java
@@ -90,18 +90,19 @@ public class ConnectionLoggingTest extends AbstractTestLogging
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 : 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 : Client ID : clientid : Protocol Version : 0-9 : Client Version : 1.2.3_4 : Client Product : product
+ validateConnectionOpen(results, 0, true, true, clientid, true, QpidProperties.getReleaseVersion(), true, QpidProperties.getProductName());
// MESSAGE [con:1(/127.0.0.1:52540)] CON-1001 : Open : Protocol Version : 0-9
- validateConnectionOpen(results, 1, true, false, null, false, null);
+ validateConnectionOpen(results, 1, true, false, null, false, null, false, null);
// MESSAGE [con:1(/127.0.0.1:52540)] CON-1001 : Open
- validateConnectionOpen(results, 2, false, false, null, false, null);
+ validateConnectionOpen(results, 2, false, false, null, false, null, false, null);
}
private void validateConnectionOpen(List<String> results, int positionFromEnd,
- boolean protocolVersionPresent, boolean clientIdOptionPresent, String clientIdValue, boolean clientVersionPresent, String clientVersionValue)
+ boolean protocolVersionPresent, boolean clientIdOptionPresent, String clientIdValue,
+ boolean clientVersionPresent, String clientVersionValue, boolean clientProductPresent, String clientProductValue)
{
String log = getLogMessageFromEnd(results, positionFromEnd);
@@ -119,12 +120,19 @@ public class ConnectionLoggingTest extends AbstractTestLogging
//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 :"));
+ assertEquals("unexpected Client Version option state", clientVersionPresent, fromMessage(log).contains("Client Version :"));
if(clientVersionPresent && clientVersionValue != null)
{
assertTrue("Client version value is not present: " + clientVersionValue, fromMessage(log).contains(clientVersionValue));
}
+
+ assertEquals("unexpected Client Product option state", clientVersionPresent, fromMessage(log).contains("Client Product :"));
+
+ if(clientProductPresent && clientProductValue != null)
+ {
+ assertTrue("Client product value is not present: " + clientProductValue, fromMessage(log).contains(clientProductValue));
+ }
}
/**