/* * ============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 javax.servlet.ServletContext; import org.onap.portalsdk.analytics.system.DbUtils; import org.onap.portalsdk.analytics.system.Globals; import org.onap.portalsdk.analytics.system.fusion.adapter.RaptorAdapter; import org.onap.portalsdk.analytics.system.fusion.adapter.SpringContext; import com.mchange.v2.c3p0.ComboPooledDataSource; public class RemDbInfo { private HashMap remDbMap = null; private HashMap remDbTypeMap = null; private HashMap remDbConnectionMap = null; public RemDbInfo() throws Exception { if (remDbMap == null) { load(); } } private RaptorAdapter raptorAdapter; public void initializeDbUtils(ServletContext servletContext) { raptorAdapter = (RaptorAdapter)SpringContext.getApplicationContext().getBean("raptorAdapter"); } // initializeDbUtils public void load() throws Exception { remDbMap = new HashMap(); remDbTypeMap = new HashMap(); remDbConnectionMap = new HashMap(); try { //String query = " SELECT a.SCHEMA_ID, a.SCHEMA_DESC, DATASOURCE_TYPE, rownum id FROM SCHEMA_INFO a " + // " where schema_id = 'local' union " + // " SELECT a.SCHEMA_ID, a.SCHEMA_DESC, DATASOURCE_TYPE, (rownum+1) id FROM SCHEMA_INFO a " + // " where schema_id <> 'local' order by id "; String query = Globals.getRemoteDbSchemaSql(); DataSet ds = null; Globals.getDbUtils(); ds = DbUtils.executeQuery(query); String prefix = "", desc = "", dbType = "", connectionUrl = "", username = "", password = "", driver_class = ""; if(ds.getRowCount() > 0) { for (int i = 0; i < ds.getRowCount(); i++) { prefix = 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); remDbMap.put(prefix, desc); remDbTypeMap.put(prefix, dbType); remDbConnectionMap.put(prefix, cpds); } } else { remDbMap.put("local", "local"); remDbTypeMap.put("local", Globals.getDBType()); remDbConnectionMap.put("local", raptorAdapter.getConnection()); } } catch (Exception e) {} } public String getDesc(String prefix) { if ((remDbMap != null) && (remDbMap.containsKey(prefix))) { return (String) remDbMap.get(prefix); } return ""; } public String getDBType(String prefix) { if ((remDbTypeMap != null) && (remDbTypeMap.containsKey(prefix))) { return (String) remDbTypeMap.get(prefix); } return ""; } public Connection getDBConnection(String prefix) { if ((remDbConnectionMap != null) && (remDbConnectionMap.containsKey(prefix))) { try { return ((ComboPooledDataSource) remDbConnectionMap.get(prefix)).getConnection(); } catch (Exception ex) { ex.printStackTrace(); return null; } } return null; } public HashMap getDbHash() { return remDbMap; } public HashMap getDbTypeHash() { return remDbTypeMap; } }