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: [email protected]
For additional commands, e-mail: [email protected]