Wie integrieren jBPM und Spring über Skripte und EL
-
06-09-2019 - |
Frage
Ich verwende / Vorwegnahme den folgenden Technologie-Stack:
- JSF
- Seam
- jBPM
- Frühling
Natürlich würde Ich mag Seam Spring-Beans den direkten Zugriff auf und haben so viel bekam gut zu funktionieren. Ich würde jetzt nach unten bewegen in jBPM mag und eine Proof of Concept Prozessdefinition zu entwickeln, die Spring-Beans greift Aktionen auszuführen und Entscheidungen zu treffen.
Trennung von Bedenken zu fördern und sicherzustellen, dass die Prozesse ohne Naht im Klassenpfad laufen kann ich eine Lösung möchten, die keinen Zugriff auf alle der Naht verwalteten Komponenten erlaubt es.
Ich weiß, Seam ein maßgeschneidertes EL-Resolver aber anders als das verwendet, wo soll ich anfangen?
Lösung
Es ist möglich VariableResolver Subtyp und Ihren Subtyp in Ihrer jbpm.cfg.xml-Datei angeben. Dies kann # {MyBean} erlauben, Ihre Bohne zu lösen.
<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>
aber für den Zugriff von Skripten und Aktionen ist die Art und Weise transienten zu injizieren Variablen in der Prozessinstanz, wenn man bedenkt, die Sie benötigen um Fehler arbeiten JBPM-304 , zB durch Unter Typisierung Script und die damit verbundenen Hibernate Mapping-Dateien anpassen. Diese Injektion wird vor jedem Signal an jede Prozessinstanz wiederholt werden.
Diese Techniken können verwendet werden, um sicherzustellen, dass Sie Zugriff auf die Bohnen haben Sie Zugang wollen, aber wirklich Ihnen keine benutzerdefinierten EL geben. Das würde einige ernsthafte Hacking der JbpmExpressionEvaluator Klasse nehmen.