Обновление Cassandra и hector до версии 1.0 и модульное тестирование

#cassandra #hector

#cassandra #гектор

Вопрос:

Мы использовали Cassandra 0.7, и поскольку вышла стабильная версия cassandra 1.0.0, мы планировали перейти на нее. Это низкий риск, поскольку мы еще не запущены в производство. Мы использовали hector 0.7-29, в котором был пакет testutils и класс EmbeddedServerHelper, который мы использовали для запуска встроенного сервера во всех наших модульных тестах.

Однако обновленная версия hector 1.0-1 (которая предназначена для cassandra 1.0.x) удалила этот пакет (me.prettyprint.cassandra.testutils) из своего основного дистрибутива.

Я хотел бы знать, как продвигается модульное тестирование с использованием нового API-клиента hector 1.0-1. Есть ли еще способ запустить cassandra embedded server?

Спасибо за вашу помощь.

Ответ №1:

Появился новый модуль ‘test’, который содержит EmbeddedSchemaLoader и EmbeddedServerHelper. Мы убрали их из ядра, чтобы их можно было использовать за пределами Hector (поскольку модуль теперь не имеет прямой зависимости от hector).

https://github.com/rantav/hector/tree/master/test

Дайте нам знать, как все работает.

Комментарии:

1. После исправления еще нескольких вещей я закончил с приведенной ниже ошибкой. У меня установлена последняя версия libthrift v 0.7.0 в качестве зависимости. 16:33:29,531 ОШИБКА AbstractCassandraDaemon:354 — Исключение, возникшее при запуске java.lang. Ошибка NoSuchMethodError: org.apache.thrift.server. TServer. <инициализация>(Lorg/apache/thrift/server/TServer$AbstractServerArgs;)

2. Кассандра и гектор оба находятся на thrift 0.6.1 — скорее всего, вам потребуется понизить thrift.

3. Мне пришлось включить libthrift 0/5/0 в group org.apache.cassandra.deps, чтобы это прошло. Поскольку в cassandra.yaml не может быть инструкций schema create, каков наилучший способ загрузки схемы? Я подумываю о репликации кода в EmbeddedSchemaLoader для наших тестов

4. удалена зависимость libthrift 0.5.0, поскольку она работает с версией 0.6.1. Спасибо, Нейт

5. Если вам действительно комфортно с maven, я бы также предложил mojo.codehaus.org/cassandra-maven-plugin взгляните на CQL jdbc-driver для получения хорошего примера того, как это настроить: code.google.com/a/apache-extras.org/p/cassandra-jdbc