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. Одноразовые номера для мессенджеров: в чем их сильные стороны?

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

    1. Защищенность вашей приватности

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

    2. Простота использования

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

    3. Оптимизация ресурсов

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

    4. Конфиденциальность

    Одноразовые номера позволяют вам оставаться анонимным в сети. Вы можете общаться с другими пользователями, не передавая свою персональную информацию.

    5. Защита от рекламы

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

    6. Легкость получения

    Временные телефоны можно легко активировать через мобильные сервисы. Обычно это бесплатно или затрачивает минимальную сумму.

    Заключение

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

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.