jeudi 19 octobre 2017

Reflection dependency conflicts in runtime

Thanks in advance for the help.

I have the following situation:

I'm developing my extension plugin for druid which will handle druid log tasks and will store log data to elasticsearch. The druid itself load extension plugins through reflection that means what they all are in the same JVM machine. So, the currently problem is that my extension plugin uses elasticsearch dependency which in its turn uses com.google.guava dependency version 18.0 but druid has this dependency of version 16.1. In runtime my extension plugin uses older version 16.1 but I strongly need 18.0 because my implementation is for version 18.0 of guava library.

I receive a such of exception:

NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor conflits on Elastic Search jar

Notice: My project is created as maven project also I compile my extension plugin as shaded jar. Ideally it would be nice to say to druid that you must use your version 16.1 but left my extension plugin to use its version which is needed.

Do you have any ideas guys how to solve it?

Notice: If this information is not enough for you just tell me what you need more I'll try to provide more info.





Aucun commentaire:

Enregistrer un commentaire