Skip to content

Commit 9bc4a68

Browse files
committed
Revert "Feature/event payloads (#393)"
This reverts commit 4cf60ac.
1 parent 5c68e58 commit 9bc4a68

File tree

13 files changed

+40
-309
lines changed

13 files changed

+40
-309
lines changed

bin/run_pyl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ function run_autofixers() {
3838
asdf reshim python
3939
fi
4040

41-
python_dirs="$(get_python_dirs) bin"
41+
python_dirs=$(get_python_dirs)
4242
ruff --fix $python_dirs || echo ''
4343
}
4444

spiffworkflow-backend/bin/boot_server_in_docker

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,6 @@ if [[ -z "${SPIFFWORKFLOW_BACKEND_THREADS_PER_WORKER:-}" ]]; then
8888
export SPIFFWORKFLOW_BACKEND_THREADS_PER_WORKER
8989
fi
9090

91-
# DELETE after this runs on all necessary environments
92-
# TODO: make a system somewhat like schema migrations (storing versions in a db table) to handle data migrations
93-
poet run python ./bin/data_migrations/version_1_3.py
94-
9591
# --worker-class is not strictly necessary, since setting threads will automatically set the worker class to gthread, but meh
9692
export IS_GUNICORN="true"
9793
# THIS MUST BE THE LAST COMMAND!

spiffworkflow-backend/bin/data_migrations/version_1_3.py

Lines changed: 0 additions & 203 deletions
This file was deleted.

spiffworkflow-backend/migrations/versions/214e0c5fb418_.py

Lines changed: 0 additions & 32 deletions
This file was deleted.

spiffworkflow-backend/poetry.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spiffworkflow-backend/src/spiffworkflow_backend/models/message_instance_correlation.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,8 @@ class MessageInstanceCorrelationRuleModel(SpiffworkflowBaseDBModel):
2929

3030
id = db.Column(db.Integer, primary_key=True)
3131
message_instance_id = db.Column(ForeignKey(MessageInstanceModel.id), nullable=False, index=True) # type: ignore
32-
3332
name: str = db.Column(db.String(50), nullable=False, index=True)
3433
retrieval_expression: str = db.Column(db.String(255))
3534
updated_at_in_seconds: int = db.Column(db.Integer)
3635
created_at_in_seconds: int = db.Column(db.Integer)
37-
correlation_key_names: list = db.Column(db.JSON)
38-
3936
message_instance = relationship("MessageInstanceModel", back_populates="correlation_rules")

