diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2013-09-25 14:45:07 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2013-09-25 14:45:07 +0000 |
| commit | cd0a8df21359bcff03fc718cdf716c3ce47f7826 (patch) | |
| tree | b15525932ac06efe403248e0034d8175768f46b9 /qpid/java | |
| parent | cd25f3ac47bb90e2c95aaafc45816f8013c0dc49 (diff) | |
| download | qpid-python-cd0a8df21359bcff03fc718cdf716c3ce47f7826.tar.gz | |
QPID-5167 : Allow sync_publish flag to be controlled from the ConnectionFactory connection string (patch from dingham@microsoft.com)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1526195 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
3 files changed, 29 insertions, 1 deletions
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java index fccee73595..a97f4dc0bf 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java @@ -33,6 +33,7 @@ import javax.jms.TopicConnection; import javax.jms.TopicConnectionFactory; import org.apache.qpid.amqp_1_0.jms.ConnectionFactory; + public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnectionFactory, QueueConnectionFactory { private String _host; @@ -45,7 +46,9 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection private String _queuePrefix; private String _topicPrefix; - private boolean _useBinaryMessageId = Boolean.parseBoolean(System.getProperty("qpid.use_binary_message_id", "true"));; + private boolean _useBinaryMessageId = Boolean.parseBoolean(System.getProperty("qpid.use_binary_message_id", "true")); + private boolean _syncPublish = Boolean.parseBoolean(System.getProperty("qpid.sync_publish", "false")); + public ConnectionFactoryImpl(final String host, final int port, @@ -102,6 +105,7 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection connection.setQueuePrefix(_queuePrefix); connection.setTopicPrefix(_topicPrefix); connection.setUseBinaryMessageId(_useBinaryMessageId); + connection.setSyncPublish(_syncPublish); return connection; } @@ -153,6 +157,7 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection String remoteHost = null; boolean binaryMessageId = true; + boolean syncPublish = false; if(userInfo != null) { @@ -185,6 +190,10 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection { binaryMessageId = Boolean.parseBoolean(keyValuePair[1]); } + else if (keyValuePair[0].equalsIgnoreCase("sync-publish")) + { + syncPublish = Boolean.parseBoolean(keyValuePair[1]); + } } } @@ -196,6 +205,7 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection ConnectionFactoryImpl connectionFactory = new ConnectionFactoryImpl(host, port, username, password, clientId, remoteHost, ssl); connectionFactory.setUseBinaryMessageId(binaryMessageId); + connectionFactory.setSyncPublish(syncPublish); return connectionFactory; @@ -253,4 +263,9 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection { _useBinaryMessageId = useBinaryMessageId; } + + public void setSyncPublish(boolean syncPublish) + { + _syncPublish = syncPublish; + } } diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java index 4505abb36e..f253f8d0ab 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java @@ -28,7 +28,9 @@ import org.apache.qpid.amqp_1_0.transport.Container; import javax.jms.*; import javax.jms.IllegalStateException; import javax.jms.Queue; + import java.util.*; + import org.apache.qpid.amqp_1_0.type.Symbol; import org.apache.qpid.amqp_1_0.type.transport.*; import org.apache.qpid.amqp_1_0.type.transport.Error; @@ -57,6 +59,7 @@ public class ConnectionImpl implements Connection, QueueConnection, TopicConnect private String _queuePrefix; private String _topicPrefix; private boolean _useBinaryMessageId = Boolean.parseBoolean(System.getProperty("qpid.use_binary_message_id", "true")); + private boolean _syncPublish = Boolean.parseBoolean(System.getProperty("qpid.sync_publish", "false")); private static enum State { @@ -521,5 +524,14 @@ public class ConnectionImpl implements Connection, QueueConnection, TopicConnect return _useBinaryMessageId; } + void setSyncPublish(boolean syncPublish) + { + _syncPublish = syncPublish; + } + + boolean syncPublish() + { + return _syncPublish; + } } diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java index dd85613a13..648a91f20f 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java @@ -64,6 +64,7 @@ public class MessageProducerImpl implements MessageProducer, QueueSender, TopicP } _session = session; + _syncPublish = session.getConnection().syncPublish(); if(_destination != null) { |
