blob: 11ea01d5db972573e901c2f3293ab99094aaa7d1 [file] [log] [blame]
/*******************************************************************************
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.ofbiz.entity.config.model;
import org.ofbiz.base.lang.ThreadSafe;
import org.ofbiz.entity.GenericEntityConfException;
import org.ofbiz.entity.config.EntityConfigUtil;
import org.w3c.dom.Element;
/**
* An object that models the <code>&lt;inline-jdbc&gt;</code> element.
*
* @see <code>entity-config.xsd</code>
*/
@ThreadSafe
public final class InlineJdbc extends JdbcElement {
private final String jdbcDriver; // type = xs:string
private final String jdbcUri; // type = xs:string
private final String jdbcUsername; // type = xs:string
private final String jdbcPassword; // type = xs:string
private final String jdbcPasswordLookup; // type = xs:string
private final int poolMaxsize; // type = xs:nonNegativeInteger
private final int poolMinsize; // type = xs:nonNegativeInteger
private final int idleMaxsize; // type = xs:nonNegativeInteger
private final int timeBetweenEvictionRunsMillis; // type = xs:nonNegativeInteger
private final int poolSleeptime; // type = xs:nonNegativeInteger
private final int poolLifetime; // type = xs:nonNegativeInteger
private final int poolDeadlockMaxwait; // type = xs:nonNegativeInteger
private final int poolDeadlockRetrywait; // type = xs:nonNegativeInteger
private final String poolJdbcTestStmt; // type = xs:string
private final String poolXaWrapperClass; // type = xs:string
InlineJdbc(Element element) throws GenericEntityConfException {
super(element);
String lineNumberText = EntityConfigUtil.createConfigFileLineNumberText(element);
String jdbcDriver = element.getAttribute("jdbc-driver").intern();
if (jdbcDriver.isEmpty()) {
throw new GenericEntityConfException("<inline-jdbc> element jdbc-driver attribute is empty" + lineNumberText);
}
this.jdbcDriver = jdbcDriver;
String jdbcUri = element.getAttribute("jdbc-uri").intern();
if (jdbcUri.isEmpty()) {
throw new GenericEntityConfException("<inline-jdbc> element jdbc-uri attribute is empty" + lineNumberText);
}
this.jdbcUri = jdbcUri;
String jdbcUsername = element.getAttribute("jdbc-username").intern();
if (jdbcUsername.isEmpty()) {
throw new GenericEntityConfException("<inline-jdbc> element jdbc-username attribute is empty" + lineNumberText);
}
this.jdbcUsername = jdbcUsername;
this.jdbcPassword = element.getAttribute("jdbc-password").intern();
this.jdbcPasswordLookup = element.getAttribute("jdbc-password-lookup").intern();
String poolMaxsize = element.getAttribute("pool-maxsize");
if (poolMaxsize.isEmpty()) {
this.poolMaxsize = 50;
} else {
try {
this.poolMaxsize = Integer.parseInt(poolMaxsize);
} catch (Exception e) {
throw new GenericEntityConfException("<inline-jdbc> element pool-maxsize attribute is invalid" + lineNumberText);
}
}
String poolMinsize = element.getAttribute("pool-minsize");
if (poolMinsize.isEmpty()) {
this.poolMinsize = 2;
} else {
try {
this.poolMinsize = Integer.parseInt(poolMinsize);
} catch (Exception e) {
throw new GenericEntityConfException("<inline-jdbc> element pool-minsize attribute is invalid" + lineNumberText);
}
}
String idleMaxsize = element.getAttribute("idle-maxsize");
if (idleMaxsize.isEmpty()) {
this.idleMaxsize = this.poolMaxsize / 2;
} else {
try {
this.idleMaxsize = Integer.parseInt(idleMaxsize);
} catch (Exception e) {
throw new GenericEntityConfException("<inline-jdbc> element idle-maxsize attribute is invalid" + lineNumberText);
}
}
String timeBetweenEvictionRunsMillis = element.getAttribute("time-between-eviction-runs-millis");
if (timeBetweenEvictionRunsMillis.isEmpty()) {
this.timeBetweenEvictionRunsMillis = 600000;
} else {
try {
this.timeBetweenEvictionRunsMillis = Integer.parseInt(timeBetweenEvictionRunsMillis);
} catch (Exception e) {
throw new GenericEntityConfException("<inline-jdbc> element time-between-eviction-runs-millis attribute is invalid" + lineNumberText);
}
}
String poolSleeptime = element.getAttribute("pool-sleeptime");
if (poolSleeptime.isEmpty()) {
this.poolSleeptime = 300000;
} else {
try {
this.poolSleeptime = Integer.parseInt(poolSleeptime);
} catch (Exception e) {
throw new GenericEntityConfException("<inline-jdbc> element pool-sleeptime attribute is invalid" + lineNumberText);
}
}
String poolLifetime = element.getAttribute("pool-lifetime");
if (poolLifetime.isEmpty()) {
this.poolLifetime = 600000;
} else {
try {
this.poolLifetime = Integer.parseInt(poolLifetime);
} catch (Exception e) {
throw new GenericEntityConfException("<inline-jdbc> element pool-lifetime attribute is invalid" + lineNumberText);
}
}
String poolDeadlockMaxwait = element.getAttribute("pool-deadlock-maxwait");
if (poolDeadlockMaxwait.isEmpty()) {
this.poolDeadlockMaxwait = 300000;
} else {
try {
this.poolDeadlockMaxwait = Integer.parseInt(poolDeadlockMaxwait);
} catch (Exception e) {
throw new GenericEntityConfException("<inline-jdbc> element pool-deadlock-maxwait attribute is invalid" + lineNumberText);
}
}
String poolDeadlockRetrywait = element.getAttribute("pool-deadlock-retrywait");
if (poolDeadlockRetrywait.isEmpty()) {
this.poolDeadlockRetrywait = 10000;
} else {
try {
this.poolDeadlockRetrywait = Integer.parseInt(poolDeadlockRetrywait);
} catch (Exception e) {
throw new GenericEntityConfException("<inline-jdbc> element pool-deadlock-retrywait attribute is invalid" + lineNumberText);
}
}
this.poolJdbcTestStmt = element.getAttribute("pool-jdbc-test-stmt").intern();
this.poolXaWrapperClass = element.getAttribute("pool-xa-wrapper-class").intern();
}
/** Returns the value of the <code>jdbc-driver</code> attribute. */
public String getJdbcDriver() {
return this.jdbcDriver;
}
/** Returns the value of the <code>jdbc-uri</code> attribute. */
public String getJdbcUri() {
return this.jdbcUri;
}
/** Returns the value of the <code>jdbc-username</code> attribute. */
public String getJdbcUsername() {
return this.jdbcUsername;
}
/** Returns the value of the <code>jdbc-password</code> attribute. */
public String getJdbcPassword() {
return this.jdbcPassword;
}
/** Returns the value of the <code>jdbc-password-lookup</code> attribute. */
public String getJdbcPasswordLookup() {
return this.jdbcPasswordLookup;
}
/** Returns the value of the <code>pool-maxsize</code> attribute. */
public int getPoolMaxsize() {
return this.poolMaxsize;
}
/** Returns the value of the <code>pool-minsize</code> attribute. */
public int getPoolMinsize() {
return this.poolMinsize;
}
/** Returns the value of the <code>idle-maxsize</code> attribute. */
public int getIdleMaxsize() {
return this.idleMaxsize;
}
/** Returns the value of the <code>time-between-eviction-runs-millis</code> attribute. */
public int getTimeBetweenEvictionRunsMillis() {
return this.timeBetweenEvictionRunsMillis;
}
/** Returns the value of the <code>pool-sleeptime</code> attribute. */
public int getPoolSleeptime() {
return this.poolSleeptime;
}
/** Returns the value of the <code>pool-lifetime</code> attribute. */
public int getPoolLifetime() {
return this.poolLifetime;
}
/** Returns the value of the <code>pool-deadlock-maxwait</code> attribute. */
public int getPoolDeadlockMaxwait() {
return this.poolDeadlockMaxwait;
}
/** Returns the value of the <code>pool-deadlock-retrywait</code> attribute. */
public int getPoolDeadlockRetrywait() {
return this.poolDeadlockRetrywait;
}
/** Returns the value of the <code>pool-jdbc-test-stmt</code> attribute. */
public String getPoolJdbcTestStmt() {
return this.poolJdbcTestStmt;
}
/** Returns the value of the <code>pool-xa-wrapper-class</code> attribute. */
public String getPoolXaWrapperClass() {
return this.poolXaWrapperClass;
}
}