1 21 package com.db4o.db4ounit.common.defragment; 22 23 import java.io.*; 24 25 import com.db4o.*; 26 import com.db4o.config.*; 27 import com.db4o.defragment.*; 28 import com.db4o.foundation.*; 29 30 import db4ounit.extensions.fixtures.*; 31 32 public class Db4oDefragSolo extends Db4oSolo { 33 public Db4oDefragSolo(ConfigurationSource configSource) { 34 super(configSource); 35 } 36 37 protected ObjectContainer createDatabase(Configuration config) { 38 File origFile=new File(getAbsolutePath()); 39 if(origFile.exists()) { 40 try { 41 String backupFile = getAbsolutePath()+".defrag.backup"; 42 DefragmentConfig defragConfig = new DefragmentConfig(getAbsolutePath(), backupFile); 43 defragConfig.forceBackupDelete(true); 44 Configuration clonedConfig=(Configuration)((DeepClone)config).deepClone(null); 46 defragConfig.db4oConfig(clonedConfig); 47 Defragment.defrag(defragConfig, new DefragmentListener() { 48 public void notifyDefragmentInfo(DefragmentInfo info) { 49 System.err.println(info); 50 } 51 }); 52 } catch (IOException e) { 53 e.printStackTrace(); 54 } 55 } 56 return super.createDatabase(config); 57 } 58 59 public boolean accept(Class clazz) { 60 return !OptOutDefragSolo.class.isAssignableFrom(clazz); 61 } 62 63 } | Popular Tags |