1 16 package org.outerj.daisy.backupTool; 17 18 import java.io.File ; 19 import java.util.Properties ; 20 21 import org.outerj.daisy.backupTool.dbDump.DbDumper; 22 import org.outerj.daisy.backupTool.dbDump.DbDumperFactory; 23 import org.outerj.daisy.configutil.PropertyResolver; 24 import org.w3c.dom.Document ; 25 import org.w3c.dom.Element ; 26 27 public class DaisyEntryLoader extends AbstractEntryLoader { 28 private static String XPATH_INDEX_DIR = "/targets/target[@path = '/daisy/repository/fullTextIndex']/configuration/indexDirectory"; 29 private static String XPATH_BLOB_DIR = "/targets/target[@path = '/daisy/repository/blobstore']/configuration/directory"; 30 private static String XPATH_PUBREQ_DIR = "/targets/target[@path = '/daisy/extensions/publisher/publisher']/configuration/publisherRequestDirectory"; 31 private Properties resolveProps; 32 33 public DaisyEntryLoader(File myConfigFile, File datadir) throws Exception { 34 super(myConfigFile); 35 resolveProps = new Properties (System.getProperties()); 36 resolveProps.setProperty("daisy.datadir", datadir.getAbsolutePath()); 37 } 38 39 public void createEntries(BackupInstance buInstance) throws Exception { 40 41 Element dbConfigElement = BackupHelper.getElementFromDom(configDocument, "/targets/target[@path = '/daisy/datasource/datasource']/configuration"); 42 43 DbDumper dbDumper = DbDumperFactory.createDbDumper(BackupHelper.getStringFromDom(dbConfigElement, "url"), BackupHelper.getStringFromDom( 44 dbConfigElement, "username"), BackupHelper.getStringFromDom(dbConfigElement, "password")); 45 46 File indexStoreDir = new File (resolve(BackupHelper.getStringFromDom(this.configDocument, XPATH_INDEX_DIR))); 47 File blobStoreDir = new File (resolve(BackupHelper.getStringFromDom(this.configDocument, XPATH_BLOB_DIR))); 48 File pubReqDir = new File (resolve(BackupHelper.getStringFromDom(this.configDocument, XPATH_PUBREQ_DIR))); 49 File confDir = new File (blobStoreDir.getParentFile(), "conf"); 50 51 52 buInstance.addEntry(createDbEntry(buInstance, dbDumper, "daisy-dbDump.zip")); 53 buInstance.addEntry(createFileEntry(buInstance, indexStoreDir, indexStoreDir, "daisy-indexstore.zip")); 54 buInstance.addEntry(createFileEntry(buInstance, blobStoreDir, blobStoreDir, "daisy-blobstore.zip")); 55 buInstance.addEntry(createFileEntry(buInstance, pubReqDir, pubReqDir, "daisy-pubreq.zip")); 56 buInstance.addEntry(createFileEntry(buInstance, confDir, confDir, "daisy-conf.zip")); 57 } 58 59 private String resolve(String value) { 60 return PropertyResolver.resolveProperties(value, resolveProps); 62 } 63 64 public void reloadEntries(BackupInstance buInstance) throws Exception { 65 String [] entries = new String [] { "daisy-dbDump.zip", "daisy-conf.zip" }; 66 if (areFilesBackedUp(buInstance, entries)) { 67 File oldConfFile = configFile; 68 File confTemp = new File (buInstance.getDirectory(), "confTemp"); 69 Document oldConfDocument = configDocument; 70 71 BackupHelper.unzipToDirectory(new File (buInstance.getDirectory(), "daisy-conf.zip"), confTemp); 72 configFile = new File (confTemp, "myconfig.xml"); 73 configDocument = BackupHelper.parseFile(configFile); 74 75 createEntries(buInstance); 76 BackupHelper.deleteFile(confTemp); 77 configFile = oldConfFile; 78 configDocument = oldConfDocument; 79 } else { 80 System.out.println("Daisy backup files were not found. Skipping restore of daisy"); 81 } 82 } 83 } 84 | Popular Tags |