1 37 package net.sourceforge.cruisecontrol.listeners; 38 39 import net.sourceforge.cruisecontrol.CruiseControlException; 40 import net.sourceforge.cruisecontrol.Listener; 41 import net.sourceforge.cruisecontrol.ProjectEvent; 42 import net.sourceforge.cruisecontrol.ProjectState; 43 import net.sourceforge.cruisecontrol.util.ValidationHelper; 44 import net.sourceforge.cruisecontrol.util.CurrentBuildFileWriter; 45 import net.sourceforge.cruisecontrol.util.AbstractFTPClass; 46 import net.sourceforge.cruisecontrol.util.Util; 47 import org.apache.log4j.Logger; 48 49 import java.util.Date ; 50 import java.io.IOException ; 51 import java.io.File ; 52 53 61 public class CurrentBuildStatusFTPListener extends AbstractFTPClass implements Listener { 62 private static final Logger LOG = Logger.getLogger(CurrentBuildStatusListener.class); 63 private String fileName; 64 private String destdir; 65 66 public void handleEvent(ProjectEvent event) throws CruiseControlException { 67 if (event instanceof ProjectStateChangedEvent) { 68 final ProjectStateChangedEvent stateChanged = (ProjectStateChangedEvent) event; 69 final ProjectState newState = stateChanged.getNewState(); 70 LOG.debug("updating status to " + newState.getName() + " for project " + stateChanged.getProjectName()); 71 final String text = newState.getDescription() + " since\n"; 72 CurrentBuildFileWriter.writefile(text, new Date (), fileName); 73 74 String out; 75 try { 76 out = Util.readFileToString(fileName); 77 } catch (IOException ioe) { 78 throw new CruiseControlException(ioe.getMessage()); 79 } 80 String fname = destdir + File.separator + fileName; 81 82 sendFileToFTPPath(out, fname); 83 } else { 84 LOG.debug("ignoring event " + event.getClass().getName() + " for project " + event.getProjectName()); 86 } 87 } 88 89 public void validate() throws CruiseControlException { 90 ValidationHelper.assertIsSet(fileName, "file", this.getClass()); 91 CurrentBuildFileWriter.validate(fileName); 92 ValidationHelper.assertIsSet(destdir, "destdir", this.getClass()); 93 } 94 95 public void setFile(String fileName) { 96 this.fileName = fileName.trim(); 97 LOG.debug("set fileName = " + fileName); 98 } 99 100 public void setDestDir(String dir) { 101 this.destdir = dir; 102 LOG.debug("set destdir = " + dir); 103 } 104 105 public String getFileName() { 106 return fileName; 107 } 108 109 } 110 | Popular Tags |