Java FTP transfer

I need to implement the following requirement

1. Asynchronious java API that does FTP transfer

2. Limit amount of simultaneous transfers to X, which is configurable.

3. Manage incoming java API calls, so that if amount of transfers exceeds X i would keep queue of incoming requests and process them once connection is available.

4. Ability to get transfer status, while transferring through separate API call.

Note - the whole thing is stateless.

 

Basically it is a messaging scenario, but without any messaging infrastructure. Thus manuall Java/Threads implementation.

 

Questions.

1. Is there some sort of framework that can provide such funtionality (thread management)?

2. Any suggestions on how to implement this manually ?

Thanks

Developer