package org.skywalking.apm.plugin.jdbc.connectionurl.parser;
import org.skywalking.apm.plugin.jdbc.ConnectionInfo;
/**
* {@link URLParser#parser(String)} support parse the connection url, such as Mysql, Oracle, H2 Database.
* But there are some url cannot be parsed, such as Oracle connection url with multiple host.
*
* @author zhangxin
*/
public class URLParser {
private static final String MYSQL_JDBC_URL_PREFIX = "jdbc:mysql";
private static final String ORACLE_JDBC_URL_PREFIX = "jdbc:oracle";
private static final String H2_JDBC_URL_PREFIX = "jdbc:h2";
public static ConnectionInfo parser(String url) {
ConnectionURLParser parser = null;
if (url.startsWith(MYSQL_JDBC_URL_PREFIX)) {
parser = new MysqlURLParser(url);
} else if (url.startsWith(ORACLE_JDBC_URL_PREFIX)) {
parser = new OracleURLParser(url);
} else if (url.startsWith(H2_JDBC_URL_PREFIX)) {
parser = new H2URLParser(url);
}
return parser.parse();
}
}