pulsar-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From GitBox <...@apache.org>
Subject [GitHub] merlimat commented on issue #3228: Provide separate module with Pulsar v1 client API wrapper
Date Fri, 21 Dec 2018 20:41:34 GMT
merlimat commented on issue #3228: Provide separate module with Pulsar v1 client API wrapper
URL: https://github.com/apache/pulsar/pull/3228#issuecomment-449493351
   > It raises few questions for the clients who are using V1 api and not ready to move
V2 yet but still want to use new features.
   In every system you need to expect to upgrade and follow newer best practices in order
to use new features. That is unrelated to the compatibility of older client library which
is out of question.
   >  1. are we going to maintain this V1 api artifact with the new configuration changes?

   Anyone interested in adding the new features in the v1 API can still update the 1x wrapper
and add them. It will be trivial to do so.
   > 2. it will enforce client app to change artifact dependency else their existing app
will fail.
   An application is not "forced" to upgrade the artifact dependency. 
   It might want to upgrade to get new bug or security fixes. In that case it will have to
update the Maven dependency (the version, at least). If the application is using the v1 API,
it will have to switch to use `pulsar-client-1x` instead of `pulsar-client`. This will be
clearly documented. 
   To summarize: 
    1. The upgrade is not required
    2. If you want to upgrade version, also change artifact id.
   > So, instead can't we keep this api into the same pulsar-client artifact because anyway
it doesn't have many classes and it will be easy to maintain if we have everything under one
   The purpose of marking API methods as "Deprecated" is to give a warning and remove them
in the future.
   The current state of things is very confusing because we have 2 sets of APIs that a user
have to chose from. This adds a lot to the knowledge required to get started with the API.
   There are additional issue in the current state: 
    * Because of shading, we're not able to attach javadoc and source jars to `pulsar-client`.
The result is that developers cannot get javadoc in the IDE when using `pulsar-client`.
    * To achieve that, we need to separate `pulsar-client` and `pulsar-client-api`. `pulsar-client-api`
will just contain the interfaces (and not be shaded). 
   Older API has a mix of interfaces and POJO which access concrete classes in other package.
That kind of derailed over time and this is a way to fix that, do the cleanup and expose a
very clean API surface.

This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:

With regards,
Apache Git Services

View raw message