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