summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-02-21 10:52:21 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-02-21 10:52:21 +0000
commita45f27637fd3b2ca1f83dd86d73c76d43bbe427f (patch)
treee489bdf15c5a95dc4f86dea5582eb9f0b226de3b
parent7e6f4149a73c4347475caa362f50e4e97d697e2d (diff)
downloadqpid-python-a45f27637fd3b2ca1f83dd86d73c76d43bbe427f.tar.gz
QPID-5574 : Allow sync-publish to override default behaviour to make persistent non-tarnsacted messages non-synchronous
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1570522 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java10
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java11
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java9
3 files changed, 22 insertions, 8 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 f8af2d388e..e83fc24fcd 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
@@ -58,7 +58,7 @@ 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 _syncPublish = Boolean.parseBoolean(System.getProperty("qpid.sync_publish", "false"));
+ private Boolean _syncPublish;
private int _maxSessions = Integer.getInteger("qpid.max_sessions", 0);
private int _maxPrefetch;
private String _keyStorePath;
@@ -138,6 +138,10 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection
_remoteHost = remoteHost;
_ssl = ssl;
_maxSessions = maxSessions;
+ if(! "".equals(System.getProperty("qpid.sync_publish","")))
+ {
+ _syncPublish = Boolean.getBoolean("qpid.sync_publish");
+ }
}
public ConnectionImpl createConnection() throws JMSException
@@ -239,7 +243,7 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection
String remoteHost;
boolean binaryMessageId = true;
- boolean syncPublish;
+ Boolean syncPublish;
int maxSessions;
public boolean ssl;
public int maxPrefetch;
@@ -539,7 +543,7 @@ public class ConnectionFactoryImpl implements ConnectionFactory, TopicConnection
_useBinaryMessageId = useBinaryMessageId;
}
- public void setSyncPublish(boolean syncPublish)
+ 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 7ce445a9b2..36bbba0897 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
@@ -62,7 +62,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 Boolean _syncPublish;
private int _maxSessions;
private int _maxPrefetch;
@@ -141,6 +141,11 @@ public class ConnectionImpl implements Connection, QueueConnection, TopicConnect
_remoteHost = remoteHost;
_sslContext = sslContext;
_maxSessions = maxSessions;
+
+ if(! "".equals(System.getProperty("qpid.sync_publish","")))
+ {
+ _syncPublish = Boolean.getBoolean("qpid.sync_publish");
+ }
}
private void connect() throws JMSException
@@ -629,12 +634,12 @@ public class ConnectionImpl implements Connection, QueueConnection, TopicConnect
return _useBinaryMessageId;
}
- void setSyncPublish(boolean syncPublish)
+ void setSyncPublish(Boolean syncPublish)
{
_syncPublish = syncPublish;
}
- boolean 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 b12540d597..9e03f43a08 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
@@ -55,12 +55,14 @@ public class MessageProducerImpl implements MessageProducer, QueueSender, TopicP
private SessionImpl _session;
private Sender _sender;
private boolean _closed;
- private boolean _syncPublish = Boolean.getBoolean("qpid.sync_publish");
+ private Boolean _syncPublish;
+
private long _syncPublishTimeout = Long.getLong("qpid.sync_publish_timeout", 30000l);
protected MessageProducerImpl(final Destination destination,
final SessionImpl session) throws JMSException
{
+
if(destination instanceof DestinationImpl)
{
_destination = (DestinationImpl) destination;
@@ -305,7 +307,10 @@ public class MessageProducerImpl implements MessageProducer, QueueSender, TopicP
final org.apache.qpid.amqp_1_0.client.Message clientMessage = new org.apache.qpid.amqp_1_0.client.Message(msg.getSections());
DispositionAction action = null;
- final boolean doSync = _syncPublish || (deliveryMode == DeliveryMode.PERSISTENT && _session.getTxn() == null);
+ final boolean doSync = Boolean.TRUE.equals(_syncPublish)
+ || (deliveryMode == DeliveryMode.PERSISTENT
+ && _session.getTxn() == null
+ && !Boolean.FALSE.equals(_syncPublish));
if(doSync)
{
action = new DispositionAction(_sender);