Capítulo 11. Integração CDI
11.1. Integração CDI
Para utilizar jbpm-kie-services no seu sistema, você precisará fornecer alguns mbeans para satisfazer todas as dependências dos serviços. Existem vários mbeans que dependem dos cenários vigentes.
- gerenciador de entidades e fábrica de gerenciador de entidades
- retorno de chamadas de grupos de usuários para tarefas humanas
- provedor de identidade para passar informações sobre o usuário para os serviços
Durante a execução em um ambiente JEE, como o JBoss Application Server, o mbeam deve satisfazer todos os requisitos 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
};
}
}
Depois, o arquivo
deployments/business-central.war/WEB-INF/beans.xml pode ser configurado para alterar os parâmetros de configuração atuais da nova implementação 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 é apenas um exemplo dado aqui para demonstrar as configurações do servidor do aplicativo, independente do que ele seja na verdade (LDAP, DB, etc).