package net.sf.lab3f.mysql;
import java.io.IOException;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.net.URL;
import java.net.MalformedURLException;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.nio.channels.WritableByteChannel;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import net.sf.lab3f.osgi.Sqlable;
public class MysqlHolder implements Sqlable{
private Properties props = new Properties();
public void start () throws Exception{
props.load(new FileInputStream("conf/mysql.properties"));
}
public void stop () throws Exception{}// if(!connection.isClosed())connection.close(); }
public Connection getConnection() throws SQLException, ClassNotFoundException {
Class.forName(props.getProperty("jdbcDriver"));
Connection conn = DriverManager.getConnection(props.getProperty("jdbcUrl"));
System.out.println("[INFO] MySQL connection successfully (re)established.");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT VERSION()");
if(rs.next())System.out.println("[INFO] MySQL version = " + rs.getString(1));
else System.out.println("[WARN] MySQL version not detected.");
rs.close();
stmt.close();
return conn;
}
/*
private class MysqlLoader extends ClassLoader{
private final String prefix = "jar:file:../_classes/lib/";
public final Class findClass(String cln){
String jar = getJarName(cln);
if(jar == null)return null;
try{
final URL url = new URL(prefix + jar + "!/" + cln.replace('.', '/') + ".class");
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final WritableByteChannel wbch = Channels.newChannel(baos);
tuttiFrutti. ch2ch(Channels.newChannel(url.openStream()), wbch);
final byte[] ba = baos.toByteArray();
return defineClass(cln, ba, 0, ba.length);
}
catch(IOException ex){System.out.println(ex);return null;}
}
protected final URL findResource(String name){
try{return new URL(prefix + "mysql.jar!/" + name);}
catch(MalformedURLException ex){System.out.println(ex);return null;}
}
private final String getJarName(String cln){
return "mysql.jar";
// if(cln.startsWith("com.sleepycat"))return "je.jar";
// else if(cln.startsWith("javax.activation") || cln.startsWith("com.sun.activation"))return "activation.jar";
// else if(cln.startsWith("javax.mail") || cln.startsWith("com.sun.mail"))return "mail.jar";
// else if(cln.startsWith("org.opends.server.snmp"))return "extensions/snmp-mib2605.jar";
// else if(cln.startsWith("org.opends")) return "OpenDS.jar";
// else if(cln.startsWith("net.sf.lab3f.ods")) return "3f-helper.jar";
// else return null;
}
}*/
}