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