summaryrefslogtreecommitdiff
path: root/java/common
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2011-11-11 10:19:08 +0000
committerRobert Gemmell <robbie@apache.org>2011-11-11 10:19:08 +0000
commit26077f9bb4c93e90e8484b3fbc4847edd3e7bd89 (patch)
treeb2f37757b36298a724083501b9b9ea0380524938 /java/common
parent7f6fa1251db88c5546bf7fba973844512f025eb3 (diff)
downloadqpid-python-26077f9bb4c93e90e8484b3fbc4847edd3e7bd89.tar.gz
QPID-3610: set TCP_NODELAY to true by default, add new system property for changing default, add unit tests for system properties + connection url options.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1200803 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common')
-rw-r--r--java/common/src/main/java/org/apache/qpid/configuration/ClientProperties.java6
-rw-r--r--java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java5
-rw-r--r--java/common/src/test/java/org/apache/qpid/transport/ConnectionSettingsTest.java49
3 files changed, 59 insertions, 1 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/configuration/ClientProperties.java b/java/common/src/main/java/org/apache/qpid/configuration/ClientProperties.java
index 62ded5b2d8..88e2fb0176 100644
--- a/java/common/src/main/java/org/apache/qpid/configuration/ClientProperties.java
+++ b/java/common/src/main/java/org/apache/qpid/configuration/ClientProperties.java
@@ -102,6 +102,12 @@ public class ClientProperties
*/
public static final int DEFAULT_SYNC_OPERATION_TIMEOUT = 60000;
+ /**
+ * System properties to change the default value used for TCP_NODELAY
+ */
+ public static final String QPID_TCP_NODELAY_PROP_NAME = "qpid.tcp_nodelay";
+ public static final String AMQJ_TCP_NODELAY_PROP_NAME = "amqj.tcp_nodelay";
+
/*
public static final QpidProperty<Boolean> IGNORE_SET_CLIENTID_PROP_NAME =
QpidProperty.booleanProperty(false,"qpid.ignore_set_client_id","ignore_setclientID");
diff --git a/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java b/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java
index 37a8e594c0..2ee507e2ec 100644
--- a/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java
+++ b/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java
@@ -22,6 +22,8 @@ package org.apache.qpid.transport;
import java.util.Map;
+import org.apache.qpid.configuration.ClientProperties;
+
/**
* A ConnectionSettings object can only be associated with
* one Connection object. I have added an assertion that will
@@ -38,7 +40,8 @@ public class ConnectionSettings
String username = "guest";
String password = "guest";
int port = 5672;
- boolean tcpNodelay = Boolean.getBoolean("amqj.tcp_nodelay");
+ boolean tcpNodelay = Boolean.valueOf(System.getProperty(ClientProperties.QPID_TCP_NODELAY_PROP_NAME,
+ System.getProperty(ClientProperties.AMQJ_TCP_NODELAY_PROP_NAME, "true")));
int maxChannelCount = 32767;
int maxFrameSize = 65535;
int heartbeatInterval;
diff --git a/java/common/src/test/java/org/apache/qpid/transport/ConnectionSettingsTest.java b/java/common/src/test/java/org/apache/qpid/transport/ConnectionSettingsTest.java
new file mode 100644
index 0000000000..62ca0b70ba
--- /dev/null
+++ b/java/common/src/test/java/org/apache/qpid/transport/ConnectionSettingsTest.java
@@ -0,0 +1,49 @@
+package org.apache.qpid.transport;
+
+import org.apache.qpid.configuration.ClientProperties;
+import org.apache.qpid.test.utils.QpidTestCase;
+
+public class ConnectionSettingsTest extends QpidTestCase
+{
+ ConnectionSettings _conConnectionSettings;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ _conConnectionSettings = new ConnectionSettings();
+ }
+
+ public void testDefaultTCP_NODELAY()
+ {
+ assertTrue("Default for isTcpNodelay() should be true", _conConnectionSettings.isTcpNodelay());
+ }
+
+ public void testSystemPropertyOverrideTrueForTCP_NODELAY()
+ {
+ systemPropertyOverrideForTCP_NODELAYImpl(ClientProperties.QPID_TCP_NODELAY_PROP_NAME, true);
+ }
+
+ public void testSystemPropertyOverrideFalseForTCP_NODELAY()
+ {
+ systemPropertyOverrideForTCP_NODELAYImpl(ClientProperties.QPID_TCP_NODELAY_PROP_NAME, false);
+ }
+
+ public void testLegacySystemPropertyOverrideTrueForTCP_NODELAY()
+ {
+ systemPropertyOverrideForTCP_NODELAYImpl(ClientProperties.AMQJ_TCP_NODELAY_PROP_NAME, true);
+ }
+
+ public void testLegacySystemPropertyOverrideFalseForTCP_NODELAY()
+ {
+ systemPropertyOverrideForTCP_NODELAYImpl(ClientProperties.AMQJ_TCP_NODELAY_PROP_NAME, false);
+ }
+
+ private void systemPropertyOverrideForTCP_NODELAYImpl(String propertyName, boolean value)
+ {
+ //set the default via system property
+ setTestSystemProperty(propertyName, String.valueOf(value));
+
+ _conConnectionSettings = new ConnectionSettings();
+ assertEquals("Value for isTcpNodelay() is incorrect", value, _conConnectionSettings.isTcpNodelay());
+ }
+}