Using JBoss Microcontainer for JUnit Tests
tbar0711 Sep 11, 2009 10:53 AMHello,
I'd like to use the JBoss Microcontainer for JUnit Tests of Session Beans without a running JBoss 4.2.3. I read a lot about this. But I still don't know what exactly I have to download and where. There are different projects:
• aop-mc-int - the aop integration
• classloader - new classloader model, prepared to handle OSGi CL style
• container - general metadata utilities, and virtual file system usuable across projects
• dependency - a generic dependency state machine
• deployers - the virtual deployment framework (VDF) spi and abstractions.
• guice-int - guice integration
• kernel - the microcontainer adding xml deployment and "javabeans" to the above two projects
• managed
• metatype
• osgi-int - osgi integration
• reliance-identity - define identity as a MC POJO service
• reliance-rules - define your dependencies with Drools
• reliance-jbpm - define your dependencies with jBPM
• spring-int - spring integration
But what of them do I need and how I have to configure it?
Here is an example for one of my Testclasses:
package de.myapplication.business.SomethingDaoImplTest;
import junit.framework.*;ork.TestCase;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import de.myapplication.exception.PersistenceException;
import de.myapplication.persistence.Something;
import de.myapplication.persistence.SomethingPK;
import de.myapplication.session.persistence.dao.LocalStatelessAccessor;
import de.myapplication.session.persistence.dao.interfaces.SomethingDAO;
public class SomethingDaoImplTest extends TestCase {
 private static final Logger LOGGER = Logger
 .getLogger(SomethingDaoImplTest.class.getName());
 public void testLoad() throws PersistenceException {
 // Testdaten
 String somethingnr = "12345566";
 String sap_system = "asdf2";
 String sap_mandant = "000";
 String sprache = "DE";
 Something something = null;
 LOGGER
 .log(Level.INFO,
 "***** SomethingDaoImplTest: testLoad() *****");
 SomethingDAO somethingDAO = LocalStatelessAccessor
 .provideBean(SomethingDAO.class);
 something = somethingDAO.load(new SomethingPK(somethingnr, sap_system,
 sap_mandant), sprache);
 LOGGER.log(Level.INFO, "S_nr: "
 + something.getId().getSomethingnr());
 if (something.getId().equals(
 new SomethingPK(somethingnr, sap_system, sap_mandant))) {
 assertTrue("Object gleich", true);
 } else {
 assertTrue("Object nicht gleich", false);
 }
 }
 public void testLoadSomethingTexte() throws PersistenceException {
 String somethingnr = "12345566";
 String sap_system = "asdf44";
 String sap_mandant = "000";
 String sprache = "DE";
 Something something = null;
 LOGGER.log(Level.INFO,
 "***** SomethingDaoImplTest: testLoadSomethingTexte() *****");
 SomethingDAO somethingDAO = LocalStatelessAccessor
 .provideBean(SomethingDAO.class);
 something = SomethingDAO.load(new SomethingPK(somethingnr, sap_system,
 sap_mandant), sprache);
 LOGGER.log(Level.INFO, "S_nr: "
 + something.getId().getSomethingnr());
 assertEquals(sprache, something.getSomethingText().getId().getSprache());
 }
}SomethingDaoImpl is a Session Bean which implements the interface SomethingDAO. The LocalStatelessAccessor handles the JNDI Lookup.
Thanks in advance.
 
    