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]

Reply via email to