Description
Pull request and patch available: https://github.com/apache/ftpserver/pull/1
I noticed that version 1.0.6 does not work well with OSGi because
1. it includes all the classes from ftplet-api
2. it does not export them in the manifests headers.
Detailed problem:
If you wish to implement your own versions of UserManager or other interfaces and use them in OSGi, this requires adding the ftplet-api bundle. This results in two versions of the same classes on the classpath. This makes custom implementation of Ftpserver interfaces impossible.
I tried to build my own UserManger and User implementation to authenticate against a DB via JPA. I could not do it because I got linkage errors since my implementation depended on the ftplet-api interfaces which are loaded in OSGi via two separate classloaders: one version from the ftpserver-core bundle (but these are private and not exported) and one from ftplet-api.
<dependency>
<groupId>org.apache.ftpserver</groupId>
<artifactId>ftpserver-core</artifactId>
<version>1.0.6</version>
</dependency>
The solution:
- remove all the custom manifest headers from maven-bundle-plugin - works very well on it's own
- build jar that does not include the ftplet-api classes
This requires another release to fix in OSGi.
Attachments
Issue Links
- duplicates
-
FTPSERVER-425 Duplicate package org.apache.ftpserver.ftplet in ftpserver-core
- Closed
- relates to
-
FTPSERVER-446 Implementing User Manager not possible in OSGi environment
- Open