Я упоминал Atom Hopper несколько раз в этом блоге. Atom Hopper (на основе Apache Abdera ) для тех, кто может не знать, — это проект с открытым исходным кодом, спонсируемый Rackspace . Сегодня я покажу вам, как использовать новый адаптер данных MongoDB . Несмотря на то, что адаптер данных MongoDB не был полностью протестирован и поэтому не должен использоваться в производстве, как разработчик, вы можете пнуть шинами и отправить нам обратную связь или получить запросы с улучшениями.
После завершения тестирования, рефакторинга и т. Д. Для адаптера данных MongoDB он, скорее всего, будет включен по умолчанию, а не в текущем адаптере данных Hibernate . Сейчас я предполагаю, что его (адаптер данных MongoDB) необходимо включить вручную.
Важное замечание : Обязательно поместите Index в DateLastUpdated — это значительно улучшит запросы HTTP GET .
Как говорится в нашей вики, есть несколько способов запустить Atom Hopper. Чтобы протестировать адаптер MongoDB с Atom Hopper, я покажу вам, как запустить его из Netbeans 7.1. Вам также потребуется MongoDB, работающий локально на вашем компьютере.
Шаг 1: Получить исходный код исходный код является открытым исходным кодом под лицензией Apache 2 . Вы можете использовать Git, чтобы легко получить исходный код. Я нахожусь на OS X, и я склонен использовать Mac-клиент GitHub, но вы также можете использовать функциональность Git в Netbeans.
Шаг 2. Компиляция исходного кода
После того, как вы загрузили главный репозиторий для Atom Hopper, вы можете использовать Netbeans 7.1 для загрузки проекта. Запустите Netbeans, если он еще не запущен, и выберите: « Файл» -> «Открыть проект», найдите папку Atom-Hopper, нажмите « Открыть требуемые проекты» и нажмите « Открыть» .
Загрузив проект, щелкните правой кнопкой мыши проект ATOM Hopper — ATOMpub Server Collection и выберите « Очистить и построить» .
Шаг 3: Запуск автономной версии Jetty (только для тестирования)
На этом этапе проект должен был быть успешно построен — и это может занять некоторое время, так как все зависимости должны быть загружены в первую очередь. Обычно, когда вы запускаете Atom Hopper, вы используете полученный WAR-файл и внедряете его в нечто вроде Apache Tomcat . Для простоты и потому, что это только для тестирования нового адаптера MongoDB для Atom Hopper, я просто покажу вам, как запустить автономную версию Jetty, которая используется для отладки Atom Hopper.
Щелкните правой кнопкой мыши проект ATOM Hopper — Jetty Server по умолчанию и выберите Свойства .
В открывшемся диалоговом окне « Свойства проекта» нажмите « Выполнить» в левой части категорий, а затем справа добавьте слово « начало» в текстовое поле « Аргументы» .
Нажмите кнопку Ok и вернитесь в проект. Перейдите в файлы проекта ATOM Hopper — Default Jetty Server и найдите файл atom-server.cfg.xml и application-context.xml .
Давайте добавим MongoDB в качестве адаптера по умолчанию в файл application-context.xml . Это делается путем комментирования адаптера Hibernate и раскомментирования в адаптере MongoDB. Файл должен выглядеть так:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- MongoDB --> <mongo:mongo host="localhost" port="27017"/> <bean name="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg ref="mongo"/> <constructor-arg name="databaseName" value="atomhopper"/> </bean> <bean name="mongodb-feed-publisher" class="org.atomhopper.mongodb.adapter.MongodbFeedPublisher"> <property name="mongoTemplate" ref="mongoTemplate" /> </bean> <bean name="mongodb-feed-source" class="org.atomhopper.mongodb.adapter.MongodbFeedSource"> <property name="mongoTemplate" ref="mongoTemplate" /> </bean> </beans>
Теперь нам просто нужно установить файл atom-server.cfg.xml так, чтобы он указывал на издателя и источник новостей MongoDB:
<?xml version="1.0" encoding="UTF-8"?> <atom-hopper-config xmlns="http://atomhopper.org/atom/hopper-config/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://atomhopper.org/atom/hopper-config/v1.0 ./../../config/atom-hopper-config.xsd"> <defaults> <author name="Atom Hopper" /> </defaults> <host domain="localhost:8080" /> <workspace title="Testing Namespace" resource="/namespace/"> <categories-descriptor reference="workspace-categories-descriptor" /> <feed title="Testing Feed" resource="/feed"> <publisher reference="mongodb-feed-publisher" /> <feed-source reference="mongodb-feed-source" /> </feed> </workspace> </atom-hopper-config>
Продолжайте и заново скомпилируйте проект ATOM Hopper — Jetty Server по умолчанию , затем щелкните его правой кнопкой мыши и выберите « Выполнить» .
Команда запуска, которую мы установили ранее, позволяет серверу Jetty запускаться при следующих значениях по умолчанию:
http: // localhost: 8080 / namespace / feed /
Используйте приведенный выше URL, чтобы проверить все. Вы можете выполнить HTTP POST или GET для канала. Вот пример XML-кода ATOM, который вы можете использовать для тестирования:
<entry xmlns="http://www.w3.org/2005/Atom"> <title type="text">This is the title</title> <author> <name>John Doe</name> </author> <content type="text">Hello World</content> <category term="MyCategory 1" /> <category term="MyCategory 2" /> <category term="MyCategory 3" /> </entry>
Примечание. Вы можете использовать плагин, такой как XHR Poster for Chrome, чтобы легко разместить его в Atom Hopper, или плагин, такой как Poster for Firefox.
Перед выполнением HTTP POST убедитесь, что тип контента установлен как application / atom + xml . Вы можете получить более подробную информацию о том, как использовать плагин для тестирования Atom Hopper, отсюда .
Чтобы завершить работу автономного сервера Jetty, просто вернитесь в проект ATOM Hopper — Jetty Server по умолчанию, затем щелкните его правой кнопкой мыши и выберите « Свойства» . В открывшемся диалоговом окне « Свойства проекта» нажмите « Выполнить» в левой части категорий, а затем справа добавьте слово « стоп» в текстовое поле « Аргументы» . Затем запустите проект ATOM Hopper — Jetty Server по умолчанию, который отправит команду завершения работы работающему экземпляру.
Последнее напоминание … Адаптер данных MongoDB все еще проходит рефакторинг и тестирование, поэтому в настоящее время он не готов к использованию . Следите за Atom Hopper в Твиттере, и вы будете первыми, кто узнает, когда он достаточно стабилизируется для производственного использования. См. Вики Atom Hopper для последней документации.