flowable / flowable/flowable-engine

Spring Boot integration dependency issues

Offen
#3,759 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Java
Sterne
9.5k
Forks
2.9k
Ø Merge
7 Std. 8 Min.
Gemergte PRs (30 T.)
2

Beschreibung

Describe the bug
I'm focusing on the BPMN process engine since that's what I'm most familiar with. There are multiple conceptual problems with the Spring Boot integration that every user of the integration would sooner or later hit:

  1. Even though you've taken care of starting the async executor later so that all beans (mainly JavaDelegates and FlowableEventListeners) are already loaded, this is still a problem for direct usages of RuntimeService#startProcessInstance* during startup. The reason is the same - there's an implicit requirement that all beans are loaded before using a given process definition.
  2. The same consideration mentioned above has to be applied on shutdown. Otherwise, a given JavaDelegate bean can be destroyed before the async executor is shut down and the process instances may fail due to the absence of the bean in the application context.

Expected behavior
The above problems and necessary considerations should be clear to anyone trying to use the integration as well as having proper and flexible solutions to the problems (especially the second one).

Additional context
Flowable version: 7.0.0.M1, Spring Boot integration. Database: Postgres 14.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, den Spring Boot-Integrationslebenszyklus rund um RuntimeService#startProcessInstance* und den asynchronen Executor während des Anwendungsstarts und -shutdowns nachzuverfolgen. Vergleiche die Reihenfolge der Bean-Initialisierung und -Zerstörung und definiere anschließend Tests oder Lebenszyklusprüfungen, die zeigen, dass Delegates und Event Listener verfügbar bleiben, bis die Prozessarbeit abgeschlossen ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, spring-boot
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.