Author: pmouawad
Date: Tue Oct 25 20:34:25 2011
New Revision: 1188896
URL: http://svn.apache.org/viewvc?rev=1188896&view=rev
Log:
Bug 52088 - JMS Sampler : Add a selector when REQUEST / RESPONSE is chosen
Modified:
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSSamplerGui.java
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/Receiver.java
jakarta/jmeter/trunk/xdocs/changes.xml
Modified:
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSSamplerGui.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSSamplerGui.java?rev=1188896&r1=1188895&r2=1188896&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSSamplerGui.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSSamplerGui.java
Tue Oct 25 20:34:25 2011
@@ -55,6 +55,8 @@ public class JMSSamplerGui extends Abstr
private JLabeledTextField timeout = new
JLabeledTextField(JMeterUtils.getResString("jms_timeout")); //$NON-NLS-1$
+ private JLabeledTextField jmsSelector = new
JLabeledTextField(JMeterUtils.getResString("jms_selector")); //$NON-NLS-1$
+
private JLabeledTextArea soapXml = new
JLabeledTextArea(JMeterUtils.getResString("jms_msg_content")); //$NON-NLS-1$
private JLabeledTextField initialContextFactory = new JLabeledTextField(
@@ -92,6 +94,7 @@ public class JMSSamplerGui extends Abstr
receiveQueue.setText(""); // $NON-NLS-1$
((JComboBox)
oneWay.getComponentList().get(1)).setSelectedItem(JMeterUtils.getResString("jms_request"));
//$NON-NLS-1$
timeout.setText(""); // $NON-NLS-1$
+ jmsSelector.setText(""); // $NON-NLS-1$
soapXml.setText(""); // $NON-NLS-1$
initialContextFactory.setText(""); // $NON-NLS-1$
providerUrl.setText(""); // $NON-NLS-1$
@@ -118,6 +121,7 @@ public class JMSSamplerGui extends Abstr
element.setUseReqMsgIdAsCorrelId(useReqMsgIdAsCorrelId.isSelected());
element.setUseResMsgIdAsCorrelId(useResMsgIdAsCorrelId.isSelected());
element.setTimeout(timeout.getText());
+ element.setJMSSelector(jmsSelector.getText());
element.setContent(soapXml.getText());
element.setInitialContextFactory(initialContextFactory.getText());
@@ -164,6 +168,7 @@ public class JMSSamplerGui extends Abstr
useResMsgIdAsCorrelId.setSelected(sampler.isUseResMsgIdAsCorrelId());
timeout.setText(sampler.getTimeout());
+ jmsSelector.setText(sampler.getJMSSelector());
soapXml.setText(sampler.getContent());
initialContextFactory.setText(sampler.getInitialContextFactory());
providerUrl.setText(sampler.getContextProvider());
@@ -199,7 +204,8 @@ public class JMSSamplerGui extends Abstr
jmsQueueingPanel.add(sendQueuePanel, BorderLayout.CENTER);
JPanel receiveQueuePanel = new JPanel(new BorderLayout(5, 0));
- receiveQueuePanel.add(receiveQueue);
+ receiveQueuePanel.add(jmsSelector,BorderLayout.EAST);
+ receiveQueuePanel.add(receiveQueue,BorderLayout.WEST);
jmsQueueingPanel.add(receiveQueuePanel, BorderLayout.SOUTH);
JPanel messagePanel = new JPanel(new BorderLayout());
Modified:
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java?rev=1188896&r1=1188895&r2=1188896&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java
Tue Oct 25 20:34:25 2011
@@ -72,6 +72,10 @@ public class JMSSampler extends Abstract
private static final String TIMEOUT = "JMSSampler.timeout"; // $NON-NLS-1$
+ private static final String JMS_SELECTOR = "JMSSampler.jmsSelector"; //
$NON-NLS-1$
+
+ private static final String JMS_SELECTOR_DEFAULT = ""; // $NON-NLS-1$
+
private static final String IS_ONE_WAY = "JMSSampler.isFireAndForget"; //
$NON-NLS-1$
private static final String JMS_PROPERTIES = "arguments"; // $NON-NLS-1$
@@ -325,7 +329,7 @@ public class JMSSampler extends Abstract
if (!useTemporyQueue()) {
receiveQueue = (Queue) context.lookup(getReceiveQueue());
receiverThread = Receiver.createReceiver(factory,
receiveQueue, getPrincipal(context), getCredentials(context)
- , isUseResMsgIdAsCorrelId());
+ , isUseResMsgIdAsCorrelId(), getJMSSelector());
}
String principal = null;
@@ -487,6 +491,20 @@ public class JMSSampler extends Abstract
}
/**
+ * @return String JMS Selector
+ */
+ public String getJMSSelector() {
+ return getPropertyAsString(JMSSampler.JMS_SELECTOR,
JMS_SELECTOR_DEFAULT);
+ }
+
+ /**
+ * @param selector String selector
+ */
+ public void setJMSSelector(String selector) {
+ setProperty(JMSSampler.JMS_SELECTOR, selector, JMS_SELECTOR_DEFAULT);
+ }
+
+ /**
* @param string
*/
public void setInitialContextFactory(String string) {
@@ -525,5 +543,4 @@ public class JMSSampler extends Abstract
Hashtable<?,?> env = context.getEnvironment();
return (String) env.get("java.naming.security.credentials"); //
$NON-NLS-1$
}
-
}
Modified:
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/Receiver.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/Receiver.java?rev=1188896&r1=1188895&r2=1188896&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/Receiver.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/Receiver.java
Tue Oct 25 20:34:25 2011
@@ -26,6 +26,7 @@ import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
+import org.apache.commons.lang.StringUtils;
import org.apache.jmeter.protocol.jms.Utils;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
@@ -47,7 +48,18 @@ public class Receiver implements Runnabl
private final boolean useResMsgIdAsCorrelId;
- private Receiver(ConnectionFactory factory, Destination receiveQueue,
String principal, String credentials, boolean useResMsgIdAsCorrelId) throws
JMSException {
+
+ /**
+ * Constructor
+ * @param factory
+ * @param receiveQueue Receive Queue
+ * @param principal Username
+ * @param credentials Password
+ * @param useResMsgIdAsCorrelId
+ * @param jmsSelector JMS Selector
+ * @throws JMSException
+ */
+ private Receiver(ConnectionFactory factory, Destination receiveQueue,
String principal, String credentials, boolean useResMsgIdAsCorrelId, String
jmsSelector) throws JMSException {
if (null != principal && null != credentials) {
log.info("creating receiver WITH authorisation credentials.
UseResMsgId="+useResMsgIdAsCorrelId);
conn = factory.createConnection(principal, credentials);
@@ -56,7 +68,14 @@ public class Receiver implements Runnabl
conn = factory.createConnection();
}
session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
- consumer = session.createConsumer(receiveQueue);
+ if(log.isDebugEnabled()) {
+ log.debug("Receiver - ctor. Creating consumer with JMS
Selector:"+jmsSelector);
+ }
+ if(StringUtils.isEmpty(jmsSelector)) {
+ consumer = session.createConsumer(receiveQueue);
+ } else {
+ consumer = session.createConsumer(receiveQueue, jmsSelector);
+ }
this.useResMsgIdAsCorrelId = useResMsgIdAsCorrelId;
log.debug("Receiver - ctor. Starting connection now");
conn.start();
@@ -71,13 +90,14 @@ public class Receiver implements Runnabl
* @param principal
* @param credentials
* @param useResMsgIdAsCorrelId true if should use JMSMessageId, false if
should use JMSCorrelationId
+ * @param jmsSelector JMS selector
* @return the Receiver which will process the responses
* @throws JMSException
*/
public static Receiver createReceiver(ConnectionFactory factory,
Destination receiveQueue,
- String principal, String credentials, boolean
useResMsgIdAsCorrelId)
+ String principal, String credentials, boolean
useResMsgIdAsCorrelId, String jmsSelector)
throws JMSException {
- Receiver receiver = new Receiver(factory, receiveQueue, principal,
credentials, useResMsgIdAsCorrelId);
+ Receiver receiver = new Receiver(factory, receiveQueue, principal,
credentials, useResMsgIdAsCorrelId, jmsSelector);
Thread thread = new Thread(receiver,
Thread.currentThread().getName()+"-JMS-Receiver");
thread.start();
return receiver;
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1188896&r1=1188895&r2=1188896&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Tue Oct 25 20:34:25 2011
@@ -147,6 +147,7 @@ Mirror server now uses default port 8081
<h3>Other samplers</h3>
<ul>
<li>Bug 51419 - JMS Subscriber: ability to use Selectors</li>
+<li>Bug 52088 - JMS Sampler : Add a selector when REQUEST / RESPONSE is
chosen</li>
</ul>
<h3>Controllers</h3>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]