Доступ к бесконечности.class в Clojure

Я пытаюсь скопировать фрагмент кода из документации Infinispan в Clojure:

ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
  .addStore(SoftIndexFileStoreConfigurationBuilder.class)
  .indexLocation("/tmp/sifs/testCache/index");
  .dataLocation("/tmp/sifs/testCache/data")

Вот моя попытка:

(import '[org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder])
(import '[org.infinispan.configuration.cache ConfigurationBuilder])

(def b (ConfigurationBuilder.))

(.addStore (.persistence b)
           (class org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder))

;; java.lang.ClassNotFoundException: org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder

Как мне пройти это исключение? Это источник SIFS

1 ответ

Решение

Для вашего случая вы должны иметь в своих зависимостях:

:dependencies  ... others here ...
               [org.infinispan/infinispan-core "9.0.1.Final"]
               [org.infinispan/infinispan-persistence-soft-index "9.0.1.Final"]

Кроме того, вы используете импорт неправильно. Вы можете сделать:

(import full.package.name.ClassNameHere)

или же

(import [full.package.name ClassNameOne ClassNameTwo])

Для вашего случая вы должны делать:

(import org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder)

Обратите внимание, что в отличие от require, где nil результат означает "все хорошо" с import nil возврат означает "ничего не было импортировано".

Другие вопросы по тегам