(no commit message)
[utils] / test / enterprise / src / main / java / org / wamblee / test / transactions / AutoCreateUserTransaction.java
1 /*
2  * Copyright 2005-2010 the original author or authors.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.wamblee.test.transactions;
17
18 import javax.transaction.HeuristicMixedException;
19 import javax.transaction.HeuristicRollbackException;
20 import javax.transaction.NotSupportedException;
21 import javax.transaction.RollbackException;
22 import javax.transaction.SystemException;
23 import javax.transaction.UserTransaction;
24
25 /**
26  * User transaction implemenetation that automatically creates thread specific transaction if needed.
27  * 
28  * @author Erik Brakkee
29  *
30  */
31 public class AutoCreateUserTransaction implements UserTransaction {
32     
33     private SimpleTransactionManager manager; 
34     
35     public AutoCreateUserTransaction(SimpleTransactionManager aManager) {
36         manager = aManager; 
37     }
38     
39     private UserTransaction getTransaction() { 
40         return manager.getOrCreateThreadSpecificTransaction(); 
41     }
42     
43     @Override
44     public void begin() throws NotSupportedException, SystemException {
45         getTransaction().begin();
46     }
47     
48     @Override
49     public void commit() throws RollbackException, HeuristicMixedException,
50         HeuristicRollbackException, SecurityException, IllegalStateException,
51         SystemException {
52         getTransaction().commit();
53     }
54     
55     @Override
56     public int getStatus() throws SystemException {
57         return getTransaction().getStatus();
58     }
59     
60     @Override
61     public void rollback() throws IllegalStateException, SecurityException,
62         SystemException {
63         getTransaction().rollback();
64     }
65     
66     @Override
67     public void setRollbackOnly() throws IllegalStateException, SystemException {
68         getTransaction().setRollbackOnly();
69     }
70     
71     @Override
72     public void setTransactionTimeout(int aSeconds) throws SystemException {
73         getTransaction().setTransactionTimeout(aSeconds);   
74     }
75
76 }