Читаем Изучаем Java EE 7 полностью

······book = bookEJB.createBook(book);

······assertNotNull("ID не может быть пустым", book.getId());

······// Ищет все книги и убеждается, что их стало на одну больше

······assertEquals(3, bookEJB.findBooks(). size());

······// Удаляет созданную книгу

······bookEJB.deleteBook(book);

······// Ищет все книги и убеждается, что их стало на одну меньше

······assertEquals(2, bookEJB.findBooks(). size());

····}

··}

}

Метод ShouldCreateABook() является интеграционным тестом, который проверяет общее количество книг (оно должно быть равно двум, потому что класс DatabasePopulator инициализировал базу данных двумя книгами), создает новую книгу, убеждается, что общее количество книг увеличилось на единицу, удаляет одну и проверяет, стало ли общее количество книг снова равным двум. Для этого тест создает контейнер EJB, получает контекст JNDI и использует его для поиска объекта типа BookEJB (для того чтобы извлекать и создавать книги).

<p>Компиляция, тестирование и упаковка с помощью Maven</p>

Теперь вы можете использовать Maven для того, чтобы скомпилировать сущность Book, BookEJB, интерфейс BookEJBRemote, синглтон DatabasePopulator и класс CDI DatabaseProducer. Далее Maven упаковывает все это в один файл с расширением. jar с блоком хранения (persistence.xml), а также файл CDI beans.xml. В листинге 8.17 Maven использует файл pom.xml для описания проекта и внешних зависимостей. Этому примеру необходима зависимость glassfish-embedded-all, которая поставляется с Java EE 7 API, а также JUnit для проведения интеграционных тестов. Классы будут скомпилированы и упакованы в файл chapter08-service-1.0.jar. Следует также уведомить Maven о том, что вы будете использовать Java SE 7, сконфигурировав maven-compiler-plugin так, как это показано в листинге 8.17.

Листинг 8.17. Файл pom.xml для компиляции, тестирования и пакет EJB

·········xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance" 

·········xsi: schemaLocation="http://maven.apache.org/POM/4.0.0 

·········http://maven.apache.org/xsd/maven-4.0.0.xsd">

··4.0.0

··

····chapter08

····org.agoncal.book.javaee7

····1.0

··

··org.agoncal.book.javaee7.chapter08

··chapter08-service

··1.0

··

····

······org.glassfish.main.extras

······glassfish-embedded-all

······4.0

······provided

····

····

······junit

······junit

······4.11

······test

····

··

··

····

······

········org.apache.maven.plugins

········maven-compiler-plugin

········2.5.1

········

··········1.7

··········1.7

········

······

······

········maven-failsafe-plugin

········2.12.4

········

··········

············integration-test

············

··············integration-test

··············verify

············

··········

········

······

····

··

Обратите внимание, что этот код включает в себя зависимость glassfish-embedded-all (provided), которая используется классом test (test) для вызова встроенного контейнера и запуска EJB.

Для компиляции и упаковки классов откройте интерпретатор командной строки и введите следующую команду Maven:

$ mvn package

Должно появиться сообщение BUILD SUCCESSFUL, которое сообщит о том, что компиляция и упаковка прошли успешно. Кроме того, если вы заглянете в подкаталог target, то увидите, что Maven создал файл chapter08-services-1.0.jar.

Вы можете выполнить интеграционное тестирование (см. листинг 8.16) с помощью надстройки Maven Failsafe, введя следующую команду Maven:

$ mvn integration-test

<p>Развертывание на GlassFish</p>

Теперь, когда все классы были упакованы в архив c расширением. jar, он может быть развернут на сервере приложений GlassFish. Прежде чем сделать это, убедитесь, что GlassFish и Derby запущены и работают.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных