Home Products Community Company Support Contact

edtFTPj/Free FAQ Answers

1. Can I embed edtFTPj in commercial applications?

Yes, as it is under the GNU Library GPL you can freely embed this code in any application whatsoever for no cost. Note that the usual GPL restrictions of making any modifications public must be observed if you are redistributing the library with your applications.

We do re-license the source under a completely unrestricted licence to individuals and companies who wish to use the source in their own applications, without LGPL restrictions. See here.

2. Does edtFTPj support SSL/TLS?

Yes! edtFTPj/SSL is a commercial product now available for purchase.

3. Does edtFTPj support mget/mput?

No, to keep it simple, edtFTPj only supports the FTP protocol, which does not support mget/mput. However this could be easily implemented by using the new dirDetails() method to get a listing of all files and directories within a directory. The array of FTPFile objects returned will enable you to find out which are files and which are directories, and you can recursively go through all the directories. 

4. Is edtFTPj thread safe?

No, this would incur a significant performance penalty for users that do not require a thread safe library. Instead, synchronize your own code to ensure multiple threads do not access the same FTPClient object.

5. I want to get access to the InputStream of the incoming data, but I can only find a get() method that takes an OutputStream.

The underlying InputStream for data is deliberately not made available. Failure to close this stream at the appropriate point will cause FTP operations to hang. Instead, supply an OutputStream that the FTPClient will write the incoming data to, and use a java.io.PipedInputStream to convert it to an InputStream. You will need to use a separate thread - see the PipedInputStream Javadoc.

6. The FTPClient constructor is hanging connecting to the FTP server, even though I am supplying a timeout value

Unfortunately (and surprisingly), the java.net.Socket class was only given timeout functionality in its constructor in JDK 1.4. Prior to this, it was not possible to set a timeout when creating a connected Socket. As we wish to continue supporting prior versions of the JDK, we have chosen not to use the 1.4 timeout functionality. This means that the initial connection attempt in the FTPControlSocket constructor has an infinite timeout, and the supplied timeout value is not used until this attempt is complete.

You may want to modify the code yourself if you are using 1.4 exclusively. In FTPControlSocket, you can create an unconnected Socket with the default constructor, and use the connect() method to connect using the supplied timeout.

7. Can you give me some examples of how to use edtFTPj?

Yes, look in the "demo" directory at Demo.java for a simple example. The "test" subdirectory has a number of unit tests that exercise and demonstrate functionality. We use JUnit for unit testing.

8. I think I've found a bug. What should I do?

Check you are using the latest version of the library. If you are, and you can isolate the problem, send us a detailed description, including debug output and relevant stack traces. We'll look into it as soon as possible. Of course, if you can fix it yourself, please do so, and send us the fix/patch.

9. How can I be notified of new releases?

Every new release is immediately announced on the appropriate EDT email list which you may wish to subscribe to.

10. I'd like an enhancement made to the library. Can you do it for me?

Yes, but you will have to pay for it, and you must agree that we will retain the intellectual property rights so that we have the option of including the enhancement in future releases of the library if we choose to do so. Email us to discuss your requirements.

11. I like your design and your code. Can I hire you?

EDT has a number of consultants who may be available for external consulting or development projects. We specialise in small to medium sized projects involving Java, J2EE, EJB, Tomcat, Weblogic and JBoss, on Unix and Windows platforms, and .NET on Windows. We can mentor teams, give expert advice on designs, or run entire projects. We emphasize the use of Open Source in our projects, which help reduce costs. We are based in Brisbane, Australia, but are happy to undertake projects remotely. Email this address to discuss your requirements with us.

Please post any bugs, comments, questions or suggestions to the EDT Forums. Bug fixes and enhancements can be emailed to this address.

Legal Notice