2001-12-27 Joseph R. Kiniry * build.xml: Added targets to convert html documentation into textfiles, build libraries (jar files), and create distribution files. Refined all target to include building libs, unit testing, etc. Made unit tests use instrumented classfiles. Refined clean target. 2001-12-20 Joseph R. Kiniry * docs/brief.txt: Wrote short draft abstract. * build.xml: Added javadoc task to all depends. Wrote version and html2txt tasks, though the latter does not yet work correctly. Removed old_test task. Added deletion of OOBR and TAGS to distclean task. * FAQ.html: * LICENSE.html: * README.html: * RELEASE_NOTES.html: * TODO.html: * index.html: Cleaned up all HTML documentation and removed references to material that isn't yet written. * Documentation: Finished first-pass top-level documentation for alpha release. * source/kindftp/FTPProxy.java: Performed final tweaks on code and specification so that iContract could correctly process entire codebase. 2001-12-19 Joseph R. Kiniry * source/kindftp/FTPProxy.java: Fixed first syntax issues on remaining iContract specification. Completed RETR and STOR commands. Factored out end of LIST, NLST, and other methods into FSM2() again. Added completeCommandHandshake() to finalize post-streaming transactions. Rewrote MDTM and SIZE commands. * source/kindftptest/FTPProxySendTestCases.java: Corrected classname on test constructors. Removed useless setUp() method. Used explicit CWD and TYPE commands in each test so as to start making them independent. Added more jUnit assertions for more complete testing. Documented test stages more completely. Made sure to properly complete handshakes on streaming tests and close data channels on partial failures. * source/kindftptest/FTPProxyReceiveTestCases.java: Use explicit CWD and TYPE commands in each test so as to start making them independent. Added more jUnit assertions for more complete testing. * source/kindftptest/FTPProxyMiscTestCases.java: Removed APPE test since we do not yet have an implementation. Refined MDTM and SIZE tests so that they have proper assertions for jUnit. 2001-12-17 Joseph R. Kiniry * source/kindftp/FTPProxy.java: Corrected iContract-sensitive syntax of some specification. Fixed algorithm to read prelude from server in connect(). Factored standard error checks for postconditions (three kinds in ReplyCodes). Fixed implementation assertion in MODE() (needed negation). Corrected use of data streams for detecting EOS and finishing read from command channel for LIST, NLST, and RETR. FSM2* has re-reduced to FSM2() as a result. I'm still worried about some subtleties of the algorithm; they are documented with @todos. There is also some code-factoring to do at the end of those methods. Finished postconditions for several more methods. * source/kindftptest/FTPProxyInitialTestCases.java: Corrected assertions in testACCT() and testSMNT() tests. Fixed test name testSITE(). * source/kindftptest/FTPProxyTestSetup.java: Fixed use of QUIT() because its type changed. * source/kindftp/IDebugInit.java: Switched to using WindowOutput rather than ConsoleOutput because interleaved output was too confusing. * source/kindftp/CommandReader.java: Removed unnecessary BufferedReader in pipeline. Standard null-checks in close() and ready(). Tweaked readLine() to sleep when not ready. Fixed logic of terminating condition of while loop (conjuction rather than disjunction, silly). 2001-12-13 Joseph R. Kiniry * source/kindftp/ReplyCodes.java: Added static final constants for reply codes. * source/kindftp/CommandReader.java: Introduced new CommandReader class for the command channel. * source/kindftp/FTPProxy.java: Switches from BufferedReader to new CommandReader for better handling of reply codes. Tuned command socket timeout and linger parameters; still need to make them configurable. Removed transaction() and replace it with send() and receive(). Decomposed FSM2() into _stage1() and stage2() methods. 2001-12-12 Joseph R. Kiniry * source/kindftptest/FTPProxySendTestCases.java: Added necessary PASV() after its removal from certain RETR and STOR commands in FTPProxy. * source/kindftp/FTPProxy.java: Removed old assert.assert calls for preconditions. Fixed all use of FSM2s for RETR and STOR, as well as .available() semantics, but still have to work out synchronization issues with command channel. 2001-12-11 Joseph R. Kiniry * source/kindftp/FTPProxy.java: Reformulated all method specifications for iContract. All that could not yet be properly formed are @ipre and @ipost (for *I*nformal *Pre*condition etc.). Removed or commented out all old assertions. Added small comment for command-reply sequences. Changed LIST and NLST behavior for new, slightly different behavior of wu.ftpd. This change initiated the thoughts on using multiple threads for better proxy concurrency mentioned in the TODO.html file. * source/kindftptest/FTPProxyReceiveTestCases.java: Added proper CWD commands before all receive tests so that the proxy is in the right directory according to the current test specification. * source/kindftptest/FTPProxyInitialTestCases.java: Added TYPEA test to switch connection into ASCII mode for various LIST/NLST tests. Added PASVs before all such tests as well. 2001-12-09 Joseph R. Kiniry * source/kindftp/FTPProxy.java: * source/kindftptest/FTPProxyInitialTestCases.java: * source/kindftptest/FTPProxyMiscTestCases.java: * source/kindftptest/FTPProxyReceiveTestCases.java: * source/kindftptest/FTPProxySendTestCases.java: * source/kindftptest/FTPProxyTestSetup.java: * source/kindftptest/FTPProxyTestSuite.java: * source/kindftptest/IDebugTestCase.java: Finished initial refactoring of all test code into jUnit framework. All code now builds. 2001-12-08 Joseph R. Kiniry * source/kindftp/FTPProxyTest.java: * source/kindftptest/AllTests.java: * source/kindftptest/FTPProxyInitialTestCases.java: * source/kindftptest/FTPProxyMiscTestCases.java * source/kindftptest/FTPProxyReceiveTestCases.java: * source/kindftptest/FTPProxySendTestCases.java: * source/kindftptest/FTPProxyTestSetup.java: * source/kindftptest/FTPProxyTestSuite.java: Initial attempts to rearrange all test code into a set of jUnit suites. 2001-12-07 Joseph R. Kiniry * Top-level: Completed reorganization of directory structure. * build.xml: Added Ant usage and started iContract setup. 2001-12-06 Joseph R. Kiniry * build.xml: Wrote a build.xml for project. This caused a bit of reorganization of the directory structure. * Top-level: Rewrote and cleaned up all top-level HTML documentation, converting IDebug to KindFTP. 2001-06-24 Joseph R. Kiniry * Top-level: Grabbed new snapshot of top-level documentation (i.e. all top-level XHTML files) from latest IDebug release so that we have conformant basis and won't have to do a ton of editing on it. * docs/manual/kindftp.tex: Cleaned out old data taken from IDebug from manual and just left an outline. * Documentation - Did a pass on all XHTML source documentation to make sure that they are conformant. 2000-02-06 Joseph R. Kiniry * Init - Created initial KindFTP project directory, moved files from PeeChee project, refactored FTPProxy, split off blackbox tests, factored out IDebug init code, built full project tree.