103 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package maxscale.java;
 | |
| 
 | |
| import java.sql.Connection;
 | |
| import java.sql.DriverManager;
 | |
| import java.sql.SQLException;
 | |
| import java.sql.Statement;
 | |
| 
 | |
| /**
 | |
|  * Simple MaxScale connection class
 | |
|  *
 | |
|  * Allows execution of queries to one of the MaxScale services configured for
 | |
|  * testing.
 | |
|  */
 | |
| public class MaxScaleConnection {
 | |
| 
 | |
|     private static String ip = null;
 | |
|     private static String user = null;
 | |
|     private static String password = null;
 | |
|     private static boolean smoke_test = false;
 | |
|     private Connection conn_rw = null, conn_master = null, conn_slave = null;
 | |
|     public static final int READWRITESPLIT_PORT = 4006;
 | |
|     public static final int READCONNROUTE_MASTER_PORT = 4008;
 | |
|     public static final int READCONNROUTE_SLAVE_PORT = 4009;
 | |
| 
 | |
|     public String getIp() {
 | |
|         return ip;
 | |
|     }
 | |
| 
 | |
|     public String getUser() {
 | |
|         return user;
 | |
|     }
 | |
| 
 | |
|     public String getPassword() {
 | |
|         return password;
 | |
|     }
 | |
| 
 | |
|     public Connection getConnRw() {
 | |
|         return conn_rw;
 | |
|     }
 | |
| 
 | |
|     public Connection getConnMaster() {
 | |
|         return conn_master;
 | |
|     }
 | |
| 
 | |
|     public Connection getConnSlave() {
 | |
|         return conn_slave;
 | |
|     }
 | |
| 
 | |
|     public void setConnRw(Connection conn) {
 | |
|         conn_rw = conn;
 | |
|     }
 | |
| 
 | |
|     public void setConnMaster(Connection conn) {
 | |
|         conn_master = conn;
 | |
|     }
 | |
| 
 | |
|     public void setConnSlave(Connection conn) {
 | |
|         conn_slave = conn;
 | |
|     }
 | |
| 
 | |
|     public MaxScaleConnection(String options) throws SQLException, Exception {
 | |
|         String s = System.getenv("smoke");
 | |
|         smoke_test = (s != null && s.compareTo("yes") == 0);
 | |
| 
 | |
|         if ((ip = System.getenv("maxscale_IP")) == null || ip.length() == 0) {
 | |
|             throw new Exception("Missing environment variable 'maxscale_IP'.");
 | |
|         }
 | |
| 
 | |
|         if ((user = System.getenv("maxscale_user")) == null || user.length() == 0) {
 | |
|             throw new Exception("Missing environment variable 'maxscale_user'.");
 | |
|         }
 | |
| 
 | |
|         if ((password = System.getenv("maxscale_password")) == null || password.length() == 0) {
 | |
|             throw new Exception("Missing environment variable 'maxscale_password'.");
 | |
|         }
 | |
| 
 | |
|         System.out.println("IP: " + ip + " User: " + user + " Password: " + password);
 | |
| 
 | |
|         Class.forName("org.mariadb.jdbc.Driver");
 | |
|         conn_rw = DriverManager.getConnection(
 | |
|                 "jdbc:mariadb://" + ip + ":" + READWRITESPLIT_PORT + "/test?" + options, user, password);
 | |
| 
 | |
|         conn_master = DriverManager.getConnection(
 | |
|                 "jdbc:mariadb://" + ip + ":" + READCONNROUTE_MASTER_PORT + "/test?" + options, user, password);
 | |
| 
 | |
|         conn_slave = DriverManager.getConnection(
 | |
|                 "jdbc:mariadb://" + ip + ":" + READCONNROUTE_SLAVE_PORT + "/test?" + options, user, password);
 | |
|     }
 | |
| 
 | |
|     public MaxScaleConnection() throws SQLException, Exception {
 | |
|         this("");
 | |
|     }
 | |
| 
 | |
|     public boolean isSmokeTest() {
 | |
|         return smoke_test;
 | |
|     }
 | |
| 
 | |
|     public void query(Connection connection, String query) throws SQLException {
 | |
|         Statement stmt = connection.createStatement();
 | |
|         stmt.execute(query);
 | |
|     }
 | |
| }
 | 
