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>



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org

Reply via email to