Chapitre 11. Intégration CDI

11.1. Intégration CDI

Pour utiliser jbpm-kie-services dans votre système, vous devrez fournir certains mbeans qui puissent satisfaire toutes les dépendances des services. Il y a plusieurs mbeans qui dépendent de certains scénarios.
  • Gestionnaire d'entités et Usine de gestionnaires d'entités
  • Callback de groupes d'utilisateurs pour des tâches humaines
  • Fournisseur d'identité pour passer les informations d’authentification de l'utilisateur aux services.
Quand vous exécutez un environnement JEE, comme JBoss Application Server, le mbean doit remplir toutes les exigences 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
        };
    }
}
Alors le fichier deployments/business-central.war/WEB-INF/beans.xml peut être configuré pour pouvoir modifier les paramètres de configuration actuels de l'implémentation de 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>

Note

org.jbpm.services.task.identity.JAASUserGroupCallbackImpl est juste un exemple pour démontrer les paramètres de configuration du serveur d'applications quel qu'il fût (LDAP, DB, etc).