Added pulsar C++ client - #185
Conversation
There was a problem hiding this comment.
These are the files that are uploaded to Github release page.
If we want to release binaries for C++ client, we should pack them into a deb/rpm package related to a specific ubuntu/rhel release.
I'd say, for now to skip this part and just release the sources.
There was a problem hiding this comment.
Lets leave it there if someone would like to consume until we generate package.
There was a problem hiding this comment.
uhm, but that so file is depending on some specific version of dependencies libs, libstdc++, etc.. It would be pretty difficult to use as it is.
There was a problem hiding this comment.
Thats true. We were also debating the same. I'll remove it.
There was a problem hiding this comment.
These 2 parts could be enclosed in a bash script, to get more readability.
There was a problem hiding this comment.
One thing that would be good to have is to get Pulsar version from the top level pom and add that as a compiler macro definition. This way the client will be able to report its own version to the broker (same as Java client).
There was a problem hiding this comment.
Addressed it in lib/CMakeLists.txt
There was a problem hiding this comment.
Instead of using a special config file, we could change the tests to point to port 6650
There was a problem hiding this comment.
We want to leave the standalone port as it is since it might be running real workload.
There was a problem hiding this comment.
It might also be good to cache both the tgz and the compiled stuff in travis, see line 6.
48c3f4e to
18d5d61
Compare
There was a problem hiding this comment.
Correct, this will set the version on the compiled so library. I was thinking more about having a macro defined like -DPULSAR_VERSION="1.16" in gcc command line. Then using a version.h header that captures that and finally send the version to the broker in the connect command
There was a problem hiding this comment.
ok, Just addressed it.
70898d5 to
862d019
Compare
There was a problem hiding this comment.
I was meaning to use the version from the same variable, so that we don't need to remember to change it each time. 😃
There was a problem hiding this comment.
That is done by build.sh which reads from the pom file and defines it during compilation. The define here is to just have a default value. Maybe we can change it to undefined or remove the default. This way, compilation will fail if not defined and force user to define it.
There was a problem hiding this comment.
Oh, I see. Then maybe grepping for the version could be done directly inside the CMakelist.txt so that it works even when not using build.sh script (not sure exactly how that works though).
There was a problem hiding this comment.
Addressed this in lib/CMakeLists.txt. Now, cmake itself will take care of it.
|
@saandrews @rdhabalia Added reading version from inside cmake definition here: |
|
Looks good to me. One final minor aks: can you rename build.sh into travis-build.sh? |
|
Updated. I will merge once CI is complete? |
…ache#445) This case is usually encountered when attempting to use KoP with standalone mode. When new behavior was introduced in apache#168 standalone mode was broken due to sample namespace setup etc not taking place until after the broker is initialized (which in turn initializes protocol handlers). Fixes apache#185
Motivation
Added Pulsar C++ Client
Modifications
Added pulsar-client-cpp which contains C++ client implementation, relevant tests & tools
Result
Travis build will also produce libpulsar.so and libpulsar.a and deploy it under releases. The library is built using ubuntu14 since ubuntu16 environment is not yet available in travis. pulsar-client-cpp/README contains instruction to build it in ubuntu16