Esta es mi SLSB:¿Cómo configurar el contenedor OpenEJB integrado para las pruebas correctamente?
@Stateless
public class MyService {
PersistenceContext(unitName = "abc")
EntityManager em;
public boolean exists(int id) {
return this.em.find(Employee.class, id) != null;
}
}
Ésta es mi persistence.xml
(estoy usando GlassFish v3):
<persistence>
<persistence-unit name="abc">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/MyDS</jta-data-source>
<properties>
<property name="hibernate.archive.autodetection" value="class" />
<property name="hibernate.dialect"
value="org.hibernate.dialect.MySQLInnoDBDialect" />
</properties>
</persistence-unit>
</persistence>
Ahora estoy tratando de crear una prueba, utilizando OpenEJB contenedor embebido. Esta es mi clase de prueba:
class MyServiceText {
@Test
public void testChecksExistence() throws Exception {
Properties properties = new Properties();
properties.setProperty(
javax.naming.Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.LocalInitialContextFactory"
);
InitialContext ic = new InitialContext(properties);
// actual testing skipped
}
}
Me gustaría utilizar HSQL para la prueba. ¿Cómo puedo instruir a OpenEJB que mi unidad de persistencia "abc"
tiene que apuntar a HSQL durante la prueba? ¿Debo crear una nueva versión de persistence.xml
? ¿Debo usar openejb.xml
? Estoy perdido en su examples and documentation .. :(
Es un proyecto Maven-3.
örn Gracias, podrían indicar en su respuesta cómo puedo configurar las propiedades de Hibernate para esta fuente de datos (o unidad de persistencia) .. ¿O tal vez puede dar un enlace donde se divulgue esta información? – yegor256
@Vincenzo, edité mi respuesta. Por favor, avíseme si esto funciona. –
örn Muchas gracias, ¡ahora funciona! – yegor256