Hi Niklas, please see my answer below.
Jesus. 2011/10/8 Niklas Gustavsson <[email protected]>: > 2011/10/7 Jesús Castillo <[email protected]>: >> I was able to deploy the ftpserver as a bundle in ServiceMix. However, I >> found some limitations >> and I wonder if any of them could be addressed in future versions. > > We would be happy to adress them wherever it reasonable, mostly we do > not want to have to change the API to do so. > > However, I'm not sure we got the necessary knowledge to do so, so > patches would be most welcome. > I think that we can OSGify it keeping the same API. I'll provide what I have once is done. >> 1. Dependency between interfaces and implementation that make difficult to >> segregate them in different bundles. > > Sounds like this would require moving classes around? Most likely. For example, I think the command interface should be exposed so we can extend it. However, the execute method has FtpIoSession and FtpServerConxtext as parameters and they are in the impl package. > >> 2. The NameSpaceHandler doesn't support property placeholder. It would be >> great to define attributes such as port="${port}" >> using the OSGi compendium service. >> >> 3. The NameSpaceHandler should support customized factory classes. > > The namespace handlers was written with Spring in mind, but if this > support can be added without breaking compatibility then go for it. > New functionality should be back-compatible with the existing NameSpaceHandler, I agree. >> In addition, support of Interceptors for Commands would be of great benefit. >> An interceptor would allow us to inspect and customized the Server easily. > > Sounds a lot like Ftplets, which should work from OSGi? > They look similar but have different functions. Fptlet will hook up a specific command before or after the execution. Interceptors will be sitting between the FtpHandler and the command itself wrapping the real command. A single interceptor can act on all the commands. In addition, we can chain interceptors and have something like: ftphandler --> interceptor 1 --> interceptor 2 --> command > /niklas >
