For Solr, the transitive dependencies are excluded by default. When there are multiple SLF4j bindings, Solr errors out due to to multiple bindings being loaded by different classloaders. I was surprised to notice that Avatica server pulls in Avatica which in turns pulls in the dependencies with no way to exclude them especially SLF4j since its not shaded. I'm not sure there is a way to shade SLF4j as the comments mentioned in CALCITE-669.
I think the Avatica jar with dependencies is really useful since it is one jar that gets used by the client. However for Avatica server, there are cases where you want to embed the server in another project and will need to exclude SLF4j due to versions or only wanting to have one version on the classpath. If there is another way to achieve this that would be great, but having the Avatica server dependency include all the dependencies by default doesn't seem like the right solution to me. Kevin Risden Apache Lucene/Solr Committer Hadoop and Search Tech Lead | Avalon Consulting, LLC <http://www.avalonconsult.com/> M: 732 213 8417 LinkedIn <http://www.linkedin.com/company/avalon-consulting-llc> | Google+ <http://www.google.com/+AvalonConsultingLLC> | Twitter <https://twitter.com/avalonconsult> ------------------------------------------------------------------------------------------------------------- This message (including any attachments) contains confidential information intended for a specific individual and purpose, and is protected by law. If you are not the intended recipient, you should delete this message. Any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited. On Mon, May 2, 2016 at 8:42 AM, Josh Elser <[email protected]> wrote: > Anything is possible :) > > I'd like to see a plan put forth on what we should do (more about the > "why" behind those changes). Would you be willing to share this info? > > > Kevin Risden wrote: > >> While trying to integrate Avatica server into Solr, I found that the >> Avatica dependency has all the jars included. I'm not able to exclude >> SLF4j >> or other dependencies based on exclusions. >> >> This issue wasn't as bad before CALCITE-669 when there was the switch to >> SLF4j. >> >> Would it be possible to release Avatica without all the dependencies >> included or make two dependencies (one shaded and the other not)? >> >> >> Kevin Risden >> >>
