View Javadoc

1   /***
2    * @(#)JotmTransactionServiceImpl.java
3    * 
4    * JFoxSOAF, Service-Oriented Application Framework
5    * 
6    * Copyright(c) JFoxSOAF Team
7    * 
8    * Licensed under the GNU LGPL, Version 2.1 (the "License"); 
9    * you may not use this file except in compliance with the License. 
10   * You may obtain a copy of the License at  
11   * 
12   * http://www.gnu.org/copyleft/lesser.html
13   * 
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS, 
16   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
17   * See the License for the specific language governing permissions and 
18   * limitations under the License. 
19   * 
20   * For more information, please visit:
21   * http://www.jfox.cn/confluence/display/JFoxSOAF/Home
22   * http://www.huihoo.org/jfox/jfoxsoaf
23   */
24  
25  package org.huihoo.jfox.soaf.services.transaction;
26  
27  import javax.naming.NamingException;
28  import javax.transaction.TransactionManager;
29  import javax.transaction.UserTransaction;
30  
31  import org.apache.commons.logging.Log;
32  import org.apache.commons.logging.LogFactory;
33  import org.objectweb.jotm.Jotm;
34  import org.objectweb.transaction.jta.TMService;
35  import org.picocontainer.Startable;
36  
37  /***
38   * <p>
39   * JOTM transaction service implementation.
40   * </p>
41   * 
42   * @author <a href="mailto:founder_chen@yahoo.com.cn">Peter Cheng </a>
43   * @version $Revision:$ $Date:$
44   * @version Revision: 1.0
45   */
46  
47  public class JotmTransactionServiceImpl implements JotmTransactionService,
48  		Startable {
49  	
50  	private TMService jotm;
51  	
52  	private final Log logger = LogFactory.getLog(getClass());
53  
54  	/***
55  	 * @see org.huihoo.jfox.soaf.services.transaction.JotmTransactionService#getTransactionManager()
56  	 */
57  	public TransactionManager getTransactionManager() {
58  		return jotm.getTransactionManager();
59  	}
60  
61  	/***
62  	 * @see org.huihoo.jfox.soaf.services.transaction.JotmTransactionService#getUserTransaction()
63  	 */
64  	public UserTransaction getUserTransaction() {
65  		return jotm.getUserTransaction();
66  	}
67  
68  	/***
69  	 * Start jotm transaction service.
70  	 * 
71  	 * @see org.picocontainer.Startable#start()
72  	 */
73  	public void start() {
74  		try {
75  			jotm = new Jotm(true, false);
76  		} catch (NamingException e) {
77  			logger.error("Failed to start JOTM transaction service " + e.getMessage());
78  		}
79  		logger.info("Start JOTM transaction service successful.");
80  	}
81  
82  	/***
83  	 * Stop jotm transaction service.
84  	 * 
85  	 * @see org.picocontainer.Startable#stop()
86  	 */
87  	public void stop() {
88  		jotm.stop();
89  		logger.info("Stop JOTM transaction service successful.");
90  	}
91  }