/* * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.boot.jta.narayana; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.springframework.boot.context.properties.ConfigurationProperties; /** * Subset of Narayana properties which can be configured via Spring configuration. Use * jbossts-properties.xml for complete configuration. * * @author Gytis Trikleris * @since 1.4.0 */ @ConfigurationProperties(prefix = NarayanaProperties.PROPERTIES_PREFIX) public class NarayanaProperties { /** * Prefix for Narayana specific properties. */ public static final String PROPERTIES_PREFIX = "spring.jta.narayana"; /** * Transaction object store directory. */ private String logDir; /** * Unique transaction manager id. */ private String transactionManagerId = "1"; /** * Enable one phase commit optimization. */ private boolean onePhaseCommit = true; /** * Transaction timeout in seconds. */ private int defaultTimeout = 60; /** * Interval in which periodic recovery scans are performed in seconds. */ private int periodicRecoveryPeriod = 120; /** * Back off period between first and second phases of the recovery scan in seconds. */ private int recoveryBackoffPeriod = 10; /** * Database username to be used by recovery manager. */ private String recoveryDbUser = null; /** * Database password to be used by recovery manager. */ private String recoveryDbPass = null; /** * JMS username to be used by recovery manager. */ private String recoveryJmsUser = null; /** * JMS password to be used by recovery manager. */ private String recoveryJmsPass = null; /** * Comma-separated list of orphan filters. */ private List<String> xaResourceOrphanFilters = new ArrayList<String>(Arrays.asList( "com.arjuna.ats.internal.jta.recovery.arjunacore.JTATransactionLogXAResourceOrphanFilter", "com.arjuna.ats.internal.jta.recovery.arjunacore.JTANodeNameXAResourceOrphanFilter")); /** * Comma-separated list of recovery modules. */ private List<String> recoveryModules = new ArrayList<String>(Arrays.asList( "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule", "com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule")); /** * Comma-separated list of expiry scanners. */ private List<String> expiryScanners = new ArrayList<String>(Collections.singletonList( "com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner")); public String getLogDir() { return this.logDir; } public void setLogDir(String logDir) { this.logDir = logDir; } public String getTransactionManagerId() { return this.transactionManagerId; } public void setTransactionManagerId(String transactionManagerId) { this.transactionManagerId = transactionManagerId; } public boolean isOnePhaseCommit() { return this.onePhaseCommit; } public void setOnePhaseCommit(boolean onePhaseCommit) { this.onePhaseCommit = onePhaseCommit; } public int getDefaultTimeout() { return this.defaultTimeout; } public int getPeriodicRecoveryPeriod() { return this.periodicRecoveryPeriod; } public void setPeriodicRecoveryPeriod(int periodicRecoveryPeriod) { this.periodicRecoveryPeriod = periodicRecoveryPeriod; } public int getRecoveryBackoffPeriod() { return this.recoveryBackoffPeriod; } public void setRecoveryBackoffPeriod(int recoveryBackoffPeriod) { this.recoveryBackoffPeriod = recoveryBackoffPeriod; } public void setDefaultTimeout(int defaultTimeout) { this.defaultTimeout = defaultTimeout; } public List<String> getXaResourceOrphanFilters() { return this.xaResourceOrphanFilters; } public void setXaResourceOrphanFilters(List<String> xaResourceOrphanFilters) { this.xaResourceOrphanFilters = xaResourceOrphanFilters; } public List<String> getRecoveryModules() { return this.recoveryModules; } public void setRecoveryModules(List<String> recoveryModules) { this.recoveryModules = recoveryModules; } public List<String> getExpiryScanners() { return this.expiryScanners; } public void setExpiryScanners(List<String> expiryScanners) { this.expiryScanners = expiryScanners; } public String getRecoveryDbUser() { return this.recoveryDbUser; } public void setRecoveryDbUser(String recoveryDbUser) { this.recoveryDbUser = recoveryDbUser; } public String getRecoveryDbPass() { return this.recoveryDbPass; } public void setRecoveryDbPass(String recoveryDbPass) { this.recoveryDbPass = recoveryDbPass; } public String getRecoveryJmsUser() { return this.recoveryJmsUser; } public void setRecoveryJmsUser(String recoveryJmsUser) { this.recoveryJmsUser = recoveryJmsUser; } public String getRecoveryJmsPass() { return this.recoveryJmsPass; } public void setRecoveryJmsPass(String recoveryJmsPass) { this.recoveryJmsPass = recoveryJmsPass; } }