001 package com.mockrunner.jms; 002 003 import java.io.Serializable; 004 005 /** 006 * The <code>ConfigurationManager</code> is used 007 * for global settings of the JMS test framework. 008 */ 009 public class ConfigurationManager implements Serializable 010 { 011 private boolean doCloneOnSend; 012 private boolean useMessageSelectors; 013 014 public ConfigurationManager() 015 { 016 doCloneOnSend = false; 017 useMessageSelectors = true; 018 } 019 020 /** 021 * Get the clone on send flag, see {@link #setDoCloneOnSend} 022 * for a description of this option. 023 * @return the clone on send flag 024 */ 025 public boolean getDoCloneOnSend() 026 { 027 return doCloneOnSend; 028 } 029 030 /** 031 * Set if a message should be cloned before sending it. 032 * Default is <code>false</code>, i.e. the message is not 033 * cloned. This has the advantage that the sent message can 034 * be examined afterwards (e.g. if it is acknowledged). 035 * If you set this to <code>true</code>, the message will 036 * be cloned, i.e. the sent message will not be altered 037 * and you have to obtain the received message in order 038 * to examine it. However, the <code>true</code> option 039 * is closer to a real JMS server, where you can send 040 * the same message multiple times and the messages do 041 * not influence each other. 042 * @param doCloneOnSend the clone on send flag, 043 * default is <code>false</code> 044 */ 045 public void setDoCloneOnSend(boolean doCloneOnSend) 046 { 047 this.doCloneOnSend = doCloneOnSend; 048 } 049 050 /** 051 * Get if message selectors should be used. 052 * @return <code>true</code> use message selectors, 053 * <code>false</code> ignore message selectors 054 */ 055 public boolean getUseMessageSelectors() 056 { 057 return useMessageSelectors; 058 } 059 060 /** 061 * Set if message selectors should be used or simply 062 * ignored while testing. Default is <code>true</code>, 063 * i.e. message selectors are used. Message selector support 064 * of Mockrunner is based on a modified version of the 065 * selector parser of the open source JMS implementation 066 * ActiveMQ. It is a bit experimental at the moment. If there 067 * are problems with the parsing or if you don't need message 068 * selectors at all, turn them off. Disabling selector parsing also 069 * results in a better test performance. 070 * @param useMessageSelectors <code>true</code> use message selectors, 071 * <code>false</code> ignore message selectors 072 */ 073 public void setUseMessageSelectors(boolean useMessageSelectors) 074 { 075 this.useMessageSelectors = useMessageSelectors; 076 } 077 }