You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by df...@apache.org on 2006/04/27 07:49:15 UTC

svn commit: r397425 - in /incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq: sampler/ sampler/config/gui/ util/connection/

Author: dflores
Date: Wed Apr 26 22:49:13 2006
New Revision: 397425

URL: http://svn.apache.org/viewcvs?rev=397425&view=rev
Log:
Configured Jmeter related files to accomodate SwiftMQ testing, and added radio button for Asynchronous/NonAsynchronous sending

Modified:
    incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Consumer.java
    incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Producer.java
    incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Sampler.java
    incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ConsumerConfigGui.java
    incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ProducerConfigGui.java
    incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/util/connection/ServerConnectionFactory.java

Modified: incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Consumer.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Consumer.java?rev=397425&r1=397424&r2=397425&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Consumer.java (original)
+++ incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Consumer.java Wed Apr 26 22:49:13 2006
@@ -61,6 +61,7 @@
 
     private int batchCounter = 0;
 
+    private static long ID = 0;
     static {
         log.info("Protocol Handler name=" + getClassname());
         log.info("Status prefix=" + STATUS_PREFIX);
@@ -131,15 +132,21 @@
         Connection connection = ServerConnectionFactory.createConnectionFactory(this.getURL(),
                                                                                 this.getMQServer(),
                                                                                 this.getTopic(),
-                                                                                this.getEmbeddedBroker());
+                                                                                this.getAsyncSend());
 
         if (this.getDurable()) {
             if ((ServerConnectionFactory.JORAM_SERVER.equals(this.getMQServer())) ||
                 (ServerConnectionFactory.MANTARAY_SERVER.equals(this.getMQServer()))) {
                 //Id set by server
             } else {
-                IdGenerator idGenerator = new IdGenerator();
-                connection.setClientID(idGenerator.generateId());
+                if ((ServerConnectionFactory.SWIFTMQ_SERVER.equals(this.getMQServer()))) {
+                    ID += 1;
+                    String strId = String.valueOf(ID);
+                    connection.setClientID(strId);
+                } else {
+                    IdGenerator idGenerator = new IdGenerator();
+                    connection.setClientID(idGenerator.generateId());
+                }
             }
         }
 
@@ -191,6 +198,20 @@
                 QueueReceiver receiver = ((QueueSession) session).createReceiver(queue);
                 consumer = (MessageConsumer) receiver;
             }
+        } else if (ServerConnectionFactory.SWIFTMQ_SERVER.equals(this.getMQServer())) {
+            if (this.getTopic()) {
+                Topic topic = (Topic) destination;
+                if (this.getDurable()) {
+                    consumer = ((TopicSession) session).createDurableSubscriber(topic,"durableSubscriber");
+                } else {
+                    consumer = ((TopicSession) session).createSubscriber(topic);
+                }
+            } else {
+                subject = "testqueue@router1";
+                Queue queue = ((QueueSession) session).createQueue(subject);
+                QueueReceiver receiver = ((QueueSession) session).createReceiver(queue);
+                consumer = (MessageConsumer) receiver;
+            }
         } else {
             if (this.getDurable() && this.getTopic()) {
                 consumer = session.createDurableSubscriber((Topic) destination, getClass().getName());
@@ -299,6 +320,8 @@
                 cons.setMQServer(ServerConnectionFactory.JORAM_SERVER);
             } else if (mqServer.equalsIgnoreCase("MANTARAY")) {
                 cons.setMQServer(ServerConnectionFactory.MANTARAY_SERVER);
+            } else if (mqServer.equalsIgnoreCase("SWIFTMQ")) {
+                cons.setMQServer(ServerConnectionFactory.SWIFTMQ_SERVER);
             } else if (mqServer.equalsIgnoreCase("ACTIVEMQ")) {
                 //Run with the default broker
             } else {
@@ -309,6 +332,7 @@
                 System.out.print("OPENJMS | ");
                 System.out.print("JORAM | ");
                 System.out.print("MANTARAY |");
+                System.out.print("SWIFTMQ |");
                 System.out.println("ACTIVEMQ ]");
                 return;
             }

Modified: incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Producer.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Producer.java?rev=397425&r1=397424&r2=397425&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Producer.java (original)
+++ incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Producer.java Wed Apr 26 22:49:13 2006
@@ -156,10 +156,11 @@
         connection = ServerConnectionFactory.createConnectionFactory(this.getURL(),
                                                                      this.getMQServer(),
                                                                      this.getTopic(),
-                                                                     this.getEmbeddedBroker());
+                                                                     this.getAsyncSend());
 
         if (this.getDurable()) {
             if ((ServerConnectionFactory.JORAM_SERVER.equals(this.getMQServer()))||
+                (ServerConnectionFactory.SWIFTMQ_SERVER.equals(this.getMQServer()))||
                 (ServerConnectionFactory.MANTARAY_SERVER.equals(this.getMQServer()))) {
                 //Id set be server
 
@@ -195,7 +196,13 @@
             }
 
         } else {
+            if((ServerConnectionFactory.SWIFTMQ_SERVER.equals(this.getMQServer())) && !this.getTopic()){
+                Queue strQ = session.createQueue("testqueue@router1");
+                QueueSender queuePublisher = ((QueueSession)session).createSender(strQ);
+                publisher = queuePublisher;
+            } else {
             publisher = session.createProducer(destination);
+            }
         }
 
         long msgIntervalInMins = this.getMsgInterval();
