avatar

951

Set the new database settings in temporary fields, then on shutdown, move them into the actual configuration settings just before save, and delete the jbidwatcher.created_db setting, so next reload it will use the new database, and load the auctions.xml into it.

by mrs, 09 Jun, 2009 08:07 PM
751 951  
33 import com.jbidwatcher.util.config.JConfig;
44 import com.jbidwatcher.util.queue.MQFactory;
55 import com.jbidwatcher.util.db.ActiveRecord;
6 import com.jbidwatcher.util.db.Database;
67 import com.jbidwatcher.util.Constants;
78 import com.jbidwatcher.auction.server.AuctionStats;
89 import com.jbidwatcher.auction.server.AuctionServerManager;
------
171172     SearchManager.getInstance().saveSearches();
172173     AuctionStats as = AuctionServerManager.getInstance().getStats();
173174     JConfig.setConfiguration("last.auctioncount", Integer.toString(as.getCount()));
175     Database.saveDBConfig();
174176     JConfig.saveConfiguration(cfgFilename);
175     ActiveRecord.shutdown();
177     ActiveRecord.shutdown(); //  TODO -- Can this be put before the saveDBConfig?
176178     JConfig.log().logMessage("Shutting down JBidwatcher.");
177179     JConfig.log().closeLog();
178180     System.exit(0);
948 951  
7474       JConfig.kill("db.pass");
7575     } else if (mysqlDB.isSelected()) {
7676       String host = mysqlHost.getText();
77       JConfig.setConfiguration("db.mysql.host", host);
77 
7878       String port = mysqlPort.getText();
79       JConfig.setConfiguration("db.mysql.port", port);
8079       Integer portNum;
8180       try { portNum = Integer.parseInt(port); } catch(Exception e) { portNum = -1; }
81 
8282       String db = mysqlDatabase.getText();
83       JConfig.setConfiguration("db.mysql.database", db);
83 
8484       String connectURL = "jdbc:mysql://" + host;
8585       if(portNum != -1) connectURL += ":" + portNum;
8686       connectURL += "/";
8787 
88       JConfig.setConfiguration("db.framework", "remote");
89       JConfig.setConfiguration("db.protocol", connectURL);
90       JConfig.setConfiguration("db.driver", "com.mysql.jdbc.Driver");
91       JConfig.setConfiguration("db.user", mysqlUser.getText());
92       JConfig.setConfiguration("db.pass", new String(mysqlPassword.getPassword()));
88       JConfig.setConfiguration("db.mysql.host", host);
89       JConfig.setConfiguration("db.mysql.port", port);
90       JConfig.setConfiguration("db.mysql.database", db);
91       JConfig.setConfiguration("temp.db.framework", "remote");
92       JConfig.setConfiguration("temp.db.protocol", connectURL);
93       JConfig.setConfiguration("temp.db.driver", "com.mysql.jdbc.Driver");
94       JConfig.setConfiguration("temp.db.user", mysqlUser.getText());
95       JConfig.setConfiguration("temp.db.pass", new String(mysqlPassword.getPassword()));
9396     }
9497 
9598     return true;
948 951  
184184   public Connection getConnection() {
185185     return mConn;
186186   }
187 
188   public static void saveDBConfig() {
189     if(JConfig.queryConfiguration("temp.db.protocol") != null) {
190       String[] keys = { "db.framework", "db.protocol", "db.driver", "db.user", "db.pass" };
191       for(String key : keys) {
192         JConfig.setConfiguration(key, JConfig.queryConfiguration("temp." + key));
193       }
194       JConfig.kill("jbidwatcher.created_db");
195     }
196   }
187197 }