summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2013-09-25 14:45:07 +0000
committerRobert Godfrey <rgodfrey@apache.org>2013-09-25 14:45:07 +0000
commitcd0a8df21359bcff03fc718cdf716c3ce47f7826 (patch)
treeb15525932ac06efe403248e0034d8175768f46b9 /qpid/java
parentcd25f3ac47bb90e2c95aaafc45816f8013c0dc49 (diff)
downloadqpid-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')
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java17
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java12
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java1
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)
{