@@ -438,6 +445,8 @@
                 prod.setMQServer(ServerConnectionFactory.JORAM_SERVER);
             } else if (mqServer.equalsIgnoreCase("MANTARAY")) {
                 prod.setMQServer(ServerConnectionFactory.MANTARAY_SERVER);
+            } else if (mqServer.equalsIgnoreCase("SWIFTMQ")) {
+                prod.setMQServer(ServerConnectionFactory.SWIFTMQ_SERVER);
             } else if (mqServer.equalsIgnoreCase("ACTIVEMQ")) {
                 //Run with the default broker
             } else {
@@ -448,6 +457,7 @@
                 System.out.print("OPENJMS | " );
                 System.out.print("JORAM |");
                 System.out.print("MANTARAY |");
+                System.out.print("SWIFTMQ |");
                 System.out.println("ACTIVEMQ ]");
             }
 

Modified: incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Sampler.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Sampler.java?rev=397425&r1=397424&r2=397425&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Sampler.java (original)
+++ incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/Sampler.java Wed Apr 26 22:49:13 2006
@@ -56,6 +56,7 @@
     public static final String MSGINTERVAL = "Sampler.msginterval";
     public static final String TRANSACTED = "Sampler.transacted";
     public static final String BATCHSIZE = "Sampler.batchsize";
+    public static final String ASYNC_SEND = "Sampler.async_send";
     public static final String CONFIG_SUBJECT = "TOOL.DEFAULT.CONFIG";
     public static final String CONFIRM_SUBJECT = "TOOL.DEFAULT.CONFIRM";
     public static final String PUBLISH_MSG = "true";
