Hi,
During the last weeks I have been "fighting" with Travis and the license
checker due to the presence/absence of
org.apache.httpcomponents-httpclient-4.4.1.jar
org.apache.httpcomponents-httpcore-4.4.1.jar
org.apache.thrift-libthrift-0.9.3.jar

If I understand correctly libthrift is used by DistributedLog, and this is
turn is used by StreamStorage.
httpclient is a dependency imported by libthrift.

Currently DistributedLog shades (and relocates package names) libthrift.
The result is that we are hiddenly bundling libthrift inside distributelog
jar and thus we have it in our server distribution.
It looks like we are now bundling httpclient (current master).

Now that I am dropping the -Dstream Maven profile such jars disappeared
again.
The reason is that Maven is doing his best to deal with
dependency-reduced-poms but it is not so good and depending on the
activation of profiles (and on the Maven version) those jars may happen to
finish inside the "lib" directory of the server.

Please also note that if we bundled a shaded version of libthrift we should
deal with the license, and we have to enhance the license checker

Let's come to the questions:
1) do we need to shade libthrift ? (perhaps the answer is no, as we already
have a distributed-log-shaded package)
2) do we need really httpclient in the classpath ? (we also have a pending
PR that wants to add it explicitly as a dependency)

In order to make things simpler I prefer to drop that shade stuff and have
the jars in the original form on "lib" and for downstream clients

I am tagging you @siije directly because as far as I know you are the one
that most knows about DL and StreamStorage

This is my patch that is currently stuck with this problem
https://github.com/apache/bookkeeper/pull/2233


Enrico

Reply via email to