There are multiple versions of org.apache.zookeeper:zookeeper in whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer. As shown in the following dependency tree, according to Maven's "nearest wins" strategy, only org.apache.zookeeper:zookeeper:3.4.8 can be loaded, org.apache.zookeeper:zookeeper:3.6.0 will be shadowed.
However, several methods defined in shadowed version org.apache.zookeeper:zookeeper:3.6.0 are referenced by client project via org.apache.curator:curator-recipes:5.1.0 but missing in the actually loaded version org.apache.zookeeper:zookeeper:3.4.8.
For instance, the following missing method(defined in org.apache.zookeeper:zookeeper:3.6.0) are actually referenced by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer, which will introduce a runtime error(i.e., "NoSuchMethodError") into whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer.
org.apache.zookeeper.ZooKeeper: void removeAllWatches(java.lang.String,org.apache.zookeeper.Watcher$WatcherType,boolean) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
org.apache.zookeeper.ZooKeeper: void removeWatches(java.lang.String,org.apache.zookeeper.Watcher,org.apache.zookeeper.Watcher$WatcherType,boolean) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
org.apache.zookeeper.admin.ZooKeeperAdmin: void reconfigure(java.util.List,java.util.List,java.util.List,long,org.apache.zookeeper.AsyncCallback$DataCallback,java.lang.Object) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
org.apache.zookeeper.admin.ZooKeeperAdmin: void init(java.lang.String,int,org.apache.zookeeper.Watcher,boolean) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
org.apache.zookeeper.ZooKeeper: void addWatch(java.lang.String,org.apache.zookeeper.AddWatchMode,org.apache.zookeeper.AsyncCallback$VoidCallback,java.lang.Object) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
Issue description:
There are multiple versions of org.apache.zookeeper:zookeeper in whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer. As shown in the following dependency tree, according to Maven's "nearest wins" strategy, only org.apache.zookeeper:zookeeper:3.4.8 can be loaded, org.apache.zookeeper:zookeeper:3.6.0 will be shadowed.
However, several methods defined in shadowed version org.apache.zookeeper:zookeeper:3.6.0 are referenced by client project via org.apache.curator:curator-recipes:5.1.0 but missing in the actually loaded version org.apache.zookeeper:zookeeper:3.4.8.
For instance, the following missing method(defined in org.apache.zookeeper:zookeeper:3.6.0) are actually referenced by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer, which will introduce a runtime error(i.e., "NoSuchMethodError") into whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer.
org.apache.zookeeper.ZooKeeper: void removeAllWatches(java.lang.String,org.apache.zookeeper.Watcher$WatcherType,boolean) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
org.apache.zookeeper.ZooKeeper: void removeWatches(java.lang.String,org.apache.zookeeper.Watcher,org.apache.zookeeper.Watcher$WatcherType,boolean) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
org.apache.zookeeper.ZooKeeper: boolean close(int) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
org.apache.zookeeper.admin.ZooKeeperAdmin: void reconfigure(java.util.List,java.util.List,java.util.List,long,org.apache.zookeeper.AsyncCallback$DataCallback,java.lang.Object) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
org.apache.zookeeper.admin.ZooKeeperAdmin: void init(java.lang.String,int,org.apache.zookeeper.Watcher,boolean) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
org.apache.zookeeper.ZooKeeper: void addWatch(java.lang.String,org.apache.zookeeper.AddWatchMode,org.apache.zookeeper.AsyncCallback$VoidCallback,java.lang.Object) is invoked by whatsmars/whatsmars-dubbo/whatsmars-dubbo-consumer via the following path:
Suggested fixing solutions:
Please let me know which solution do you prefer? I can submit a PR to fix it.
Thank you very much for your attention. Best regards,
Dependency tree----