@@ -435,6 +436,20 @@
      */
     protected int getBatchSize() {
         return getPropertyAsInt(BATCHSIZE);
+    }
+
+    /**
+     * @return Returns whether to use Asynchronous Send.
+     */
+    protected boolean getAsyncSend() {
+        return getPropertyAsBoolean(ASYNC_SEND);
+    }
+
+    /**
+     * @param newAsyncSend - when to use Asynchronous Send.
+     */
+    protected void setAsyncSend(String newAsyncSend) {
+        this.setProperty(ASYNC_SEND, newAsyncSend);
     }
 
     /**

Modified: incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ConsumerConfigGui.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ConsumerConfigGui.java?rev=397425&r1=397424&r2=397425&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ConsumerConfigGui.java (original)
+++ incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ConsumerConfigGui.java Wed Apr 26 22:49:13 2006
@@ -60,9 +60,12 @@
     private static final String OPENJMS_SERVER = JMeterUtils.getResString("openjms_server");
     private static final String JORAM_SERVER = JMeterUtils.getResString("joram_server");
     private static final String MANTARAY_SERVER = JMeterUtils.getResString("mantaray_server");
+    private static final String SWIFTMQ_SERVER = JMeterUtils.getResString("swiftmq_server");
     private static final String TRANSACTED = "transacted";
     private static final String NONTRANSACTED = "nontransacted";
     private static final String BATCHSIZE = "batchsize";
+    private static final String ASYNC_SEND = "async_send";
+    private static final String NON_ASYNC_SEND = "non_async_send";
 
     private JTextField setURL;
     private JTextField setDuration;
@@ -78,6 +81,8 @@
     private JRadioButton setTransacted;
     private JRadioButton setNonTransacted;
     private JTextField setBatchSize;
+    private JRadioButton setAsyncSend;
+    private JRadioButton setNonAsyncSend;
 
     private boolean displayName = true;
 
@@ -165,6 +170,19 @@
                 setBatchSize.setText("");
             }
         }
+        if (element.getProperty(Consumer.ASYNC_SEND) == null) {
+            setAsyncSend.setSelected(true);
+            setNonAsyncSend.setSelected(false);
+
+        } else {
+            if (element.getPropertyAsBoolean(Consumer.ASYNC_SEND)) {
+                setAsyncSend.setSelected(true);
+                setNonAsyncSend.setSelected(false);
+            } else {
+                setAsyncSend.setSelected(false);
+                setNonAsyncSend.setSelected(true);
+            }
+        }
     }
 
     /**
@@ -197,6 +215,7 @@
         element.setProperty(Consumer.MQSERVER, setMQServer.getSelectedItem().toString());
         element.setProperty(Consumer.TRANSACTED, JOrphanUtils.booleanToString(setTransacted.isSelected()));
         element.setProperty(Consumer.BATCHSIZE, setBatchSize.getText());
+        element.setProperty(Consumer.ASYNC_SEND, JOrphanUtils.booleanToString(setAsyncSend.isSelected()));
     }
 
     /**
@@ -398,7 +417,8 @@
                               TIBCOMQ_SERVER,
                               OPENJMS_SERVER,
                               JORAM_SERVER,
-                              MANTARAY_SERVER};
+                              MANTARAY_SERVER,
+                              SWIFTMQ_SERVER};
 
         JLabel label = new JLabel(JMeterUtils.getResString("form_mq_servers"));
         setMQServer = new JComboBox(mqServers);
@@ -479,6 +499,57 @@
     }
 
     /**
+     * Creates the Asynchronous Send Panel.
+     *
+     * @return asyncSendPanel
+     */
+    private JPanel createAsyncSendPanel() {
+        JLabel labelSendType = new JLabel(JMeterUtils.getResString("form_msg_send_type"));
+
+        //create Async Send Type
+        JLabel labelAsyncSend = new JLabel(JMeterUtils.getResString("form_async_send"));
+        setAsyncSend = new JRadioButton();
+        setAsyncSend.setName(ASYNC_SEND);
+        labelAsyncSend.setLabelFor(setAsyncSend);
+        setAsyncSend.setActionCommand(ASYNC_SEND);
+        setAsyncSend.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent evt) {
+                jRadioActionPerformedSendType(evt);
+            }
+        });
+        setAsyncSend.setSelected(true);
+
+        //create Non Async Send Type
+        JLabel labelNonAsyncSend = new JLabel(JMeterUtils.getResString("form_non_async_send"));
+        setNonAsyncSend = new JRadioButton();
+        setNonAsyncSend.setName(NON_ASYNC_SEND);
+        labelNonAsyncSend.setLabelFor(setNonAsyncSend);
+        setNonAsyncSend.setActionCommand(NON_ASYNC_SEND);
+        setNonAsyncSend.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent evt) {
+                jRadioActionPerformedSendType(evt);
+            }
+        });
+
+        setNonAsyncSend.setSelected(false);
+        FlowLayout flow = new FlowLayout(FlowLayout.LEFT);
+        flow.setHgap(0);
+        flow.setVgap(0);
+
+        JPanel sendTypePanel = new JPanel(flow);
+        sendTypePanel.add(labelSendType);
+        sendTypePanel.add(new JLabel("   "));
+        sendTypePanel.add(setAsyncSend);
+        sendTypePanel.add(labelAsyncSend);
+        sendTypePanel.add(new JLabel("   "));
+        sendTypePanel.add(setNonAsyncSend);
+        sendTypePanel.add(labelNonAsyncSend);
+        sendTypePanel.add(new JLabel("   "));
+
+        return sendTypePanel;
+    }
+
+    /**
      * Initializes the gui components.
      */
     private void init() {
@@ -499,6 +570,7 @@
         mainPanel.add(createDurablePanel());
         mainPanel.add(createTopicPanel());
         mainPanel.add(createTransactedPanel());
+        mainPanel.add(createAsyncSendPanel());
         mainPanel.add(createMQServerPanel());
 
         add(mainPanel, BorderLayout.CENTER);
@@ -562,6 +634,20 @@
             setNonTransacted.setSelected(true);
             setBatchSize.setEnabled(false);
             setBatchSize.setText("");
+        }
+    }
+    /**
+     * @param evt - event triggered.
+     */
+    private void jRadioActionPerformedSendType(ActionEvent evt) {
+        String evtActionCommand = evt.getActionCommand();
+
+        if (evtActionCommand.equals(ASYNC_SEND)) {
+            setAsyncSend.setSelected(true);
+            setNonAsyncSend.setSelected(false);
+        } else if (evtActionCommand.equals(NON_ASYNC_SEND)) {
+            setAsyncSend.setSelected(false);
+            setNonAsyncSend.setSelected(true);
         }
     }
 }

