1 package org.mvnforum.phpbb2mvnforum; 2 import java.io.File ; 3 import java.io.FileOutputStream ; 4 import java.io.PrintStream ; 5 import java.sql.*; 6 7 import net.myvietnam.mvncore.exception.CreateException; 8 import net.myvietnam.mvncore.exception.DatabaseException; 9 import net.myvietnam.mvncore.exception.DuplicateKeyException; 10 import net.myvietnam.mvncore.exception.ForeignKeyNotFoundException; 11 import net.myvietnam.mvncore.exception.ObjectNotFoundException; 12 13 import org.mvnforum.util.DBUtils; 14 import org.mvnforum.util.Phpbb2MvnforumConfig; 15 16 17 67 68 71 public class PHPBBToMvnForum { 72 Connection phpbb_c = null; 73 Connection mvnforum_c = null; 74 PrintStream sqlout = null; 75 76 77 88 public PHPBBToMvnForum(String phphost, String phpdb, String phpuser, String phppass, 89 String mvnhost, String mvndb, String mvnuser, String mvnpass, 90 PrintStream ostream) throws Exception { 91 92 if(ostream == null) 93 throw new Exception ("Outputstream is null."); 94 95 String phpurl = "jdbc:mysql://" + phphost + "/" + phpdb; 96 String mvnurl = "jdbc:mysql://" + mvnhost + "/" + mvndb; 97 98 try 99 { 100 Class.forName("com.mysql.jdbc.Driver").newInstance(); 101 } 102 catch (Exception E) 103 { 104 System.err.println("Unable to load driver."); 105 E.printStackTrace(); 106 } 107 108 phpbb_c = DriverManager.getConnection(phpurl, phpuser, phppass); 109 110 if((mvnhost == null) || (mvndb == null) ||(mvnuser == null) ||(mvnpass == null)) 111 { 112 mvnforum_c = null; 113 } 114 else 115 { 116 mvnforum_c = DriverManager.getConnection(mvnurl, mvnuser, mvnpass); 117 } 118 119 sqlout = ostream; 120 } 121 122 127 public void convert() { 128 try 129 { 130 System.out.println("Conversion started..."); 131 Migrator.migratecategories(sqlout); 133 Migrator.migrateforums(sqlout); 134 DBUtils.writeXmlFile(DBUtils.getDomDocument(), Phpbb2MvnforumConfig.EXPORT_XML); 138 System.out.println("Conversion complete..."); 139 } 140 catch (SQLException E) 141 { 142 System.out.println("Exception during conversion..."); 143 System.out.println("SQLException: " + E.getMessage()); 144 System.out.println("SQLState: " + E.getSQLState()); 145 System.out.println("VendorError: " + E.getErrorCode()); 146 } catch (DatabaseException e) { 147 e.printStackTrace(); 149 } catch (CreateException e) { 150 e.printStackTrace(); 152 } catch (DuplicateKeyException e) { 153 e.printStackTrace(); 155 } catch (ForeignKeyNotFoundException e) { 156 e.printStackTrace(); 158 } catch (ObjectNotFoundException e) { 159 e.printStackTrace(); 161 } 162 163 164 try 165 { 166 phpbb_c.close(); 167 if(mvnforum_c != null) 168 { 169 mvnforum_c.close(); 170 } 171 } 172 catch (SQLException e) 173 { 174 e.printStackTrace(); 175 } 176 177 sqlout.close(); 178 } 179 180 public static void main(String [] args) throws Exception { 181 182 String phphost = Phpbb2MvnforumConfig.PHP_HOST; 183 String phpdb = Phpbb2MvnforumConfig.PHP_DB; 184 String phpuser = Phpbb2MvnforumConfig.PHP_USER; 185 String phppass = Phpbb2MvnforumConfig.PHP_PASS; 186 String mvnhost = Phpbb2MvnforumConfig.MVN_HOST; 187 String mvndb = Phpbb2MvnforumConfig.MVN_DB; 188 String mvnuser = Phpbb2MvnforumConfig.MVN_USER; 189 String mvnpass = Phpbb2MvnforumConfig.MVN_PASS; 190 String filename = Phpbb2MvnforumConfig.FILE_NAME; 191 192 PrintStream ostream = System.out; 193 194 if(filename != null) 195 { 196 File f = new File (filename); 197 FileOutputStream fout = new FileOutputStream (f); 198 ostream = new PrintStream (fout, true); 199 } 200 201 (new PHPBBToMvnForum(phphost, phpdb, phpuser, phppass, 202 mvnhost, mvndb, mvnuser, mvnpass, 203 ostream)).convert(); 204 } 205 } 206 | Popular Tags |