01: /*
02: * Copyright 2004 Clinton Begin
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
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 com.ibatis.sqlmap.engine.transaction.external;
17:
18: import com.ibatis.sqlmap.engine.transaction.BaseTransactionConfig;
19: import com.ibatis.sqlmap.engine.transaction.Transaction;
20: import com.ibatis.sqlmap.engine.transaction.TransactionException;
21:
22: import javax.sql.DataSource;
23: import java.sql.SQLException;
24: import java.util.Properties;
25:
26: public class ExternalTransactionConfig extends BaseTransactionConfig {
27:
28: private DataSource dataSource;
29: private boolean defaultAutoCommit = false;
30: private boolean setAutoCommitAllowed = true;
31:
32: public DataSource getDataSource() {
33: return dataSource;
34: }
35:
36: public void setDataSource(DataSource ds) {
37: this .dataSource = ds;
38: }
39:
40: public void initialize(Properties props) throws SQLException,
41: TransactionException {
42: String dacProp = props.getProperty("DefaultAutoCommit");
43: String sacaProp = props.getProperty("SetAutoCommitAllowed");
44: defaultAutoCommit = "true".equals(dacProp);
45: setAutoCommitAllowed = "true".equals(sacaProp)
46: || sacaProp == null;
47: }
48:
49: public Transaction newTransaction(int transactionIsolation)
50: throws SQLException, TransactionException {
51: return new ExternalTransaction(dataSource, defaultAutoCommit,
52: setAutoCommitAllowed, transactionIsolation);
53: }
54:
55: }
|