Modified: incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ProducerConfigGui.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ProducerConfigGui.java?rev=397425&r1=397424&r2=397425&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ProducerConfigGui.java (original)
+++ incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/sampler/config/gui/ProducerConfigGui.java Wed Apr 26 22:49:13 2006
@@ -62,9 +62,12 @@
     private static final String OPENJMS_SERVER = JMeterUtils.getResString("openjms_server");
     private static final String JORAM_SERVER = JMeterUtils.getResString("joram_server");
     private static final String MANTARAY_SERVER = JMeterUtils.getResString("mantaray_server");
+    private static final String SWIFTMQ_SERVER = JMeterUtils.getResString("swiftmq_server");
     private static final String TRANSACTED = "transacted";
     private static final String NONTRANSACTED = "nontransacted";
     private static final String BATCHSIZE = "batchsize";
+    private static final String ASYNC_SEND = "async_send";
+    private static final String NON_ASYNC_SEND = "non_async_send";
 
     private JTextField setURL;
     private JTextField setDuration;
@@ -83,6 +86,8 @@
     private JRadioButton setTransacted;
     private JRadioButton setNonTransacted;
     private JTextField setBatchSize;
+    private JRadioButton setAsyncSend;
+    private JRadioButton setNonAsyncSend;
 
     private boolean displayName = true;
 
@@ -191,6 +196,21 @@
                 setBatchSize.setText("");
             }
         }
