dbFreeze.set(false);
}
}
public static void importData(String appcode,String importData) throws UnableToImportDbException{
ODatabaseRecordTx db = null;
java.io.File f = null;
try{
Logger.info("Initializing restore operation..:");
Logger.info("...dropping the old db..:");
DbHelper.shutdownDB(false);
f = java.io.File.createTempFile("import", ".json");
FileUtils.writeStringToFile(f, importData);
synchronized(DbHelper.class) {
if(!dbFreeze.get()){
dbFreeze.set(true);
}
}
db=getConnection();
Logger.info("...unregistering hooks...");
HooksManager.unregisteredAll(db);
Logger.info("...drop the O-Classes...");
db.getMetadata().getSchema().dropClass("OFunction");
db.getMetadata().getSchema().dropClass("OSchedule");
db.getMetadata().getSchema().dropClass("ORIDs");
ODatabaseDocumentTx dbd = new ODatabaseDocumentTx(db);
ODatabaseImport oi = new ODatabaseImport(dbd, f.getAbsolutePath(), new OCommandOutputListener() {
@Override
public void onMessage(String m) {
Logger.info("Restore db: " + m);
}
});
oi.setIncludeManualIndexes(true);
oi.setUseLineFeedForRecords(true);
oi.setPreserveClusterIDs(true);
oi.setPreserveRids(true);
Logger.info("...starting import procedure...");
oi.importDatabase();
oi.close();
Logger.info("...setting up internal user credential...");
updateDefaultUsers();
Logger.info("...setting up DataBase attributes...");
setupAttributes();
Logger.info("...registering hooks...");
evolveDB(db);
HooksManager.registerAll(db);
Logger.info("...extract iOS certificates...");
IosCertificateHandler.init();
}catch(Exception ioe){
Logger.error("*** Error importing the db: ", ioe);
throw new UnableToImportDbException(ioe);
}finally{
if(db!=null && ! db.isClosed()){
db.close();
}
Logger.info("...releasing the db...");
dbFreeze.set(false);
if(f!=null && f.exists()){
f.delete();