onobc commented on issue #19856: URL: https://github.com/apache/pulsar/issues/19856#issuecomment-1497494457
Hi @tisonkun , If the libs are all shaded it should not matter what version is used by the admin client - they are effectively invisible. IIRC, the only remaining unshaded lib in `2.11.0+` is `javax.xml.bind:jaxb-api:2.3.1`. In general, shading the libs that the admin client is using to do its job is the only safe (and most flexible) answer IMO. Otherwise, if the admin client exposes a popular lib(s) then we will immediately be in this JEE/SpringBoot/Java version matrix madness where we would have tradeoffs such as "If you want to use Pulsar 3.x then you have to use Spring Boot 3.x" etc.. I do think a helpful requirement (exit criteria) for this ticket would be to make sure that whatever solution we land on, that Spring Boot 2.x users can use both Pulsar client 2.x and 3.x. An example could be as follows: * SB 2.7.x simple app using Jersey (could [bootstrap here](https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.7.10&packaging=jar&jvmVersion=1.8&groupId=com.example&artifactId=demo&name=demo&description=Demo%20project%20for%20Spring%20Boot&packageName=com.example.demo&dependencies=jersey)). * In a user defined Jersey component (controller or endpoint) use admin client to query topics/namespaces and create topics etc.. Do this w/ both admin client 2.x and 3.x. * In a user defined non-Jersey component (ApplicationRunner, Service, Bean, anything else that is not Jersey specific) use admin client to query topics/namespaces and create topics etc.. Do this w/ both admin client 2.x and 3.x. Thanks for pinging me and bringing this up. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