+
+        if (element.getProperty(Producer.ASYNC_SEND) == null) {
+            setAsyncSend.setSelected(true);
+            setNonAsyncSend.setSelected(false);
+
+        } else {
+            if (element.getPropertyAsBoolean(Producer.ASYNC_SEND)) {
+                setAsyncSend.setSelected(true);
+                setNonAsyncSend.setSelected(false);
+            } else {
+                setAsyncSend.setSelected(false);
+                setNonAsyncSend.setSelected(true);
+            }
+        }
+
     }
 
     /**
@@ -226,6 +246,7 @@
         element.setProperty(Producer.MQSERVER, setMQServer.getSelectedItem().toString());
         element.setProperty(Producer.TRANSACTED, JOrphanUtils.booleanToString(setTransacted.isSelected()));
         element.setProperty(Producer.BATCHSIZE, setBatchSize.getText());
+        element.setProperty(Producer.ASYNC_SEND, JOrphanUtils.booleanToString(setAsyncSend.isSelected()));
     }
 
     /**
@@ -523,7 +544,7 @@
         setNonTransacted.setActionCommand(NONTRANSACTED);
         setNonTransacted.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent evt) {
-                jRadioActionPerformedTransaction(evt);
+               jRadioActionPerformedTransaction(evt);
             }
         });
 
@@ -541,13 +562,13 @@
 
         JPanel transactionPanel = new JPanel(flow);
         transactionPanel.add(labelTransactionType);
-        transactionPanel.add(new JLabel("   "));
+        transactionPanel.add(new JLabel("  "));
         transactionPanel.add(setNonTransacted);
         transactionPanel.add(labelNonTransacted);
-        transactionPanel.add(new JLabel("   "));
+        transactionPanel.add(new JLabel("  "));
         transactionPanel.add(setTransacted);
         transactionPanel.add(labelTransacted);
-        transactionPanel.add(new JLabel("   "));
+        transactionPanel.add(new JLabel("  "));
         transactionPanel.add(setBatchSize);
         transactionPanel.add(new JLabel("   "));
         transactionPanel.add(labelBatchSize);
@@ -556,6 +577,57 @@
     }
 
     /**
+     * Creates the Asynchronous Send Panel.
+     *
+     * @return asyncSendPanel
+     */
+    private JPanel createAsyncSendPanel() {
+        JLabel labelSendType = new JLabel(JMeterUtils.getResString("form_msg_send_type"));
+
+        //create Async Send Type
+        JLabel labelAsyncSend = new JLabel(JMeterUtils.getResString("form_async_send"));
+        setAsyncSend = new JRadioButton();
+        setAsyncSend.setName(ASYNC_SEND);
+        labelAsyncSend.setLabelFor(setAsyncSend);
+        setAsyncSend.setActionCommand(ASYNC_SEND);
+        setAsyncSend.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent evt) {
+                jRadioActionPerformedSendType(evt);
+            }
+        });
+        setAsyncSend.setSelected(true);
+
+        //create Non Async Send Type
+        JLabel labelNonAsyncSend = new JLabel(JMeterUtils.getResString("form_non_async_send"));
+        setNonAsyncSend = new JRadioButton();
+        setNonAsyncSend.setName(NON_ASYNC_SEND);
+        labelNonAsyncSend.setLabelFor(setNonAsyncSend);
+        setNonAsyncSend.setActionCommand(NON_ASYNC_SEND);
+        setNonAsyncSend.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent evt) {
+                jRadioActionPerformedSendType(evt);
+            }
+        });
+
+        setNonAsyncSend.setSelected(false);
+        FlowLayout flow = new FlowLayout(FlowLayout.LEFT);
+        flow.setHgap(0);
+        flow.setVgap(0);
+
+        JPanel sendTypePanel = new JPanel(flow);
+        sendTypePanel.add(labelSendType);
+        sendTypePanel.add(new JLabel("   "));
+        sendTypePanel.add(setAsyncSend);
+        sendTypePanel.add(labelAsyncSend);
+        sendTypePanel.add(new JLabel("   "));
+        sendTypePanel.add(setNonAsyncSend);
+        sendTypePanel.add(labelNonAsyncSend);
+        sendTypePanel.add(new JLabel("   "));
+
+        return sendTypePanel;
+    }
+
+    /**
      * Creates the MQ Server Combo Box.
      *
      * @return mqServerPanel
@@ -567,7 +639,8 @@
                               TIBCOMQ_SERVER,
                               OPENJMS_SERVER,
                               JORAM_SERVER,
-                              MANTARAY_SERVER};
+                              MANTARAY_SERVER,
+                              SWIFTMQ_SERVER};
 
         JLabel label = new JLabel(JMeterUtils.getResString("form_mq_servers"));
         setMQServer = new JComboBox(mqServers);
@@ -610,6 +683,7 @@
         mainPanel.add(createDurablePanel());
         mainPanel.add(createTopicPanel());
         mainPanel.add(createTransactedPanel());
+        mainPanel.add(createAsyncSendPanel());
         mainPanel.add(createDefMsgIntervalPanel());
         mainPanel.add(createMQServerPanel());
 
@@ -684,6 +758,21 @@
             setNonTransacted.setSelected(true);
             setBatchSize.setEnabled(false);
             setBatchSize.setText("");
+        }
+    }
+
+    /**
+     * @param evt - event triggered.
+     */
+    private void jRadioActionPerformedSendType(ActionEvent evt) {
+        String evtActionCommand = evt.getActionCommand();
+
+        if (evtActionCommand.equals(ASYNC_SEND)) {
+            setAsyncSend.setSelected(true);
+            setNonAsyncSend.setSelected(false);
+        } else if (evtActionCommand.equals(NON_ASYNC_SEND)) {
+            setAsyncSend.setSelected(false);
+            setNonAsyncSend.setSelected(true);
         }
     }
 

Modified: incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/util/connection/ServerConnectionFactory.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/util/connection/ServerConnectionFactory.java?rev=397425&r1=397424&r2=397425&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/util/connection/ServerConnectionFactory.java (original)
+++ incubator/activemq/trunk/activemq-jmeter/src/java/org/activemq/util/connection/ServerConnectionFactory.java Wed Apr 26 22:49:13 2006
@@ -40,6 +40,7 @@
 import org.apache.activemq.ActiveMQConnection;
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jmeter.testelement.TestElement;
 import org.mr.api.jms.MantaQueueConnectionFactory;
 import org.mr.api.jms.MantaTopicConnectionFactory;
 
