| /******************************************************************************* |
| * 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><inline-jdbc></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; |
| } |
| } |