Ioan Eugen Stan created FTPSERVER-447:
-----------------------------------------

             Summary: Bad OSGi exports for FTPServer 
                 Key: FTPSERVER-447
                 URL: https://issues.apache.org/jira/browse/FTPSERVER-447
             Project: FtpServer
          Issue Type: Bug
          Components: Server
    Affects Versions: 1.0.6
            Reporter: Ioan Eugen Stan


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.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to