spiffworkflow-backend/src/spiffworkflow_backend/services/message_service.py

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
from SpiffWorkflow.bpmn.event import BpmnEvent # type: ignore
2-
from SpiffWorkflow.bpmn.specs.event_definitions.message import CorrelationProperty # type: ignore
3-
from SpiffWorkflow.spiff.specs.event_definitions import MessageEventDefinition # type: ignore
1+
from SpiffWorkflow.bpmn.workflow import BpmnMessage # type: ignore
42
from spiffworkflow_backend.models.db import db
53
from spiffworkflow_backend.models.message_instance import MessageInstanceModel
64
from spiffworkflow_backend.models.message_instance import MessageStatuses
@@ -74,7 +72,8 @@ def correlate_send_message(cls, message_instance_send: MessageInstanceModel) ->
7472
cls.process_message_receive(
7573
receiving_process,
7674
message_instance_receive,
77-
message_instance_send,
75+
message_instance_send.name,
76+
message_instance_send.payload,
7877
)
7978
message_instance_receive.status = "completed"
8079
message_instance_receive.counterpart_id = message_instance_send.id
@@ -131,7 +130,7 @@ def get_process_instance_for_message_instance(
131130
(
132131
(
133132
"Process instance cannot be found for queued message:"
134-
f" {message_instance_receive.id}. Tried with id"
133+
f" {message_instance_receive.id}.Tried with id"
135134
f" {message_instance_receive.process_instance_id}"
136135
),
137136
)
@@ -142,28 +141,16 @@ def get_process_instance_for_message_instance(
142141
def process_message_receive(
143142
process_instance_receive: ProcessInstanceModel,
144143
message_instance_receive: MessageInstanceModel,
145-
message_instance_send: MessageInstanceModel,
144+
message_model_name: str,
145+
message_payload: dict,
146146
) -> None:
147-
correlation_properties = []
148-
for cr in message_instance_receive.correlation_rules:
149-
correlation_properties.append(
150-
CorrelationProperty(
151-
name=cr.name,
152-
retrieval_expression=cr.retrieval_expression,
153-
correlation_keys=cr.correlation_key_names,
154-
)
155-
)
156-
bpmn_message = MessageEventDefinition(
157-
name=message_instance_send.name,
158-
correlation_properties=correlation_properties,
159-
)
160-
bpmn_event = BpmnEvent(
161-
event_definition=bpmn_message,
162-
payload=message_instance_send.payload,
163-
correlations=message_instance_send.correlation_keys,
147+
bpmn_message = BpmnMessage(
148+
None,
149+
message_model_name,
150+
message_payload,
164151
)
165152
processor_receive = ProcessInstanceProcessor(process_instance_receive)
166-
processor_receive.bpmn_process_instance.send_event(bpmn_event)
153+
processor_receive.bpmn_process_instance.catch_bpmn_message(bpmn_message)
167154
processor_receive.do_engine_steps(save=True)
168155
message_instance_receive.status = MessageStatuses.completed.value
169156
db.session.add(message_instance_receive)

spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_processor.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
from lxml import etree # type: ignore
2525
from lxml.etree import XMLSyntaxError # type: ignore
2626
from RestrictedPython import safe_globals # type: ignore
27-
from SpiffWorkflow.bpmn.event import BpmnEvent # type: ignore
2827
from SpiffWorkflow.bpmn.exceptions import WorkflowTaskException # type: ignore
2928
from SpiffWorkflow.bpmn.parser.ValidationException import ValidationException # type: ignore
3029
from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine # type: ignore
@@ -1084,12 +1083,10 @@ def send_bpmn_event(self, event_data: dict[str, Any]) -> None:
10841083
"""Send an event to the workflow."""
10851084
payload = event_data.pop("payload", None)
10861085
event_definition = self._event_serializer.registry.restore(event_data)
1087-
bpmn_event = BpmnEvent(
1088-
event_definition=event_definition,
1089-
payload=payload,
1090-
)
1086+
if payload is not None:
1087+
event_definition.payload = payload
10911088
try:
1092-
self.bpmn_process_instance.send_event(bpmn_event)
1089+
self.bpmn_process_instance.catch(event_definition)
10931090
except Exception as e:
10941091
print(e)
10951092

spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
import sentry_sdk
1111
from flask import current_app
1212
from flask import g
13-
from SpiffWorkflow.bpmn.specs.control import BoundaryEventSplit # type: ignore
14-
from SpiffWorkflow.bpmn.specs.event_definitions.timer import TimerEventDefinition # type: ignore
13+
from SpiffWorkflow.bpmn.specs.control import _BoundaryEventParent # type: ignore
14+
from SpiffWorkflow.bpmn.specs.event_definitions import TimerEventDefinition # type: ignore
1515
from SpiffWorkflow.task import Task as SpiffTask # type: ignore
1616
from spiffworkflow_backend import db
1717
from spiffworkflow_backend.exceptions.api_error import ApiError
@@ -170,7 +170,7 @@ def all_waiting_events_can_be_skipped(cls, waiting_events: list[dict[str, Any]])
170170
@classmethod
171171
def ready_user_task_has_associated_timer(cls, processor: ProcessInstanceProcessor) -> bool:
172172
for ready_user_task in processor.bpmn_process_instance.get_ready_user_tasks():
173-
if isinstance(ready_user_task.parent.task_spec, BoundaryEventSplit):
173+
if isinstance(ready_user_task.parent.task_spec, _BoundaryEventParent):
174174
return True
175175
return False
176176

0 commit comments

Comments
 (0)