| 1 16 package org.outerj.daisy.backupTool; 17 18 import java.io.File ; 19 import java.io.FileNotFoundException ; 20 import java.security.DigestException ; 21 22 import org.outerj.daisy.backupTool.dbDump.DbDumper; 23 import org.w3c.dom.Document ; 24 import org.w3c.dom.Element ; 25 26 public abstract class AbstractEntryLoader implements EntryLoader { 27 protected File configFile; 28 29 protected Document configDocument; 30 31 public AbstractEntryLoader(File configFile) throws Exception { 32 this.configFile = configFile; 33 configDocument = BackupHelper.parseFile(configFile); 34 } 35 36 protected boolean isFileBackedUp(BackupInstance buInstance, String backupFileName) throws Exception { 37 boolean entryOk = false; 38 Element entryElement = BackupHelper.getElementFromDom(buInstance.getInstanceDocument(), "/backupInstance/entry[@filename = '" + backupFileName + "']", false); 39 if (entryElement != null) { 40 File backupFile = new File (buInstance.getDirectory(), entryElement.getAttribute("filename")); 41 String hash = entryElement.getAttribute("checksum"); 42 if (!backupFile.exists()) { 43 throw new FileNotFoundException ("Backupfile " + backupFileName + " was not found"); 44 } else if (!hash.equals(BackupHelper.generateMD5Hash(backupFile))) 45 throw new DigestException (backupFileName + " has been tampered with"); 46 else 47 entryOk = true; 48 } else { 49 entryOk = false; 51 } 52 53 return entryOk; 54 } 55 56 protected boolean areFilesBackedUp(BackupInstance buInstance, String [] backupFiles) throws Exception { 57 boolean entriesOk = true; 58 for (int i = 0; i < backupFiles.length; i++) 59 entriesOk = entriesOk & isFileBackedUp(buInstance, backupFiles[i]); 60 61 return entriesOk; 62 } 63 64 protected DbBackupEntry createDbEntry(BackupInstance buInstance, DbDumper dumper, String backupFileName) { 65 return new DbBackupEntry(new File (buInstance.getDirectory(), backupFileName), dumper, buInstance); 66 } 67 68 protected FileBackupEntry createFileEntry(BackupInstance buInstance, File toBackup, File baseDir, String backupFileName) throws Exception { 69 return new FileBackupEntry(toBackup, new File (buInstance.getDirectory(), backupFileName), baseDir, buInstance); 70 } 71 } 72 | Popular Tags |