1 /* 2 * JBoss, Home of Professional Open Source 3 * Copyright 2005, JBoss Inc., and individual contributors as indicated 4 * by the @authors tag. See the copyright.txt in the distribution for a 5 * full listing of individual contributors. 6 * 7 * This is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as 9 * published by the Free Software Foundation; either version 2.1 of 10 * the License, or (at your option) any later version. 11 * 12 * This software is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this software; if not, write to the Free 19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 21 */ 22 package org.jboss.ejb3.test.iiop; 23 24 import javax.ejb.EJBException; 25 import javax.ejb.Remote; 26 import javax.ejb.Stateless; 27 import javax.ejb.TransactionAttribute; 28 import javax.ejb.TransactionAttributeType; 29 import javax.ejb.TransactionManagement; 30 import javax.ejb.TransactionManagementType; 31 import javax.transaction.Status; 32 import javax.transaction.SystemException; 33 import javax.transaction.Transaction; 34 import javax.transaction.TransactionManager; 35 36 import org.jboss.logging.Logger; 37 import org.jboss.annotation.JndiInject; 38 import org.jboss.annotation.ejb.RemoteBinding; 39 import org.jboss.ejb3.iiop.IORFactory; 40 41 /** 42 * Comment 43 * 44 * @author <a HREF="mailto:carlo.dewolf@jboss.com">Carlo de Wolf</a> 45 * @version $Revision: 58110 $ 46 */ 47 @Stateless 48 @Remote(TxTester.class) 49 @RemoteBinding(factory=IORFactory.class) 50 @TransactionManagement(TransactionManagementType.CONTAINER) 51 public class TxTesterBean 52 { 53 private static final Logger log = Logger.getLogger(TxTesterBean.class); 54 55 @JndiInject(jndiName="java:/TransactionManager") TransactionManager tm; 56 57 @TransactionAttribute(TransactionAttributeType.MANDATORY) 58 public void txMandatoryMethod() 59 { 60 try 61 { 62 log.info("currentThread = " + Thread.currentThread()); 63 log.info("currentTransaction = " + tm.getTransaction()); 64 log.info("tm = " + tm); 65 66 Transaction tx = tm.getTransaction(); 67 if(tx == null) 68 throw new EJBException("no tx"); 69 70 if(tx.getStatus() != Status.STATUS_ACTIVE) 71 throw new EJBException("tx not active"); 72 } 73 catch(SystemException e) 74 { 75 throw new EJBException(e); 76 } 77 } 78 } 79