2009-02-23 6 views
1

J'utilise/anticiper la pile de technologie suivante:Comment intégrer jBPM et Spring via des scripts et EL

  • JSF
  • Seam
  • jBPM
  • printemps

de Bien sûr, j'aimerais que Seam accède directement aux haricots Spring et que cela fonctionne bien. J'aimerais maintenant passer à jBPM et développer une définition de processus de preuve de concept qui accède aux beans Spring pour effectuer des actions et prendre des décisions.

Pour favoriser la séparation des problèmes et assurer que les processus peuvent s'exécuter sans Seam dans le chemin de la classe, j'aimerais une solution qui NE permette PAS d'accéder à tous les composants gérés de Seam.

Je sais que Seam utilise un résolveur EL sur mesure, mais à part ça, où dois-je commencer?

Répondre

0

Il est possible de sous-typer VariableResolver et de spécifier votre sous-type dans votre fichier jbpm.cfg.xml. Cela peut permettre à # {myBean} de résoudre votre bean.

<jbpm-configuration> 

    <bean name="jbpm.variable.resolver" class="com.your.jbpm.VariableResolver" singleton="true" > 
     <field name="backingVariableResolver"><ref bean="jbpm.variable.backingResolver" /></field> 
    </bean> 
    <bean name="jbpm.variable.backingResolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true" /> 

</jbpm-configuration> 

mais pour l'accès à partir de scripts et d'actions est la manière d'injecter transient variables dans l'instance de processus, en gardant à l'esprit que vous devrez peut-être travailler autour de bug JBPM-304, par exemple Sous-typage Script et ajustement des fichiers de mappage d'hibernation associés. Cette injection doit être répétée avant chaque signal à chaque instance de processus.

Ces techniques peuvent être utilisées pour s'assurer que vous avez accès aux beans auxquels vous voulez accéder, mais ne vous donnent pas vraiment un EL personnalisé. Cela prendrait un certain piratage sérieux de la classe JbpmExpressionEvaluator.

Questions connexes