/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.functional.util.ftp; import java.io.IOException; import org.apache.ftpserver.ftplet.DefaultFtplet; import org.apache.ftpserver.ftplet.FtpException; import org.apache.ftpserver.ftplet.FtpRequest; import org.apache.ftpserver.ftplet.FtpSession; import org.apache.ftpserver.ftplet.Ftplet; import org.apache.ftpserver.ftplet.FtpletResult; /** * {@link Ftplet} implementation that calls methods on its callback. Although this seems a bit like jumping through hoops, it * frees the individual test classes from having to deal with creating custom Ftplets. */ public class MuleFtplet extends DefaultFtplet { public interface Callback { void fileUploadCompleted(); void fileMoveCompleted(); } private Callback callback; public MuleFtplet(Callback callback) { super(); this.callback = callback; } @Override public FtpletResult onUploadEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { callback.fileUploadCompleted(); return null; } @Override public FtpletResult onRenameEnd(FtpSession session, FtpRequest request) throws FtpException, IOException { callback.fileMoveCompleted(); return null; } }