svn commit: r889456 - in /jakarta/jmeter/trunk: src/protocol/jms/org/apache/jmeter/protocol/jms/client/ src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/ xdocs/

[email protected]
Newsgroups gmane.comp.jakarta.jmeter.devel
Message-ID <[email protected]>
Author: sebb
Date: Thu Dec 10 23:00:11 2009
New Revision: 889456

URL: http://svn.apache.org/viewvc?rev=889456&view=rev
Log:
Bug 48155 - Multiple problems / enhancements with JMS protocol classes

Modified:
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/BaseJMSSampler.java
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java
    jakarta/jmeter/trunk/xdocs/changes.xml

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java?rev=889456&r1=889455&r2=889456&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/ReceiveSubscriber.java Thu Dec 10 23:00:11 2009
@@ -29,6 +29,7 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
+import org.apache.jmeter.protocol.jms.sampler.BaseJMSSampler;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
 
@@ -82,6 +83,9 @@
                 ConnectionFactory.getTopicConnectionFactory(ctx,connfactory);
                 _conn = ConnectionFactory.getTopicConnection();
                 _topic = InitialContextFactory.lookupTopic(ctx, topic);
+                if (_topic == null){
+                    log.warn("topic <"+topic+"> could not be found.");
+                }
                 _session = _conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
                 _subscriber = _session.createSubscriber(_topic);
                 log.info("created the topic connection successfully");
@@ -235,6 +239,9 @@
                     String text = msg.getText();
                     if (text.trim().length() > 0) {
                         synchronized (this) {
+                            this.buffer.append(BaseJMSSampler
+                                .getMessageHeaders(message));
+                            this.buffer.append("JMS Message Text:\n\n");
                             this.buffer.append(text);
                             count(1);
                         }

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/BaseJMSSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/BaseJMSSampler.java?rev=889456&r1=889455&r2=889456&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/BaseJMSSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/BaseJMSSampler.java Thu Dec 10 23:00:11 2009
@@ -17,6 +17,13 @@
 
 package org.apache.jmeter.protocol.jms.sampler;
 
+import java.util.Date;
+
+import javax.jms.DeliveryMode;
+import javax.jms.Destination;
+import javax.jms.JMSException;
+import javax.jms.Message;
+
 import org.apache.jmeter.testelement.TestListener;
 import org.apache.jmeter.samplers.AbstractSampler;
 import org.apache.jmeter.samplers.Entry;
@@ -280,4 +287,62 @@
     public boolean getUseJNDIPropertiesAsBoolean() {
         return getPropertyAsBoolean(USE_PROPERTIES_FILE);
     }
+    
+    
+    /**
+     * Returns a String with the JMS Message Header values.
+     * 
+     * @param message JMS Message
+     * @return String with message header values.
+     */
+    public static String getMessageHeaders(Message message) {
+        final StringBuffer response = new StringBuffer(256);
+        try {
+            response.append("JMS Message Header Attributes:");
+            response.append("\n   Correlation ID: ");
+            response.append(message.getJMSCorrelationID());
+
+            response.append("\n   Delivery Mode: ");
+            if (message.getJMSDeliveryMode() == DeliveryMode.PERSISTENT) {
+                response.append("PERSISTANT");
+            } else {
+                response.append("NON-PERSISTANT");
+            }
+
+            final Destination destination = message.getJMSDestination();
+
+            response.append("\n   Destination: ");
+            response.append((destination == null ? null : destination
+                .toString()));
+
+            response.append("\n   Expiration: ");
+            response.append(new Date(message.getJMSExpiration()));
+
+            response.append("\n   Message ID: ");
+            response.append(message.getJMSMessageID());
+
+            response.append("\n   Priority: ");
+            response.append(message.getJMSPriority());
+
+            response.append("\n   Redelivered: ");
+            response.append(message.getJMSRedelivered());
+
+            final Destination replyTo = message.getJMSReplyTo();
+            response.append("\n   Reply to: ");
+            response.append((replyTo == null ? null : replyTo.toString()));
+
+            response.append("\n   Timestamp: ");
+            response.append(new Date(message.getJMSTimestamp()));
+
+            response.append("\n   Type: ");
+            response.append(message.getJMSType());
+
+            response.append("\n\n");
+
+        } catch (JMSException e) {
+            e.printStackTrace();
+        }
+
+        return new String(response);
+    }
 }

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java?rev=889456&r1=889455&r2=889456&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/PublisherSampler.java Thu Dec 10 23:00:11 2009
@@ -141,12 +141,10 @@
                 buffer.append(tmsg);
             }
             result.sampleEnd();
-            String content = buffer.toString();
-            result.setBytes(content.getBytes().length);
-            result.setResponseCode("message published successfully");
+            result.setResponseCodeOK();
             result.setResponseMessage(loop + " messages published");
             result.setSuccessful(true);
-            result.setResponseData(content.getBytes());
+            result.setSamplerData(buffer.toString());
             result.setSampleCount(loop);
         }
         return result;

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java?rev=889456&r1=889455&r2=889456&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java Thu Dec 10 23:00:11 2009
@@ -147,6 +147,7 @@
      */
     private SampleResult sampleWithListener() {
         SampleResult result = new SampleResult();
+        result.setDataType(SampleResult.TEXT);
         result.setSampleLabel(getName());
         initListenerClient();
 
@@ -188,6 +189,7 @@
      */
     private SampleResult sampleWithReceive() {
         SampleResult result = new SampleResult();
+        result.setDataType(SampleResult.TEXT);
         result.setSampleLabel(getName());
         if (this.SUBSCRIBER == null) {
             this.initReceiveClient();
@@ -205,16 +207,17 @@
             }
         }
         result.sampleEnd();
-        result.setResponseMessage(loop + " samples messages received");
+        int read = this.SUBSCRIBER.count(0);
         if (this.getReadResponseAsBoolean()) {
             result.setResponseData(this.SUBSCRIBER.getMessage().getBytes());
         } else {
             result.setBytes(this.SUBSCRIBER.getMessage().getBytes().length);
         }
         result.setSuccessful(true);
-        result.setResponseCode(loop + " message(s) received successfully");
-        result.setSamplerData("Not applicable");
-        result.setSampleCount(loop);
+        result.setResponseCodeOK();
+        result.setResponseMessage(read + " message(s) received successfully");
+        result.setSamplerData(loop + " messages expected");
+        result.setSampleCount(read);
 
         this.SUBSCRIBER.reset();
         return result;
@@ -230,6 +233,8 @@
                 TextMessage msg = (TextMessage) message;
                 String content = msg.getText();
                 if (content != null) {
+                    this.BUFFER.append(getMessageHeaders(message));
+                    this.BUFFER.append("JMS Message Text:\n\n");
                     this.BUFFER.append(content);
                     count(1);
                 }

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=889456&r1=889455&r2=889456&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Thu Dec 10 23:00:11 2009
@@ -134,6 +134,7 @@
 <li>Added JSR223 Sampler</li>
 <li>Bug 47556 - JMS-PoinToPoint-Sampler Timout field should use Strings</li>
 <li>Bug 47947 - Mail Reader Sampler should allow port to be overridden</li>
+<li>Bug 48155 - Multiple problems / enhancements with JMS protocol classes</li>
 </ul>
 
 <h3>Controllers</h3>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.