- Revision
- 1350
- Author
- mauro
- Date
- 2009-10-17 12:18:06 -0500 (Sat, 17 Oct 2009)
Log Message
JBEHAVE-194: Added file monitoring.
Modified Paths
- trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/runner/TraderRegistrar.java
- trunk/web/web-io/src/main/java/org/jbehave/web/io/ArchivingFileManager.java
- trunk/web/web-io/src/test/java/org/jbehave/web/io/ArchivingFileManagerTest.java
- trunk/web/web-runner/src/main/java/org/jbehave/web/runner/waffle/JBehaveRegistrar.java
Added Paths
Diff
Modified: trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/runner/TraderRegistrar.java (1349 => 1350)
--- trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/runner/TraderRegistrar.java 2009-10-17 15:56:09 UTC (rev 1349) +++ trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/runner/TraderRegistrar.java 2009-10-17 17:18:06 UTC (rev 1350) @@ -5,6 +5,7 @@ import org.codehaus.waffle.registrar.Registrar; import org.jbehave.web.examples.trader.scenarios.StockExchangeSteps; import org.jbehave.web.examples.trader.scenarios.TraderSteps; +import org.jbehave.web.io.PrintStreamFileMonitor; import org.jbehave.web.runner.waffle.JBehaveRegistrar; public class TraderRegistrar extends JBehaveRegistrar { @@ -19,6 +20,12 @@ registerInstance(new StockExchangeSteps()); } + @Override + protected void registerFileMonitor() { + register(PrintStreamFileMonitor.class); + } + + @Override protected File uploadDirectory() { // Can be overridden to return, e.g. new File("/tmp/upload"); return super.uploadDirectory();
Modified: trunk/web/web-io/src/main/java/org/jbehave/web/io/ArchivingFileManager.java (1349 => 1350)
--- trunk/web/web-io/src/main/java/org/jbehave/web/io/ArchivingFileManager.java 2009-10-17 15:56:09 UTC (rev 1349) +++ trunk/web/web-io/src/main/java/org/jbehave/web/io/ArchivingFileManager.java 2009-10-17 17:18:06 UTC (rev 1350) @@ -17,19 +17,24 @@ public class ArchivingFileManager implements FileManager { private final FileArchiver archiver; + private final FileMonitor monitor; private final File uploadDirectory; - public ArchivingFileManager(FileArchiver archiver, File uploadDirectory) { + public ArchivingFileManager(FileArchiver archiver, FileMonitor monitor, File uploadDirectory) { this.archiver = archiver; + this.monitor = monitor; this.uploadDirectory = uploadDirectory; } public List<File> list() { - return asList(uploadDirectory().listFiles(new FileFilter() { + File directory = uploadDirectory(); + List<File> files = asList(directory.listFiles(new FileFilter() { public boolean accept(File file) { return !file.isDirectory(); } })); + monitor.filesListed(directory, files); + return files; } private File uploadDirectory() { @@ -45,6 +50,7 @@ directory) : file); content.add(contentFile); } + monitor.contentListed(path, directory, relativePaths, content); return content; } @@ -63,9 +69,12 @@ } if (archiver.isArchive(file)) { // delete the unarchived directory too - deleteFile(archiver.directoryOf(file)); + File directory = archiver.directoryOf(file); + deleteFile(directory); + monitor.fileDeleted(directory); } file.delete(); + monitor.fileDeleted(file); } public List<File> upload(List<FileItem> fileItems, List<String> errors) { @@ -78,6 +87,7 @@ if (archiver.isArchive(file)) { try { archiver.unarchive(file, directory); + monitor.fileUnarchived(file, directory); } catch (FileUnarchiveFailedException e) { errors.add(e.getMessage()); if (e.getCause() != null) {
Added: trunk/web/web-io/src/main/java/org/jbehave/web/io/FileMonitor.java (0 => 1350)
--- trunk/web/web-io/src/main/java/org/jbehave/web/io/FileMonitor.java (rev 0) +++ trunk/web/web-io/src/main/java/org/jbehave/web/io/FileMonitor.java 2009-10-17 17:18:06 UTC (rev 1350) @@ -0,0 +1,17 @@ +package org.jbehave.web.io; + +import java.io.File; +import java.util.List; + +public interface FileMonitor { + + void contentListed(String path, File directory, + boolean relativePaths, List<File> content); + + void filesListed(File uploadDirectory, List<File> files); + + void fileUnarchived(File file, File directory); + + void fileDeleted(File file); + +}
Added: trunk/web/web-io/src/main/java/org/jbehave/web/io/PrintStreamFileMonitor.java (0 => 1350)
--- trunk/web/web-io/src/main/java/org/jbehave/web/io/PrintStreamFileMonitor.java (rev 0) +++ trunk/web/web-io/src/main/java/org/jbehave/web/io/PrintStreamFileMonitor.java 2009-10-17 17:18:06 UTC (rev 1350) @@ -0,0 +1,43 @@ +package org.jbehave.web.io; + +import java.io.File; +import java.io.PrintStream; +import java.util.List; + +public class PrintStreamFileMonitor implements FileMonitor { + + private final PrintStream output; + + public PrintStreamFileMonitor() { + this(System.out); + } + + public PrintStreamFileMonitor(PrintStream output) { + this.output = output; + } + + protected void print(PrintStream output, String message) { + output.println(message); + } + + public void contentListed(String path, File directory, + boolean relativePaths, List<File> content) { + print(output, "Listed content of path " + path + " from directory " + + directory + " using " + (relativePaths ? "relative" : "full") + + " paths: " + content); + } + + public void fileDeleted(File file) { + print(output, "Deleted file " + file); + } + + public void fileUnarchived(File file, File directory) { + print(output, "Unarchived file " + file + " to directory " + directory); + } + + public void filesListed(File uploadDirectory, List<File> files) { + print(output, "Listed files from upload directory " + uploadDirectory + + ": " + files); + } + +}
Added: trunk/web/web-io/src/main/java/org/jbehave/web/io/SilentFileMonitor.java (0 => 1350)
--- trunk/web/web-io/src/main/java/org/jbehave/web/io/SilentFileMonitor.java (rev 0) +++ trunk/web/web-io/src/main/java/org/jbehave/web/io/SilentFileMonitor.java 2009-10-17 17:18:06 UTC (rev 1350) @@ -0,0 +1,11 @@ +package org.jbehave.web.io; + +import java.io.PrintStream; + +public class SilentFileMonitor extends PrintStreamFileMonitor { + + protected void print(PrintStream output, String message) { + // print nothing + } + +}
Modified: trunk/web/web-io/src/test/java/org/jbehave/web/io/ArchivingFileManagerTest.java (1349 => 1350)
--- trunk/web/web-io/src/test/java/org/jbehave/web/io/ArchivingFileManagerTest.java 2009-10-17 15:56:09 UTC (rev 1349) +++ trunk/web/web-io/src/test/java/org/jbehave/web/io/ArchivingFileManagerTest.java 2009-10-17 17:18:06 UTC (rev 1350) @@ -44,7 +44,7 @@ file2 = create("file2"); zip = create("dir1.zip"); archiveFiles(zip, asList(file1, file2)); - manager = new ArchivingFileManager(new ZipFileArchiver(), upload); + manager = new ArchivingFileManager(new ZipFileArchiver(), new SilentFileMonitor(), upload); } @After
Modified: trunk/web/web-runner/src/main/java/org/jbehave/web/runner/waffle/JBehaveRegistrar.java (1349 => 1350)
--- trunk/web/web-runner/src/main/java/org/jbehave/web/runner/waffle/JBehaveRegistrar.java 2009-10-17 15:56:09 UTC (rev 1349) +++ trunk/web/web-runner/src/main/java/org/jbehave/web/runner/waffle/JBehaveRegistrar.java 2009-10-17 17:18:06 UTC (rev 1350) @@ -20,6 +20,7 @@ import org.jbehave.scenario.steps.DefaultStepdocGenerator; import org.jbehave.scenario.steps.Steps; import org.jbehave.web.io.ArchivingFileManager; +import org.jbehave.web.io.SilentFileMonitor; import org.jbehave.web.io.ZipFileArchiver; import org.jbehave.web.runner.waffle.controllers.FileController; import org.jbehave.web.runner.waffle.controllers.FileUploadController; @@ -41,6 +42,7 @@ registerScenarioRunner(); registerSteps(); registerStepdocGenerator(); + registerFileMonitor(); registerFileManager(); register("data/file", FileController.class); register("data/files", FilesController.class); @@ -101,6 +103,10 @@ register(DefaultStepdocGenerator.class); } + protected void registerFileMonitor() { + register(SilentFileMonitor.class); + } + protected void registerFileManager() { register(ZipFileArchiver.class); register(ArchivingFileManager.class);
To unsubscribe from this list please visit: