You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/01/31 21:42:02 UTC

svn commit: r501981 - in /jakarta/jmeter/branches/rel-2-2: src/core/org/apache/jmeter/resources/ src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/ src/protocol/tcp/org/apache/jmeter/protocol/tcp/control/gui/ src/protocol/tcp/org/apache/jmeter...

Author: sebb
Date: Wed Jan 31 12:42:01 2007
New Revision: 501981

URL: http://svn.apache.org/viewvc?view=rev&rev=501981
Log:
Bug 41457 - Add TCP Sampler option to not re-use connections

Modified:
    jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties
    jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.java
    jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/control/gui/TCPSamplerGui.java
    jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java
    jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml

Modified: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties?view=diff&rev=501981&r1=501980&r2=501981
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties Wed Jan 31 12:42:01 2007
@@ -563,6 +563,7 @@
 resultsaver_prefix=Filename prefix\:
 resultsaver_title=Save Responses to a file
 retobj=Return object
+reuseconnection=Re-use connection
 root=Root
 root_title=Root
 run=Run

Modified: jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.java?view=diff&rev=501981&r1=501980&r2=501981
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/config/gui/TCPConfigGui.java Wed Jan 31 12:42:01 2007
@@ -39,7 +39,9 @@
 public class TCPConfigGui extends AbstractConfigGui {
 	private final static String SERVER = "server"; //$NON-NLS-1$
 
-	private final static String PORT = "port"; //$NON-NLS-1$   
+	private final static String RE_USE_CONNECTION = "reUseConnection"; //$NON-NLS-1$
+
+	private final static String PORT = "port"; //$NON-NLS-1$
 
 	// NOTUSED yet private final static String FILENAME = "filename";
 	// //$NON-NLS-1$
@@ -51,6 +53,8 @@
 
 	private JTextField server;
 
+    private JCheckBox reUseConnection;
+
 	private JTextField port;
 
 	// NOTUSED yet private JTextField filename;
@@ -78,6 +82,8 @@
 	public void configure(TestElement element) {
 		super.configure(element);
 		server.setText(element.getPropertyAsString(TCPSampler.SERVER));
+		// Default to original behaviour, i.e. re-use connection
+		reUseConnection.setSelected(element.getPropertyAsBoolean(TCPSampler.RE_USE_CONNECTION,true));
 		port.setText(element.getPropertyAsString(TCPSampler.PORT));
 		// filename.setText(element.getPropertyAsString(TCPSampler.FILENAME));
 		timeout.setText(element.getPropertyAsString(TCPSampler.TIMEOUT));
@@ -99,6 +105,7 @@
 	public void modifyTestElement(TestElement element) {
 		configureTestElement(element);
 		element.setProperty(TCPSampler.SERVER, server.getText());
+		element.setProperty(TCPSampler.RE_USE_CONNECTION, JOrphanUtils.booleanToString(reUseConnection.isSelected()));
 		element.setProperty(TCPSampler.PORT, port.getText());
 		// element.setProperty(TCPSampler.FILENAME, filename.getText());
 		element.setProperty(TCPSampler.NODELAY, JOrphanUtils.booleanToString(setNoDelay.isSelected()));
@@ -145,6 +152,19 @@
 		return serverPanel;
 	}
 
+	private JPanel createClosePortPanel() {
+        JLabel label = new JLabel(JMeterUtils.getResString("reUseConnection"));
+
+        reUseConnection = new JCheckBox("", true);
+		reUseConnection.setName(RE_USE_CONNECTION);
+		label.setLabelFor(reUseConnection);
+
+		JPanel closePortPanel = new JPanel(new BorderLayout(5, 0));
+		closePortPanel.add(label, BorderLayout.WEST);
+		closePortPanel.add(reUseConnection, BorderLayout.CENTER);
+		return closePortPanel;
+	}
+
 	private JPanel createPortPanel() {
 		JLabel label = new JLabel(JMeterUtils.getResString("tcp_port"));
 
@@ -197,6 +217,7 @@
 
 		VerticalPanel mainPanel = new VerticalPanel();
 		mainPanel.add(createServerPanel());
+		mainPanel.add(createClosePortPanel());
 		mainPanel.add(createPortPanel());
 		mainPanel.add(createTimeoutPanel());
 		mainPanel.add(createNoDelayPanel());

Modified: jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/control/gui/TCPSamplerGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/control/gui/TCPSamplerGui.java?view=diff&rev=501981&r1=501980&r2=501981
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/control/gui/TCPSamplerGui.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/control/gui/TCPSamplerGui.java Wed Jan 31 12:42:01 2007
@@ -61,8 +61,8 @@
 	 */
 	public void modifyTestElement(TestElement sampler) {
 		sampler.clear();
-		((TCPSampler) sampler).addTestElement(TcpDefaultPanel.createTestElement());
-		((TCPSampler) sampler).addTestElement(loginPanel.createTestElement());
+        sampler.addTestElement(TcpDefaultPanel.createTestElement());
+		sampler.addTestElement(loginPanel.createTestElement());
 		this.configureTestElement(sampler);
 	}
 

Modified: jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java?view=diff&rev=501981&r1=501980&r2=501981
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java Wed Jan 31 12:42:01 2007
@@ -60,6 +60,8 @@
 
 	public final static String REQUEST = "TCPSampler.request"; //$NON-NLS-1$
 
+	public final static String RE_USE_CONNECTION = "TCPSampler.reUseConnection"; //$NON-NLS-1$
+
 	private final static String TCPKEY = "TCP"; //$NON-NLS-1$ key for HashMap
 
 	private final static String ERRKEY = "ERR"; //$NON-NLS-1$ key for HashMap
@@ -121,10 +123,13 @@
 
 	private Socket getSocket() {
 		Map cp = (Map) tp.get();
-		Socket con = (Socket) cp.get(TCPKEY);
-		if (con != null) {
-			log.debug(this + " Reusing connection " + con); //$NON-NLS-1$
-			return con;
+		Socket con = null;
+		if (isReUseConnection()) {
+			con = (Socket) cp.get(TCPKEY);
+			if (con != null) {
+				log.debug(this + " Reusing connection " + con); //$NON-NLS-1$
+				return con;
+			}
 		}
 
 		// Not in cache, so create new one and cache it
@@ -162,6 +167,14 @@
 		return getPropertyAsString(SERVER);
 	}
 
+	public void setReUseConnection(String newServer) {
+		this.setProperty(RE_USE_CONNECTION, newServer);
+	}
+
+	public boolean isReUseConnection() {
+		return getPropertyAsBoolean(RE_USE_CONNECTION);
+	}
+
 	public void setPort(String newFilename) {
 		this.setProperty(PORT, newFilename);
 	}
@@ -306,14 +319,17 @@
     
     		// Set if we were successful or not
     		res.setSuccessful(isSuccessful);
+
+			if (!isReUseConnection()) {
+				closeSocket();
+			}
         }
 
 		return res;
 	}
 
-    /**
-	 * @param rc
-	 *            response code
+	/**
+	 * @param rc response code
 	 * @return whether this represents success or not
 	 */
 	private boolean checkResponseCode(String rc) {

Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=501981&r1=501980&r2=501981
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Wed Jan 31 12:42:01 2007
@@ -49,6 +49,7 @@
 <li>Bug 40804 - Change Counter default to max = Long.MAX_VALUE</li>
 <li>BeanShell Post-Processor no longer ignores samples with zero-length result data</li>
 <li>Use property jmeter.home (if present) to override user.dir when starting JMeter</li>
+<li>Bug 41457 - Add TCP Sampler option to not re-use connections</li>
 </ul>
 
 <h4>Bug fixes:</h4>



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org