001 package org.nanocontainer.deployer; 002 003 import org.apache.commons.vfs.FileObject; 004 import org.apache.commons.vfs.FileSystemException; 005 import org.picocontainer.Startable; 006 007 /** 008 * @author Aslak Hellesøy 009 * @version $Revision: 2343 $ 010 */ 011 public class DeployingFolderListener implements FolderListener, Startable { 012 private final Deployer deployer; 013 private final DifferenceAnalysingFolderContentHandler handler; 014 015 public DeployingFolderListener(Deployer deployer, DifferenceAnalysingFolderContentHandler handler) { 016 this.deployer = deployer; 017 this.handler = handler; 018 } 019 020 public void folderAdded(FileObject folder) { 021 try { 022 deployer.deploy(folder, getClass().getClassLoader(), null); 023 } catch (FileSystemException e) { 024 throw new DeploymentException(e); 025 } catch (ClassNotFoundException e) { 026 throw new DeploymentException(e); 027 } 028 } 029 030 public void folderRemoved(FileObject fileObject) { 031 032 } 033 034 public void start() { 035 handler.addFolderListener(this); 036 } 037 038 public void stop() { 039 handler.removeFolderListener(this); 040 } 041 }