View | Details | Raw Unified | Return to bug 40873
Collapse All | Expand All

(-)src/core/org/apache/jmeter/resources/messages.properties (-1 / +4 lines)
Lines 253-258 Link Here
253
java_request=Java Request
253
java_request=Java Request
254
java_request_defaults=Java Request Defaults
254
java_request_defaults=Java Request Defaults
255
jms_auth_not_required=Not Required
255
jms_auth_not_required=Not Required
256
jms_delivery_mode=Delivery Mode
257
jms_persistent=Persistent
258
jms_non_persistent=Non Persistent
256
jms_auth_required=Required
259
jms_auth_required=Required
257
jms_authentication=Authentication
260
jms_authentication=Authentication
258
jms_client_caption=Receive client uses TopicSubscriber.receive() to listen for message.
261
jms_client_caption=Receive client uses TopicSubscriber.receive() to listen for message.
Lines 751-754 Link Here
751
xpath_file_file_name=XML file to get values from 
754
xpath_file_file_name=XML file to get values from 
752
you_must_enter_a_valid_number=You must enter a valid number
755
you_must_enter_a_valid_number=You must enter a valid number
753
zh_cn=Chinese (Simplified)
756
zh_cn=Chinese (Simplified)
754
zh_tw=Chinese (Traditional)
757
zh_tw=Chinese (Traditional)
(-)src/protocol/jms/org/apache/jmeter/protocol/jms/control/gui/JMSConfigGui.java (-1 / +16 lines)
Lines 35-40 Link Here
35
import org.apache.jorphan.gui.JLabeledChoice;
35
import org.apache.jorphan.gui.JLabeledChoice;
36
import org.apache.jorphan.gui.JLabeledTextArea;
36
import org.apache.jorphan.gui.JLabeledTextArea;
37
import org.apache.jorphan.gui.JLabeledTextField;
37
import org.apache.jorphan.gui.JLabeledTextField;
38
import org.apache.jorphan.gui.JLabeledRadio;
38
39
39
/**
40
/**
40
 * Configuration screen for Java Messaging Point-to-Point requests. <br>
41
 * Configuration screen for Java Messaging Point-to-Point requests. <br>
Lines 66-71 Link Here
66
67
67
	private JLabeledChoice oneWay = new JLabeledChoice(JMeterUtils.getResString("jms_communication_style"), labels);
68
	private JLabeledChoice oneWay = new JLabeledChoice(JMeterUtils.getResString("jms_communication_style"), labels);
68
69
70
	private String persitent = JMeterUtils.getResString("jms_persistent");
71
72
	private String non_persistent = JMeterUtils.getResString("jms_non_persistent");
73
74
    private String[] delivery_modes = { persitent, non_persistent };
75
76
    private JLabeledRadio deliveryMode = new JLabeledRadio(JMeterUtils.getResString("jms_delivery_mode"), delivery_modes, non_persistent);
77
69
	private ArgumentsPanel jmsPropertiesPanel;
78
	private ArgumentsPanel jmsPropertiesPanel;
70
79
71
	private ArgumentsPanel jndiPropertiesPanel;
80
	private ArgumentsPanel jndiPropertiesPanel;
Lines 107-112 Link Here
107
		boolean isOneway = oneWay.getText().equals(JMeterUtils.getResString("jms_request"));
116
		boolean isOneway = oneWay.getText().equals(JMeterUtils.getResString("jms_request"));
108
		element.setProperty(new BooleanProperty(JMSSampler.IS_ONE_WAY, isOneway));
117
		element.setProperty(new BooleanProperty(JMSSampler.IS_ONE_WAY, isOneway));
109
118
119
        element.setProperty(JMSSampler.DELIVERY_MODE, deliveryMode.getText());
120
110
		element.setProperty(JMSSampler.TIMEOUT, timeout.getText());
121
		element.setProperty(JMSSampler.TIMEOUT, timeout.getText());
111
		element.setProperty(JMSSampler.XML_DATA, soapXml.getText());
122
		element.setProperty(JMSSampler.XML_DATA, soapXml.getText());
112
123
Lines 227-232 Link Here
227
		onewayPanel.add(oneWay);
238
		onewayPanel.add(oneWay);
228
		messageNorthPanel.add(onewayPanel, BorderLayout.NORTH);
239
		messageNorthPanel.add(onewayPanel, BorderLayout.NORTH);
229
240
241
		JPanel deliveryModePanel = new JPanel(new BorderLayout());
242
		deliveryModePanel.add(deliveryMode);
243
		messageNorthPanel.add(deliveryModePanel, BorderLayout.CENTER);
244
230
		JPanel timeoutPanel = new JPanel(new BorderLayout());
245
		JPanel timeoutPanel = new JPanel(new BorderLayout());
231
		timeoutPanel.add(timeout);
246
		timeoutPanel.add(timeout);
232
		messageNorthPanel.add(timeoutPanel, BorderLayout.SOUTH);
247
		messageNorthPanel.add(timeoutPanel, BorderLayout.SOUTH);
Lines 274-277 Link Here
274
		return "jms_point_to_point";// TODO - probably wrong
289
		return "jms_point_to_point";// TODO - probably wrong
275
	}
290
	}
276
291
277
}
292
}
(-)src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java (-1 / +26 lines)
Lines 31-36 Link Here
31
import javax.jms.QueueSender;
31
import javax.jms.QueueSender;
32
import javax.jms.QueueSession;
32
import javax.jms.QueueSession;
33
import javax.jms.Session;
33
import javax.jms.Session;
34
import javax.jms.DeliveryMode;
34
import javax.jms.StreamMessage;
35
import javax.jms.StreamMessage;
35
import javax.jms.TextMessage;
36
import javax.jms.TextMessage;
36
import javax.naming.Context;
37
import javax.naming.Context;
Lines 45-50 Link Here
45
import org.apache.jmeter.testelement.ThreadListener;
46
import org.apache.jmeter.testelement.ThreadListener;
46
import org.apache.jmeter.testelement.property.BooleanProperty;
47
import org.apache.jmeter.testelement.property.BooleanProperty;
47
import org.apache.jmeter.testelement.property.TestElementProperty;
48
import org.apache.jmeter.testelement.property.TestElementProperty;
49
import org.apache.jmeter.util.JMeterUtils;
48
import org.apache.jorphan.logging.LoggingManager;
50
import org.apache.jorphan.logging.LoggingManager;
49
import org.apache.log.Logger;
51
import org.apache.log.Logger;
50
52
Lines 79-84 Link Here
79
81
80
	public final static String QUEUE_CONNECTION_FACTORY_JNDI = "JMSSampler.queueconnectionfactory";
82
	public final static String QUEUE_CONNECTION_FACTORY_JNDI = "JMSSampler.queueconnectionfactory";
81
83
84
    public final static String DELIVERY_MODE = "JMSSampler.DeliveryMode";
85
82
	private static final Logger LOGGER = LoggingManager.getLoggerForClass();
86
	private static final Logger LOGGER = LoggingManager.getLoggerForClass();
83
87
84
	//
88
	//
Lines 141-147 Link Here
141
				} else {
145
				} else {
142
					if (replyMsg instanceof TextMessage) {
146
					if (replyMsg instanceof TextMessage) {
143
						res.setResponseData(((TextMessage) replyMsg).getText().getBytes());
147
						res.setResponseData(((TextMessage) replyMsg).getText().getBytes());
144
                        res.setContentLength(((TextMessage) replyMsg).getText().getBytes().length);
148
                                                res.setContentLength(((TextMessage) replyMsg).getText().getBytes().length);
145
					} else {
149
					} else {
146
						res.setResponseData(replyMsg.toString().getBytes());
150
						res.setResponseData(replyMsg.toString().getBytes());
147
					}
151
					}
Lines 283-303 Link Here
283
287
284
			session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
288
			session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
285
289
290
291
286
			if (LOGGER.isDebugEnabled()) {
292
			if (LOGGER.isDebugEnabled()) {
287
				LOGGER.debug("Session created");
293
				LOGGER.debug("Session created");
288
			}
294
			}
289
295
296
290
			if (getPropertyAsBoolean(IS_ONE_WAY)) {
297
			if (getPropertyAsBoolean(IS_ONE_WAY)) {
291
				producer = session.createSender(sendQueue);
298
				producer = session.createSender(sendQueue);
299
                if(getDeliveryMode().equals(JMeterUtils.getResString("jms_non_persistent"))) {
300
                      producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
301
                }
292
			} else {
302
			} else {
293
303
294
				if (useTemporyQueue()) {
304
				if (useTemporyQueue()) {
295
					executor = new TemporaryQueueExecutor(session, sendQueue);
305
					executor = new TemporaryQueueExecutor(session, sendQueue);
296
				} else {
306
				} else {
297
					producer = session.createSender(sendQueue);
307
					producer = session.createSender(sendQueue);
308
                    if(getDeliveryMode().equals(JMeterUtils.getResString("jms_non_persistent"))) {
309
                         producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
310
                    }
298
					executor = new FixedQueueExecutor(producer, getTimeout());
311
					executor = new FixedQueueExecutor(producer, getTimeout());
299
				}
312
				}
300
			}
313
			}
314
			System.out.println("producer.getDeliveryMode() : " + producer.getDeliveryMode());
301
			if (LOGGER.isDebugEnabled()) {
315
			if (LOGGER.isDebugEnabled()) {
302
				LOGGER.debug("Starting connection");
316
				LOGGER.debug("Starting connection");
303
			}
317
			}
Lines 449-452 Link Here
449
463
450
	}
464
	}
451
465
466
467
	public String getDeliveryMode() {
468
		return getPropertyAsString(DELIVERY_MODE);
469
470
	}
471
472
	public void setDeliveryMode(String string) {
473
		setProperty(DELIVERY_MODE, string);
474
475
	}
476
452
}
477
}
(-)src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/Receiver.java (-1 / +6 lines)
Lines 74-87 Link Here
74
				if (reply != null) {
74
				if (reply != null) {
75
75
76
					if (log.isDebugEnabled()) {
76
					if (log.isDebugEnabled()) {
77
						log.debug("Received message, correlation id:" + reply.getJMSCorrelationID());
77
						log.debug("Received message, message id:" + reply.getJMSMessageID());
78
					}
78
					}
79
79
80
					if (reply.getJMSMessageID() != null) {
81
						MessageAdmin.getAdmin().putReply(reply.getJMSMessageID(), reply);
82
					}
83
/*
80
					if (reply.getJMSCorrelationID() == null) {
84
					if (reply.getJMSCorrelationID() == null) {
81
						log.warn("Received message with correlation id null. Discarding message ...");
85
						log.warn("Received message with correlation id null. Discarding message ...");
82
					} else {
86
					} else {
83
						MessageAdmin.getAdmin().putReply(reply.getJMSCorrelationID(), reply);
87
						MessageAdmin.getAdmin().putReply(reply.getJMSCorrelationID(), reply);
84
					}
88
					}
89
*/
85
				}
90
				}
86
91
87
			} catch (JMSException e1) {
92
			} catch (JMSException e1) {

Return to bug 40873