@@ -58,6 +59,7 @@
     public static final String JORAM_PASSWORD = JMeterUtils.getResString("joram_password");
     public static final String JORAM_NAMING_PORT = JMeterUtils.getResString("joram_naming_port");
     public static final String MANTARAY_SERVER = JMeterUtils.getResString("mantaray_server");
+    public static final String SWIFTMQ_SERVER = JMeterUtils.getResString("swiftmq_server");
 
     // For testing within IntelliJ running main()
     /*
@@ -70,12 +72,12 @@
     public static final String JORAM_CONNECTION_FACTORY = "!cf";
     public static final String JORAM_USERNAME = "root";
     public static final String JORAM_PASSWORD = "root";
-    public static final String JORAM_NAMING_PORT = "16400";
-    public static final String MANTARAY_SERVER = "Mantaray";
     */
 
     public static final String SONICMQ_TOPIC = "progress.message.jclient.TopicConnectionFactory";
     public static final String SONICMQ_QUEUE = "progress.message.jclient.QueueConnectionFactory";
+    public static final String SONICMQ_CONTEXT = "com.sonicsw.jndi.mfcontext.MFContextFactory";
+    public static final String SONICMQ_CONNECTION_FACTORY = "progress.message.jclient.ConnectionFactory";
     public static final String TIBCOMQ_TOPIC = "com.tibco.tibjms.TibjmsTopicConnectionFactory";
     public static final String TIBCOMQ_QUEUE = "com.tibco.tibjms.TibjmsQueueConnectionFactory";
     public static final String NAMING_CONTEXT = "org.jnp.interfaces.NamingContextFactory";
@@ -86,6 +88,9 @@
     public static final String JORAM_NAMING_CONTEXT = "fr.dyade.aaa.jndi2.client.NamingContextFactory";
     public static final String JORAM_TOPIC = "TopicConnectionFactory";
     public static final String JORAM_QUEUE = "QueueConnectionFactory";
+    public static final String SWIFTMQ_CONTEXT = "com.swiftmq.jndi.InitialContextFactoryImpl";
+    public static final String SWIFTMQ_CONNECTION_FACTORY = "com.swiftmq.jms.SwiftMQConnectionFactory";
+    public static final String SMQP = "com.swiftmq.jms.smqp";
     public static final String NAMING_HOST = "java.naming.factory.host";
     public static final String NAMING_PORT = "java.naming.factory.post";
 
@@ -116,14 +121,15 @@
      * @param url            - location of the broker.
      * @param mqServer       - type of broker that is running.
      * @param isTopic        - type of message domain.
