001 package com.mockrunner.ejb;
002
003 /**
004 * Global configuration options regarding EJB and JNDI.
005 * Usually you do not have to change these options.
006 */
007 public class Configuration
008 {
009 private String userTransactionJNDIName;
010 private boolean bindMockUserTransactionToJNDI;
011
012 public Configuration()
013 {
014 this("javax.transaction.UserTransaction");
015 }
016
017 public Configuration(String userTransactionJNDIName)
018 {
019 this(userTransactionJNDIName, true);
020 }
021
022 public Configuration(String userTransactionJNDIName, boolean bindMockUserTransactionToJNDI)
023 {
024 this.userTransactionJNDIName = userTransactionJNDIName;
025 this.bindMockUserTransactionToJNDI = bindMockUserTransactionToJNDI;
026 }
027
028 /**
029 * Get if the mock transaction should be bound to JNDI.
030 * @return if the mock transaction should be bound to JNDI
031 */
032 public boolean getBindMockUserTransactionToJNDI()
033 {
034 return bindMockUserTransactionToJNDI;
035 }
036
037 /**
038 * Set if the mock transaction should be bound to JNDI.
039 * When the {@link com.mockrunner.mock.ejb.EJBMockObjectFactory}
040 * creates a {@link com.mockrunner.mock.ejb.MockUserTransaction},
041 * it tries to rebind the transaction to the JNDI tree with the
042 * specified name {@link #setUserTransactionJNDIName}, the name
043 * <code>javax.transaction.UserTransaction</code> (which is used
044 * by MockEJB and Weblogic) and the name
045 * <code>java:comp/UserTransaction</code> (which is the standard name),
046 * if this option is <code>true</code>.
047 * If this option is <code>false</code>, a mock transaction is created
048 * but not bound to JNDI.
049 * Default is <code>true</code>.
050 * @param bindMockUserTransactionToJNDI should the mock transaction be bound to JNDI
051 */
052 public void setBindMockUserTransactionToJNDI(boolean bindMockUserTransactionToJNDI)
053 {
054 this.bindMockUserTransactionToJNDI = bindMockUserTransactionToJNDI;
055 }
056
057 /**
058 * Get the JNDI name for the user transaction.
059 * @return the JNDI name for the user transaction
060 */
061 public String getUserTransactionJNDIName()
062 {
063 return userTransactionJNDIName;
064 }
065
066 /**
067 * Set the JNDI name for the user transaction. The
068 * {@link com.mockrunner.mock.ejb.EJBMockObjectFactory} tries to
069 * obtain a <code>UserTransaction</code> from JNDI using this
070 * name. If the lookup fails, a {@link com.mockrunner.mock.ejb.MockUserTransaction}
071 * is created and bound to JNDI, if {@link #setBindMockUserTransactionToJNDI} is
072 * set to <code>true</code>.
073 * Default is <code>javax.transaction.UserTransaction</code>.
074 * @param userTransactionJNDIName the JNDI name for the user transaction
075 */
076 public void setUserTransactionJNDIName(String userTransactionJNDIName)
077 {
078 this.userTransactionJNDIName = userTransactionJNDIName;
079 }
080 }