<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Developers, Developers, Developers! &#187; Singleton</title>
	<atom:link href="http://maksim.sorokin.dk/it/tag/singleton/feed/" rel="self" type="application/rss+xml" />
	<link>http://maksim.sorokin.dk/it</link>
	<description>Maksim Sorokin IT Blog</description>
	<lastBuildDate>Sun, 05 Feb 2012 19:37:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Java EE 6 EJB Integration Testing</title>
		<link>http://maksim.sorokin.dk/it/2010/02/10/java-ee-6-ejb-integration-testing/</link>
		<comments>http://maksim.sorokin.dk/it/2010/02/10/java-ee-6-ejb-integration-testing/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 18:52:11 +0000</pubDate>
		<dc:creator>Maksim Sorokin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[EJB]]></category>
		<category><![CDATA[Integration Testing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java EE 6]]></category>
		<category><![CDATA[Singleton]]></category>

		<guid isPermaLink="false">http://maksim.sorokin.dk/it/?p=56</guid>
		<description><![CDATA[Testing EJBs in a container! Say, you have a @Singleton package example; import java.util.Properties; import javax.annotation.PostConstruct; import javax.ejb.Singleton; @Singleton public class AppParamsLoader { private Properties props = null; @PostConstruct void init() { props = loadProperties(); } public String getParam(String paramKey) { return props.getProperty(paramKey); } void loadProperties() { // .. } } You can use EJBContainer [...]]]></description>
			<content:encoded><![CDATA[<p>Testing EJBs in a container!<br />
<span id="more-56"></span></p>
<p>Say, you have a @Singleton</p>
<pre class="brush: java; title: ;">
package example;

import java.util.Properties;

import javax.annotation.PostConstruct;
import javax.ejb.Singleton;

@Singleton
public class AppParamsLoader {

  private Properties props = null;

  @PostConstruct
  void init() {
    props = loadProperties();
  }

  public String getParam(String paramKey) {
    return props.getProperty(paramKey);
  }

  void loadProperties() {
    // ..
  }
}
</pre>
<p>You can use <code>EJBContainer</code> for your integration testing:</p>
<pre class="brush: java; title: ;">package example;

import javax.ejb.embeddable.EJBContainer;
import javax.naming.Context;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class AppParamsLoaderTest {

  private static EJBContainer container;
  private static Context namingContext;

  private static AppParamsLoader appParamsLoader;

  @BeforeClass
  public static void setUp() throws Exception {
    container = EJBContainer.createEJBContainer();
    namingContext = container.getContext();
    appParamsLoader = (AppParamsLoader) namingContext.lookup(&quot;java:global/classes/AppParamsLoader&quot;);
  }

  @AfterClass
  public static void tearDown() throws Exception {
    container.close();
  }

  @Test
  public void testAppParamsLoader() {
    // ..
  }
}
</pre>
<p>There is a way to initialize the container through maven:<br />
<a href="http://blogs.sun.com/alexismp/entry/glassfish_embedded_and_javadb_embedded">http://blogs.sun.com/alexismp/entry/glassfish_embedded_and_javadb_embedded</a></p>
]]></content:encoded>
			<wfw:commentRss>http://maksim.sorokin.dk/it/2010/02/10/java-ee-6-ejb-integration-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

