You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2009/05/10 23:26:36 UTC

svn commit: r773407 - in /synapse/trunk/java/modules/samples/src/main: java/samples/userguide/GenericJMSClient.java scripts/axis2Client/build.xml

Author: veithen
Date: Sun May 10 21:26:36 2009
New Revision: 773407

URL: http://svn.apache.org/viewvc?rev=773407&view=rev
Log:
Modified GenericJMSClient so that the user can specify the number of messages to send (useful to do simple load tests).

Modified:
    synapse/trunk/java/modules/samples/src/main/java/samples/userguide/GenericJMSClient.java
    synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml

Modified: synapse/trunk/java/modules/samples/src/main/java/samples/userguide/GenericJMSClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/samples/src/main/java/samples/userguide/GenericJMSClient.java?rev=773407&r1=773406&r2=773407&view=diff
==============================================================================
--- synapse/trunk/java/modules/samples/src/main/java/samples/userguide/GenericJMSClient.java (original)
+++ synapse/trunk/java/modules/samples/src/main/java/samples/userguide/GenericJMSClient.java Sun May 10 21:26:36 2009
@@ -35,6 +35,9 @@
 import java.io.IOException;
 
 public class GenericJMSClient {
+    private QueueConnection connection;
+    private QueueSession session;
+    private QueueSender sender;
 
     private static String getProperty(String name, String def) {
         String result = System.getProperty(name);
@@ -50,54 +53,37 @@
         String type  = getProperty("jms_type", "text");
         String param = getProperty("jms_payload",
             getRandom(100, 0.9, true) + " " + (int) getRandom(10000, 1.0, true) + " IBM");
+        String sMsgCount = getProperty("jms_msgcount", null);
 
         GenericJMSClient app = new GenericJMSClient();
+        int msgCount = sMsgCount == null ? 1 : Integer.parseInt(sMsgCount);
+        app.connect(dest);
         if ("text".equalsIgnoreCase(type)) {
-            app.sendTextMessage(dest, param);
+            for (int i=0; i<msgCount; i++) {
+                app.sendTextMessage(param);
+            }
         } else if ("binary".equalsIgnoreCase(type)) {
-            app.sendBytesMessage(dest, getBytesFromFile(param));
+            for (int i=0; i<msgCount; i++) {
+                app.sendBytesMessage(getBytesFromFile(param));
+            }
         } else if ("pox".equalsIgnoreCase(type)) {
-            app.sendTextMessage(dest, 
-                "<m:placeOrder xmlns:m=\"http://services.samples\">\n" +
-                "    <m:order>\n" +
-                "        <m:price>" + getRandom(100, 0.9, true) + "</m:price>\n" +
-                "        <m:quantity>" + (int) getRandom(10000, 1.0, true) + "</m:quantity>\n" +
-                "        <m:symbol>" + param + "</m:symbol>\n" +
-                "    </m:order>\n" +
-                "</m:placeOrder>");
+            for (int i=0; i<msgCount; i++) {
+                app.sendTextMessage(
+                    "<m:placeOrder xmlns:m=\"http://services.samples\">\n" +
+                    "    <m:order>\n" +
+                    "        <m:price>" + getRandom(100, 0.9, true) + "</m:price>\n" +
+                    "        <m:quantity>" + (int) getRandom(10000, 1.0, true) + "</m:quantity>\n" +
+                    "        <m:symbol>" + param + "</m:symbol>\n" +
+                    "    </m:order>\n" +
+                    "</m:placeOrder>");
+            }
         } else {
             System.out.println("Unknown JMS message type");
         }
+        app.shutdown();
     }
 
-    private void sendBytesMessage(String destName, byte[] payload) throws Exception {
-        InitialContext ic = getInitialContext();
-        QueueConnectionFactory confac = (QueueConnectionFactory) ic.lookup("ConnectionFactory");
-        QueueConnection connection = confac.createQueueConnection();
-        QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
-        BytesMessage bm = session.createBytesMessage();
-        bm.writeBytes(payload);
-        QueueSender sender = session.createSender((Queue)ic.lookup(destName));
-        sender.send(bm);
-        sender.close();
-        session.close();
-        connection.close();
-    }
-
-    private void sendTextMessage(String destName, String payload) throws Exception {
-        InitialContext ic = getInitialContext();
-        QueueConnectionFactory confac = (QueueConnectionFactory) ic.lookup("ConnectionFactory");
-        QueueConnection connection = confac.createQueueConnection();
-        QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
-        TextMessage tm = session.createTextMessage(payload);
-        QueueSender sender = session.createSender((Queue)ic.lookup(destName));
-        sender.send(tm);
-        sender.close();
-        session.close();
-        connection.close();
-    }
-
-    private InitialContext getInitialContext() throws NamingException {
+    private void connect(String destName) throws Exception {
         Properties env = new Properties();
         if (System.getProperty("java.naming.provider.url") == null) {
             env.put("java.naming.provider.url", "tcp://localhost:61616");
@@ -106,7 +92,28 @@
             env.put("java.naming.factory.initial",
                 "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
         }
-        return new InitialContext(env);
+        InitialContext ic = new InitialContext(env);
+        QueueConnectionFactory confac = (QueueConnectionFactory) ic.lookup("ConnectionFactory");
+        connection = confac.createQueueConnection();
+        session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+        sender = session.createSender((Queue)ic.lookup(destName));
+    }
+
+    private void shutdown() throws Exception {
+        sender.close();
+        session.close();
+        connection.close();
+    }
+
+    private void sendBytesMessage(byte[] payload) throws Exception {
+        BytesMessage bm = session.createBytesMessage();
+        bm.writeBytes(payload);
+        sender.send(bm);
+    }
+
+    private void sendTextMessage(String payload) throws Exception {
+        TextMessage tm = session.createTextMessage(payload);
+        sender.send(tm);
     }
 
     public static byte[] getBytesFromFile(String fileName) throws IOException {

Modified: synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml?rev=773407&r1=773406&r2=773407&view=diff
==============================================================================
--- synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml (original)
+++ synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml Sun May 10 21:26:36 2009
@@ -54,6 +54,8 @@
         ant jmsclient [-Djms_type=pox] [-Djms_dest=dynamicQueues/JMSPoxProxy] [-Djms_payload=MSFT]
         ant jmsclient [-Djms_type=binary] [-Djms_dest=dynamicQueues/JMSFileUploadProxy]
             [-Djms_payload=./../../repository/conf/sample/resources/mtom/asf-logo.gif]
+        ant jmsclient [-Djms_type=pox] [-Djms_dest=dynamicQueues/JMSPoxProxy] [-Djms_payload=MSFT]
+            [-Djms_msgcount=10000]
 
     ant optimizeclient
         A client that could send binary content using MTOM and SwA optimizations
@@ -128,6 +130,7 @@
     <property name="jms_dest" value=""/>
     <property name="jms_type" value=""/>
     <property name="jms_payload" value=""/>
+    <property name="jms_msgcount" value=""/>
     <property name="opt_mode" value=""/>
     <property name="opt_url" value=""/>
     <property name="opt_file" value=""/>
@@ -223,6 +226,7 @@
             <sysproperty key="jms_dest"    value="${jms_dest}"/>
             <sysproperty key="jms_type"    value="${jms_type}"/>
             <sysproperty key="jms_payload" value="${jms_payload}"/>
+            <sysproperty key="jms_msgcount" value="${jms_msgcount}"/>
             <sysproperty key="java.io.tmpdir" value="./../../work/temp/sampleClient"/>
         </java>
     </target>