package com.alibaba.cobar.manager.qa.modle; import java.io.IOException; import java.util.Properties; import com.alibaba.cobar.manager.dao.delegate.CobarAdapter; import com.alibaba.druid.pool.DruidDataSource; public class CobarFactory { public static CobarAdapter getCobarAdapter(String cobarNodeName) throws IOException { CobarAdapter cAdapter = new CobarAdapter(); Properties prop = new Properties(); prop.load(CobarFactory.class.getClassLoader().getResourceAsStream("cobarNode.properties")); DruidDataSource ds = new DruidDataSource(); String user = prop.getProperty(cobarNodeName + ".user").trim(); String password = prop.getProperty(cobarNodeName + ".password").trim(); String ip = prop.getProperty(cobarNodeName + ".ip").trim(); int managerPort = Integer.parseInt(prop.getProperty(cobarNodeName + ".manager.port").trim()); int maxActive = -1; int minIdle = 0; long timeBetweenEvictionRunsMillis = 10 * 60 * 1000; // int numTestsPerEvictionRun = Integer.MAX_VALUE; long minEvictableIdleTimeMillis = DruidDataSource.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS; ds.setUsername(user); ds.setPassword(password); ds.setUrl(new StringBuilder().append("jdbc:mysql://") .append(ip) .append(":") .append(managerPort) .append("/") .toString()); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setMaxActive(maxActive); ds.setMinIdle(minIdle); ds.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); // ds.setNumTestsPerEvictionRun(numTestsPerEvictionRun); ds.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); cAdapter.setDataSource(ds); return cAdapter; } public static SimpleCobarNode getSimpleCobarNode(String cobarNodeName) throws Exception { Properties prop = new Properties(); prop.load(CobarFactory.class.getClassLoader().getResourceAsStream("cobarNode.properties")); String user = prop.getProperty(cobarNodeName + ".user").trim(); String password = prop.getProperty(cobarNodeName + ".password").trim(); String ip = prop.getProperty(cobarNodeName + ".ip").trim(); int dmlPort = Integer.parseInt(prop.getProperty(cobarNodeName + ".dml.port").trim()); int managerPort = Integer.parseInt(prop.getProperty(cobarNodeName + ".manager.port").trim()); SimpleCobarNode sCobarNode = new SimpleCobarNode(ip, dmlPort, managerPort, user, password); return sCobarNode; } }