/**
* Copyright (c) 2013-2016, The SeedStack authors <http://seedstack.org>
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.seedstack.seed.transaction;
import org.seedstack.coffig.Config;
import org.seedstack.coffig.SingleValue;
import org.seedstack.seed.transaction.spi.TransactionHandler;
import org.seedstack.seed.transaction.spi.TransactionManager;
@Config("transaction")
public class TransactionConfig {
@SingleValue
private Class<? extends TransactionManager> manager;
private Class<? extends TransactionHandler<?>> defaultHandler;
private JtaConfig jta = new JtaConfig();
public Class<? extends TransactionManager> getManager() {
return manager;
}
public TransactionConfig setManager(Class<? extends TransactionManager> manager) {
this.manager = manager;
return this;
}
public Class<? extends TransactionHandler<?>> getDefaultHandler() {
return defaultHandler;
}
public TransactionConfig setDefaultHandler(Class<? extends TransactionHandler<?>> defaultHandler) {
this.defaultHandler = defaultHandler;
return this;
}
public JtaConfig jta() {
return jta;
}
@Config("jta")
public static class JtaConfig {
private static final String DEFAULT_USER_TRANSACTION_NAME = "java:comp/UserTransaction";
@SingleValue
private String txManagerName;
private String userTxName = DEFAULT_USER_TRANSACTION_NAME;
public String getTxManagerName() {
return txManagerName;
}
public JtaConfig setTxManagerName(String txManagerName) {
this.txManagerName = txManagerName;
return this;
}
public String getUserTxName() {
return userTxName;
}
public JtaConfig setUserTxName(String userTxName) {
this.userTxName = userTxName;
return this;
}
}
}