/*
* Copyright 2017 the original author or authors.
*
* Licensed 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.glowroot.agent.sql;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Properties;
import javax.annotation.Nullable;
public class DriverManager {
private static final Driver driver = new org.h2.Driver();
private static volatile int loginTimeout;
private static volatile @Nullable PrintWriter logWriter;
private static volatile @Nullable PrintStream logStream;
private DriverManager() {}
public static Connection getConnection(String url) throws SQLException {
return getConnection(url, new Properties());
}
public static Connection getConnection(String url, String user, String password)
throws SQLException {
Properties info = new Properties();
info.put("user", user);
info.put("password", password);
return getConnection(url, info);
}
public static Connection getConnection(String url, Properties info) throws SQLException {
return driver.connect(url, info);
}
public static Driver getDriver(@SuppressWarnings("unused") String url) throws SQLException {
return driver;
}
public static void registerDriver(@SuppressWarnings("unused") Driver driver)
throws SQLException {}
public static void deregisterDriver(@SuppressWarnings("unused") Driver driver) {}
public static Enumeration<Driver> getDrivers() {
return Collections.enumeration(Arrays.asList(driver));
}
public static int getLoginTimeout() {
return loginTimeout;
}
public static void setLoginTimeout(int loginTimeout) {
DriverManager.loginTimeout = loginTimeout;
}
public static @Nullable PrintWriter getLogWriter() {
return logWriter;
}
public static void setLogWriter(@Nullable PrintWriter logWriter) {
DriverManager.logWriter = logWriter;
}
public static void setLogStream(@Nullable PrintStream logStream) {
DriverManager.logStream = logStream;
}
public static @Nullable PrintStream getLogStream() {
return logStream;
}
public static void println(@SuppressWarnings("unused") String message) {}
}