Uploaded image for project: 'FtpServer'
  1. FtpServer
  2. FTPSERVER-447

Bad OSGi exports for FTPServer

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.0.6
    • 1.1.0
    • Server
    • None

    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

          Activity

            People

              Unassigned Unassigned
              ieugen Ioan Eugen Stan
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: