/* * ============LICENSE_START========================================== * ONAP Portal SDK * =================================================================== * Copyright © 2017 AT&T Intellectual Property. All rights reserved. * =================================================================== * * Unless otherwise specified, all software contained herein is licensed * under the Apache License, Version 2.0 (the "License"); * you may not use this software 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. * * Unless otherwise specified, all documentation contained herein is licensed * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); * you may not use this documentation except in compliance with the License. * You may obtain a copy of the License at * * https://creativecommons.org/licenses/by/4.0/ * * Unless required by applicable law or agreed to in writing, documentation * 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. * * ============LICENSE_END============================================ * * */ package org.onap.portalsdk.analytics.util; import java.sql.Connection; import java.util.HashMap; import org.onap.portalsdk.analytics.system.DbUtils; import org.onap.portalsdk.analytics.system.Globals; import org.springframework.stereotype.Component; import com.mchange.v2.c3p0.ComboPooledDataSource; @Component public class RemDbInfo { private static HashMap remDbMap = null; private static HashMap remDbTypeMap = null; private static HashMap remDbConnectionMap = null; public static void load() { if(remDbMap!=null) return; remDbMap = new HashMap(); remDbTypeMap = new HashMap(); remDbConnectionMap = new HashMap(); try { String query = Globals.getRemoteDbSchemaSql(); DataSet ds = null; Globals.getDbUtils(); ds = DbUtils.executeQuery(query); String dbId = "", desc = "", dbType = "", connectionUrl = "", username = "", password = "", driver_class = ""; if(ds.getRowCount() > 0) { for (int i = 0; i < ds.getRowCount(); i++) { dbId = ds.getItem(i, 0); desc = ds.getItem(i, 1); dbType = ds.getItem(i, 2); connectionUrl = ds.getItem(i, 3); username = ds.getItem(i, 4); password = ds.getItem(i, 5); driver_class = ds.getItem(i, 6); ComboPooledDataSource cpds = new ComboPooledDataSource(); cpds.setDriverClass( driver_class ); //loads the jdbc driver cpds.setJdbcUrl( connectionUrl); cpds.setUser(username); cpds.setPassword(password); cpds.setMinPoolSize(Integer.parseInt(ds.getItem(i, 7))); cpds.setMaxPoolSize(Integer.parseInt(ds.getItem(i, 8))); cpds.setIdleConnectionTestPeriod(Integer.parseInt(ds.getItem(i, 9))); remDbMap.put(dbId, desc); remDbTypeMap.put(dbId, dbType); remDbConnectionMap.put(dbId, cpds); } } } catch (Exception e) {} } public String getDesc(String dbId) { if ((remDbMap != null) && (remDbMap.containsKey(dbId))) { return (String) remDbMap.get(dbId); } return ""; } public String getDBType(String dbId) { if ((remDbTypeMap != null) && (remDbTypeMap.containsKey(dbId))) { return (String) remDbTypeMap.get(dbId); } return ""; } public Connection getDBConnection(String dbId) { if ((remDbConnectionMap != null) && (remDbConnectionMap.containsKey(dbId))) { try { return ((ComboPooledDataSource) remDbConnectionMap.get(dbId)).getConnection(); } catch (Exception ex) { ex.printStackTrace(); return null; } } return null; } public HashMap getDbHash() { return remDbMap; } public HashMap getDbTypeHash() { return remDbTypeMap; } }