import java.awt.Insets; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Properties; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextArea; public class RepositoryUploader { private static Properties p; private static FileInputStream fis; private static Connection c; private static PreparedStatement ps; private static String loadProperties(String filename) { try { FileInputStream fis = new FileInputStream(filename); p = new Properties(); p.loadFromXML(fis); fis.close(); return("OK\n"); } catch(Exception e) { return("FAILED\n"); } } private static String openFileInputStream(File f) { try { fis = new FileInputStream(f); return("OK\n"); } catch(Exception e) { return("FAILED\n"); } } private static String openConnection() { try { Class.forName("com.mysql.jdbc.Driver"); c = DriverManager.getConnection("jdbc:mysql://" + p.getProperty("url"), p); return("OK\n"); } catch(Exception e) { return("FAILED\n"); } } private static String transferFile(String filename, long length) { try { ps = c.prepareStatement("call sp_insert_file (?, ?, ?)"); ps.setString(1, filename); ps.setLong(2, length); ps.setBinaryStream(3, fis, (int)length); ps.executeUpdate(); return("OK\n"); } catch(Exception e) { return("FAILED\n"); } } private static String closeConnection() { try { ps.close(); c.close(); fis.close(); return("OK\n"); } catch(Exception e) { return("FAILED\n"); } } public static void main(String[] args) throws Exception { File f = new File(args[0]); JFrame jf = new JFrame("RepositoryUploader"); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setLocation(250, 250); JTextArea jta = new JTextArea(10, 30); jta.setEditable(false); jta.setMargin(new Insets(5, 5, 5, 5)); jf.getContentPane().add(jta); jf.pack(); jf.setVisible(true); jta.append("Loading connection properties... "); jta.append(loadProperties("properties")); jta.append("Reading file into memory... "); jta.append(openFileInputStream(f)); jta.append("Connecting to server... "); jta.append(openConnection()); jta.append("Transferring file to server... "); jta.append(transferFile(f.getName(), f.length())); jta.append("Disconnecting from server... "); jta.append(closeConnection()); jta.append("***** Finished *****"); } }