How to unit test EJB3 without a container

Unit test EJB3 without a container has become much easier since the EJB 3.1 spec with the introduction of the embeddable EJBContainer concept. An embeddable EJBContainer is a container for enterprise beans that does not require a Java EE server to run.

Interesting usage scenarios are:

  • EJB unit testing: you don’t need to install a JavaEE server for EJB development, unit testing and deployment to the container
  • Lightweight: the embeddable container has a much smaller footprint
  • Fast: starts faster than the full server, because it only initializes EJB-related components

Sample code

Below you can find a simple setup method for a JUnit test that configures the Embeddable EJBContainer.

@Before
public void setup() {
	Properties properties = new Properties();
	properties.setProperty(EJBContainer.MODULES, "myModule");
	properties.put(EJBContainer.PROVIDER, "tomee-embedded");
	Context context = EJBContainer.createEJBContainer().getContext();
}

@After
public void tearDown() throws NamingException {
	ejbContainer.close();
}

Here myModule is the module-name defined in ejb-jar.xml file

So how does the EJBContainer start an embedded EJB container? You’ll need to provide an embedded EJB container on the classpath. Normally all Application servers supporting JavaEE6 have to provide such an embedded EJB container.

Apache TomEE container This example uses Apache TomEE as it provides an easy way to specify the correct dependencies via Maven.

<dependency>
	<groupId>org.apache.openejb</groupId>
	<artifactId>tomee-embedded</artifactId>
	<version>1.5.2</version>
</dependency>            
<dependency>
	<groupId>javax</groupId>
	<artifactId>javaee-api</artifactId>
	<version>6.0</version>
	<scope>provided</scope>
</dependency>

The properties.put(EJBContainer.PROVIDER, “tomee-embedded”) makes sure that we will use Apache TomEE when running the test. (even if there is another provider on the classpath)

0 thoughts on “How to unit test EJB3 without a container”

  1. Сайт https://ritual-memory.ru/ предлагает широкий спектр поминальных услуг. Его миссия заключается в том, чтобы поддержать семьи в трудные моменты утраты, предоставляя все необходимое для достойного прощания с близкими.

    Кресты на могилу

    Одной из основных услуг сайта является изготовление и продажа скульптур на могилу. Эти атрибуты являются важной частью ритуала, позволяя увековечить память о человеке. На сайте представлены различные модели крестов, которые подходят под любые требования и предпочтения клиентов. Вы можете выбрать как традиционные кресты, так и более современные арт-объекты решения.

    Гробы на заказ

    Сайт ritual-memory.ru также предлагает контейнеры на заказ. Это позволяет семьям подобрать идеальное решение, соответствующее индивидуальным пожеланиям и бюджету. Гробы могут быть выполнены из различных материалов, включая дерево, металл и даже экологически чистые состава. Каждый продукт изготавливается с правилами нормативов и стандартов, чтобы обеспечить необходимую надежность.

    Дополнительные услуги

    Помимо крестов и гробов, портал предлагает также вспомогательные ритуальные услуги, такие как организация похорон, транспортировка покойного, а также помощь в выборе необходимых атрибутов для захоронения. Все услуги предоставляются на доступном уровне, что позволяет семьям сосредоточиться на прощании, а не на организационных вопросах.

    Профессиональный подход

    Компания гарантирует специальный подход к каждому клиенту. Специалисты сайта готовы ответить на все ваши сомнения и предложить наилучшие варианты, основываясь на вашем становлении и предпочтениях.

    Заключение

    Сайт https://ritual-memory.ru/derevyannye-groby/ создан для того, чтобы помочь людям в трудные моменты жизни. Подбор мемориалов, создание и продажа упаковок на заказ, а также профессиональная помощь в организации всех аспектов ритуала делают этот ресурс ценным помощником для families. Каждый заказчик, воспользовавшийся услугами сайта, получает возможность достойно провести прощание с особыми людьми в своей жизни.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.