试图找出`mongodb-driver-sync v 4.6.0`和`mongo-java-driver v 3.12.10`

发布于 2025-02-04 00:07:26 字数 949 浏览 1 评论 0原文

我们正在我们的Clojure项目中使用congomongo Toolkit:

https://github.com/congomongo/congomongo/congomongo/congomongo

这取决于传统的Java驱动程序(in project.clj):

[org.mongodb/mongo-java-driver“ 3.12.10”]

我现在试图滚动自己的clojure包装器,因为我们需要升级到现代API。它引用:

[org.mongodb/mongodb-driver-sync“ 4.6.0”]

包括我们项目中的两者都引起了冲突:

Syntax error (IllegalAccessError) compiling at (/tmp/form-init13152456523068551352.clj:1:74).
failed to access class com.mongodb.client.internal.MongoClientDelegate from class com.mongodb.Mongo (com.mongodb.client.internal.MongoClientDelegate and com.mongodb.Mongo are in unnamed module of loader 'app')

然后,我更改了包装器以使用相同的3.12.10驱动程序。现在一切都很好。刚果正在使用传统驱动程序,我的包装纸正在使用现代驾驶员,而且没有冲突。

这是预期的行为吗? Mongo-Java-Driver是否包括传统驾驶员和现代驾驶员?还是我应该意识到有区别?

We're using CongoMongo toolkit in our Clojure project:

https://github.com/congomongo/congomongo

It depends on a legacy Java driver (in project.clj):

[org.mongodb/mongo-java-driver "3.12.10"]

I'm now trying to roll my own Clojure wrapper because we need to upgrade to the modern API. It references :

[org.mongodb/mongodb-driver-sync "4.6.0"]

Including both in our project caused a conflict:

Syntax error (IllegalAccessError) compiling at (/tmp/form-init13152456523068551352.clj:1:74).
failed to access class com.mongodb.client.internal.MongoClientDelegate from class com.mongodb.Mongo (com.mongodb.client.internal.MongoClientDelegate and com.mongodb.Mongo are in unnamed module of loader 'app')

I then changed my wrapper to use the same 3.12.10 driver. Now everything works fine. CongoMongo is using the legacy driver, my wrapper is using the modern driver, and there's no conflict.

Is this expected behaviour? Does mongo-java-driver include both the legacy driver and the modern driver? Or is there a difference I should be aware about?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没有心的人 2025-02-11 00:07:26

是的,3.X系列驱动程序既包含旧的API和现代API,但是4.X系列仅包含现代API。

您可以通过在JAR文件中查看:

(! 802)-> jar tvf ~/.m2/repository/org/mongodb/mongodb-driver-sync/4.6.0/mongodb-driver-sync-4.6.0.jar|fgrep ClientOptions

(! 803)-> jar tvf ~/.m2/repository/org/mongodb/mongodb-driver-core/4.6.0/mongodb-driver-core-4.6.0.jar|fgrep ClientOptions

(! 804)-> jar tvf ~/.m2/repository/org/mongodb/mongo-java-driver/3.12.0/mongo-java-driver-3.12.0.jar|fgrep ClientOptions
 20111 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientOptions.class
   226 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientOptions$1.class
 18642 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientOptions$Builder.class

(! 805)-> jar tvf ~/.m2/repository/org/mongodb/mongodb-driver-sync/4.6.0/mongodb-driver-sync-4.6.0.jar|fgrep ClientSetting

(! 806)-> jar tvf ~/.m2/repository/org/mongodb/mongodb-driver-core/4.6.0/mongodb-driver-core-4.6.0.jar|fgrep ClientSetting
   229 Mon Apr 18 23:54:24 PDT 2022 com/mongodb/MongoClientSettings$1.class
 16809 Mon Apr 18 23:54:24 PDT 2022 com/mongodb/MongoClientSettings$Builder.class
 12947 Mon Apr 18 23:54:24 PDT 2022 com/mongodb/MongoClientSettings.class

(! 807)-> jar tvf ~/.m2/repository/org/mongodb/mongo-java-driver/3.12.0/mongo-java-driver-3.12.0.jar|fgrep ClientSetting
   229 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientSettings$1.class
  9292 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientSettings.class
 14842 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientSettings$Builder.class

MongoClientOptions是Legacy API的一部分,mongoclientsettings是现代API的一部分。

Yes, the 3.x series of drivers contains both the legacy API and the modern API but the 4.x series only contains the modern API.

You can see this by looking in the JAR files:

(! 802)-> jar tvf ~/.m2/repository/org/mongodb/mongodb-driver-sync/4.6.0/mongodb-driver-sync-4.6.0.jar|fgrep ClientOptions

(! 803)-> jar tvf ~/.m2/repository/org/mongodb/mongodb-driver-core/4.6.0/mongodb-driver-core-4.6.0.jar|fgrep ClientOptions

(! 804)-> jar tvf ~/.m2/repository/org/mongodb/mongo-java-driver/3.12.0/mongo-java-driver-3.12.0.jar|fgrep ClientOptions
 20111 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientOptions.class
   226 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientOptions$1.class
 18642 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientOptions$Builder.class

(! 805)-> jar tvf ~/.m2/repository/org/mongodb/mongodb-driver-sync/4.6.0/mongodb-driver-sync-4.6.0.jar|fgrep ClientSetting

(! 806)-> jar tvf ~/.m2/repository/org/mongodb/mongodb-driver-core/4.6.0/mongodb-driver-core-4.6.0.jar|fgrep ClientSetting
   229 Mon Apr 18 23:54:24 PDT 2022 com/mongodb/MongoClientSettings$1.class
 16809 Mon Apr 18 23:54:24 PDT 2022 com/mongodb/MongoClientSettings$Builder.class
 12947 Mon Apr 18 23:54:24 PDT 2022 com/mongodb/MongoClientSettings.class

(! 807)-> jar tvf ~/.m2/repository/org/mongodb/mongo-java-driver/3.12.0/mongo-java-driver-3.12.0.jar|fgrep ClientSetting
   229 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientSettings$1.class
  9292 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientSettings.class
 14842 Tue Dec 10 09:49:24 PST 2019 com/mongodb/MongoClientSettings$Builder.class

MongoClientOptions is part of the legacy API, MongoClientSettings is part of the modern API.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文