Статьи

Запустите адаптер данных MongoDB для Atom Hopper с Netbeans

Я упоминал 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 для последней документации.