-     * @param embeddedBroker - specified is the broker is embedded.
+     * @param isAsync        - specified if Send type is Asynchronous.
      * @return
      * @throws JMSException
      */
     public static Connection createConnectionFactory(String url,
                                                      String mqServer,
                                                      boolean isTopic,
-                                                     boolean embeddedBroker) throws JMSException {
+                                                     boolean isAsync) throws JMSException {
+
        if (SONICMQ_SERVER.equals(mqServer)) {
             //Creates a Connection object for a SONIC MQ server.
             if (isTopic) {
@@ -144,9 +150,7 @@
                 InitialContext context = getInitialContext(url, JBOSSMQ_SERVER);
                 ConnectionFactory factory = (ConnectionFactory) context.lookup("ConnectionFactory");
                 context.close();
-
                 return factory.createConnection();
-
             } catch (NamingException e) {
                 throw new JMSException("Error creating InitialContext ", e.toString());
             }
@@ -200,12 +204,37 @@
                 return factory.createQueueConnection();
 
             }
+        }else if (SWIFTMQ_SERVER.equals(mqServer)) {
+            //Creates a Connection object for a SwiftMQ server.
+            try {
+                Context ictx = getInitialContext(url, SWIFTMQ_SERVER);
+                if (isTopic){
+                    TopicConnectionFactory tcf = (TopicConnectionFactory) ictx.lookup("TopicConnectionFactory");
+//                    Topic topic = (Topic) ictx.lookup("testtopic");
+                    ictx.close();
+                    TopicConnection connection = tcf.createTopicConnection();
+                    return connection;
+                } else {
+                    QueueConnectionFactory qcf = (QueueConnectionFactory) ictx.lookup("QueueConnectionFactory");
+//                    Queue queue = (Queue) ictx.lookup("testqueue");
+                    ictx.close();
+                    QueueConnection connection = qcf.createQueueConnection();
+                    return connection;
+                }
+            } catch (NamingException e) {
+                throw new JMSException("Error creating InitialContext ", e.toString());
+            }
         } else {
             //Used to create a session from the default MQ server ActiveMQConnectionFactory.
             ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(url);
             ActiveMQConnection c = (ActiveMQConnection) factory.createConnection();
-            factory.setUseAsyncSend(true);
-
+//            factory.setUseAsyncSend(true);
+            if(isAsync) {
+                factory.setUseAsyncSend(true);
+            } else {
+                factory.setUseAsyncSend(false);
+            }
+//System.out.println("ASYNC = " + factory.isUseAsyncSend());
             c.getPrefetchPolicy().setQueuePrefetch(1000);
             c.getPrefetchPolicy().setQueueBrowserPrefetch(1000);
             c.getPrefetchPolicy().setTopicPrefetch(1000);
@@ -279,7 +308,6 @@
                                         boolean isTransacted,
                                         String mqServer,
                                         boolean isTopic) throws JMSException {
-
         if (OPENJMS_SERVER.equals(mqServer) || MANTARAY_SERVER.equals(mqServer)) {
             if (isTransacted) {
                 if (isTopic) {
@@ -306,6 +334,15 @@
 
                 }
             }
+        } else if (SONICMQ_SERVER.equals(mqServer)) {
+            Session session = null;
+            if (isTransacted) {
+                session = connection.createSession(false, Session.SESSION_TRANSACTED);
+                return session;
+            } else {
+                session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                return session;
+            }
         } else {
             // check when to use Transacted or Non-Transacted type.
             if (isTransacted) {
@@ -349,24 +386,22 @@
         Constructor constructor;
         Class[] classParameter = {url.getClass()};
         Object[] constArgs = {url};
-
-        try {
+       try {
             classObject = Class.forName(connFactoryClass);
             constructor = classObject.getConstructor(classParameter);
             ConnectionFactory factory = (ConnectionFactory) constructor.newInstance(constArgs);
-
             return factory.createConnection();
 
         } catch (ClassNotFoundException e) {
             throw new JMSException("Unable to find class ", e.toString());
         } catch (NoSuchMethodException e) {
-            throw new JMSException("No such getConstructor(Class[] class) method found ", e.toString());
+           throw new JMSException("No such getConstructor(Class[] class) method found ", e.toString());
         } catch (InstantiationException e) {
-            throw new JMSException("Unable to instantiate class ", e.toString());
+           throw new JMSException("Unable to instantiate class ", e.toString());
         } catch (IllegalAccessException e) {
-            throw new JMSException("Unable to instantiate class ", e.toString());
+           throw new JMSException("Unable to instantiate class ", e.toString());
         } catch (InvocationTargetException e) {
-            throw new JMSException("Unable to instantiate class ", e.toString());
+           throw new JMSException("Unable to instantiate class ", e.toString());
         }
     }
 
@@ -382,7 +417,7 @@
         Properties properties = new Properties();
 
         if (JBOSSMQ_SERVER.equals(mqServer)) {
-            //Creates a Context oject for JBOSS MQ server
+            //Creates a Context object for JBOSS MQ server
             properties.put(Context.INITIAL_CONTEXT_FACTORY, NAMING_CONTEXT);
             properties.put(Context.URL_PKG_PREFIXES, JNP_INTERFACES);
             properties.put(Context.PROVIDER_URL, url);
@@ -398,6 +433,17 @@
             properties.put(Context.INITIAL_CONTEXT_FACTORY, JORAM_NAMING_CONTEXT);
             properties.put(NAMING_HOST, getHost(url));
             properties.put(NAMING_PORT, JORAM_NAMING_PORT);
+
+        } else if (SWIFTMQ_SERVER.equals(mqServer)) {
+            //Creates a Context object for SWIFTMQ server
+            properties.put(Context.INITIAL_CONTEXT_FACTORY, SWIFTMQ_CONTEXT);
+            properties.put(Context.URL_PKG_PREFIXES, SMQP);
+            properties.put(Context.PROVIDER_URL, url);
+
+        } else if (SONICMQ_SERVER.equals(mqServer)) {
+            //Creates a Context object for SONICMQ server
+            properties.put(Context.INITIAL_CONTEXT_FACTORY, SONICMQ_CONTEXT);
+            properties.put(Context.PROVIDER_URL, url);
 
         }