| 1 package net.sf.invicta.process; 2 3 import java.util.ArrayList ; 4 import java.util.Iterator ; 5 import java.util.List ; 6 7 import net.sf.invicta.InvictaException; 8 import net.sf.invicta.Logger; 9 import net.sf.invicta.api.InvictaProject; 10 import net.sf.invicta.dumper.InvictaDumper; 11 import sun.misc.Service; 12 13 18 public class DumpersManager { 19 protected ConfigurationManager configurationManager; 20 protected boolean forceRun = false; 21 protected List dumpers = new ArrayList (); 22 23 28 public DumpersManager(ConfigurationManager configurationManager) throws InvictaException { 29 this.configurationManager = configurationManager; 30 findDumpersList(); 31 } 32 33 38 public boolean forceRun() throws InvictaException { 39 return this.forceRun; 40 } 41 42 47 public void dump(InvictaProject project) throws InvictaException { 48 for (Iterator dumperIter = this.dumpers.iterator(); dumperIter.hasNext();) { 50 InvictaDumper dumper = (InvictaDumper) dumperIter.next(); 51 if (dumper.isEnabled()) { 52 dumper.setProject(project); 53 Logger.info("Running dumper '" + dumper.getName() + "'..."); 54 dumper.dump(); 55 } 56 } 57 } 58 59 65 protected void findDumpersList() throws InvictaException { 66 Iterator dumpersIter = 67 Service.providers(InvictaDumper.class); 68 69 while (dumpersIter.hasNext()) { 70 InvictaDumper dumper = (InvictaDumper) dumpersIter.next(); 71 dumper.init(this.configurationManager); 72 if (dumper.isEnabled()) { 73 if (dumper.shouldForceRunning()) 74 this.forceRun = true; 75 this.dumpers.add(dumper); 76 Logger.debug("Dumper '" + dumper.getName() + "' enabled"); 77 } else { 78 Logger.debug("Dumper '" + dumper.getName() + "' disabled"); 79 } 80 } 81 } 82 } 83 | Popular Tags |