Capítulo 11. Integración CDI
11.1. Integración CDI
Para hacer uso de jbpm-kie-services en su sistema, usted necesitará proporcionar algunos mbeans para satisfacer todas las dependencias de los servicios. Hay varios mbeans que dependen de escenarios reales.
- Gestor de entidad y fábrica de gestor de entidades
- llamada de grupo de usuario para tareas humanas
- proveedor de identidad para pasar información de usuario autenticada para los servicios
Al ejecutar en el entorno JEE, como por ejemplo JBoss Application Server, el mbean debe satisfacer todos los requerimientos de jbpm-kie-services
public class EnvironmentProducer {
@PersistenceUnit(unitName = "org.jbpm.domain")
private EntityManagerFactory emf;
@Inject
@Selectable
private UserGroupCallback userGroupCallback;
@Produces
public EntityManagerFactory getEntityManagerFactory() {
return this.emf;
}
@Produces
@RequestScoped
public EntityManager getEntityManager() {
EntityManager em = emf.createEntityManager();
return em;
}
public void close(@Disposes EntityManager em) {
em.close();
}
@Produces
public UserGroupCallback produceSelectedUserGroupCalback() {
return userGroupCallback;
}
@Produces
public IdentityProvider produceIdentityProvider {
return new IdentityProvider() {
// implement IdentityProvider
};
}
}
Luego el archivo
deployments/business-central.war/WEB-INF/beans.xml puede ser configurado para cambiar los parámetros actuales de la nueva implementación usergroupcallback.
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd"> <alternatives> <class>org.jbpm.services.task.identity.JAASUserGroupCallbackImpl</class> </alternatives> </beans>
Nota
org.jbpm.services.task.identity.JAASUserGroupCallbackImpl es apenas un ejemplo para demonstrar los parámetros del servidor de aplicaciones independiente de lo que en realidad es (LDAP, DB, etc).