Читаем Изучаем 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 (для того чтобы извлекать и создавать книги).

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

Теперь вы можете использовать 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

Развертывание на GlassFish

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

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

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

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT