Author: rgodfrey
Date: Tue May 14 21:50:33 2013
New Revision: 1482609
URL: http://svn.apache.org/r1482609
Log:
QPID-4844 : [JMS AMQP 1.0] Allow option to use String rather than Binary values
for generated message-ids
Modified:
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
Modified:
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java?rev=1482609&r1=1482608&r2=1482609&view=diff
==============================================================================
---
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
(original)
+++
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java
Tue May 14 21:50:33 2013
@@ -45,6 +45,7 @@ public class ConnectionFactoryImpl imple
private String _queuePrefix;
private String _topicPrefix;
+ private boolean _useBinaryMessageId;
public ConnectionFactoryImpl(final String host,
final int port,
@@ -100,6 +101,7 @@ public class ConnectionFactoryImpl imple
ConnectionImpl connection = new ConnectionImpl(_host, _port, username,
password, _clientId, _remoteHost, _ssl);
connection.setQueuePrefix(_queuePrefix);
connection.setTopicPrefix(_topicPrefix);
+ connection.setUseBinaryMessageId(_useBinaryMessageId);
return connection;
}
@@ -149,6 +151,9 @@ public class ConnectionFactoryImpl imple
String password = null;
String clientId = null;
String remoteHost = null;
+
+ boolean binaryMessageId = true;
+
if(userInfo != null)
{
String[] components = userInfo.split(":",2);
@@ -161,22 +166,26 @@ public class ConnectionFactoryImpl imple
String query = url.getQuery();
if(query != null)
{
- for(String param : query.split("&"))
- {
- String[] keyValuePair = param.split("=",2);
- if(keyValuePair[0].equalsIgnoreCase("clientid"))
- {
- clientId = keyValuePair[1];
- }
- else if(keyValuePair[0].equalsIgnoreCase("ssl"))
- {
- ssl = Boolean.valueOf(keyValuePair[1]);
- }
- else if(keyValuePair[0].equalsIgnoreCase("remote-host"))
- {
- remoteHost = keyValuePair[1];
- }
- }
+ for(String param : query.split("&"))
+ {
+ String[] keyValuePair = param.split("=",2);
+ if(keyValuePair[0].equalsIgnoreCase("clientid"))
+ {
+ clientId = keyValuePair[1];
+ }
+ else if(keyValuePair[0].equalsIgnoreCase("ssl"))
+ {
+ ssl = Boolean.valueOf(keyValuePair[1]);
+ }
+ else if(keyValuePair[0].equalsIgnoreCase("remote-host"))
+ {
+ remoteHost = keyValuePair[1];
+ }
+ else if (keyValuePair[0].equalsIgnoreCase("binary-messageid"))
+ {
+ binaryMessageId = Boolean.parseBoolean(keyValuePair[1]);
+ }
+ }
}
if(remoteHost == null)
@@ -184,7 +193,11 @@ public class ConnectionFactoryImpl imple
remoteHost = host;
}
- return new ConnectionFactoryImpl(host, port, username, password,
clientId, remoteHost, ssl);
+ ConnectionFactoryImpl connectionFactory =
+ new ConnectionFactoryImpl(host, port, username, password,
clientId, remoteHost, ssl);
+ connectionFactory.setUseBinaryMessageId(binaryMessageId);
+
+ return connectionFactory;
}
@@ -235,4 +248,9 @@ public class ConnectionFactoryImpl imple
{
_queuePrefix = queuePrefix;
}
+
+ public void setUseBinaryMessageId(boolean useBinaryMessageId)
+ {
+ _useBinaryMessageId = useBinaryMessageId;
+ }
}
Modified:
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java?rev=1482609&r1=1482608&r2=1482609&view=diff
==============================================================================
---
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java
(original)
+++
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java
Tue May 14 21:50:33 2013
@@ -56,7 +56,7 @@ public class ConnectionImpl implements C
private String _clientId;
private String _queuePrefix;
private String _topicPrefix;
-
+ private boolean _useBinaryMessageId =
Boolean.parseBoolean(System.getProperty("qpid.use_binary_message_id", "true"));
private static enum State
{
@@ -510,4 +510,15 @@ public class ConnectionImpl implements C
return new DecodedDestination(address, kind);
}
+ void setUseBinaryMessageId(boolean useBinaryMessageId)
+ {
+ _useBinaryMessageId = useBinaryMessageId;
+ }
+
+ boolean useBinaryMessageId()
+ {
+ return _useBinaryMessageId;
+ }
+
+
}
Modified:
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java?rev=1482609&r1=1482608&r2=1482609&view=diff
==============================================================================
---
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
(original)
+++
qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
Tue May 14 21:50:33 2013
@@ -240,7 +240,7 @@ public class MessageProducerImpl impleme
if(!getDisableMessageID() && msg.getMessageId() == null)
{
- final Binary messageId = generateMessageId();
+ final Object messageId = generateMessageId();
msg.setMessageId(messageId);
}
@@ -297,10 +297,11 @@ public class MessageProducerImpl impleme
send((Destination)queue, message, deliveryMode, priority, ttl);
}
- private Binary generateMessageId()
+ private Object generateMessageId()
{
UUID uuid = UUID.randomUUID();
- return new Binary(uuid.toString().getBytes());
+ final String messageIdString = uuid.toString();
+ return _session.getConnection().useBinaryMessageId() ? new
Binary(messageIdString.getBytes()) : messageIdString;
}
public void send(final Destination destination, final Message message)
throws JMSException
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]