Start moving code from the ECA module

Created on 15 March 2025, 21 days ago

Problem/Motivation

The goal of this module is to move the integration code out of the ECA module so that other modules can use it to integrate with BPMN.iO and other modelers, without depending on ECA.

This issue, along with related issues for the ECA and BPMN.iO modules, should be a big step towards a first alpha release of this module.

Proposed resolution

For this issue, start moving code from ECA to this module: probably at least the following classes

  • Drupal\eca\Annotation\EcaModeller
  • The Drupal\eca\Plugin\ECA\Modeller namespace
  • Drupal\eca\PluginManager\Modeller
  • Drupal\eca\Service\Modellers
  • Drupal\eca\Entity\Model

Remaining tasks

User interface changes

API changes

Various classes are moving from the Drupal\eca namespace to the Drupal\modeler_api namespace. This will require new major versions of the ECA and BPMN.iO modules.

Data model changes

πŸ“Œ Task
Status

Active

Component

Code

Created by

πŸ‡ΊπŸ‡ΈUnited States benjifisher Boston area

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @benjifisher
  • Merge request !1Move code from the ECA module β†’ (Open) created by benjifisher
  • πŸ‡ΊπŸ‡ΈUnited States benjifisher Boston area
  • πŸ‡ΊπŸ‡ΈUnited States benjifisher Boston area

    I am adding testing instructions to the issue summary.

  • πŸ‡ΊπŸ‡ΈUnited States benjifisher Boston area
  • πŸ‡ΊπŸ‡ΈUnited States benjifisher Boston area

    On second thought, I do not think we need to move the Modellers service to the modeler_api module. It consists of convenience methods (mostly wrapping the plugin manager) and some methods closely tied to the eca module (such as events(), which returns a sorted list of all the Event plugins). We may decide to move some of that to the modeler_api module, but not as part of this issue.

    Other than the service, I think the MR handles everything in the issue description. This issue is ready for review, along with the related issues for the eca and bpmn_io modules.

  • πŸ‡ΊπŸ‡ΈUnited States benjifisher Boston area
  • πŸ‡ΊπŸ‡ΈUnited States cosmicdreams Minneapolis/St. Paul

    Great work Benji

    Additional thoughts:

    * Talked with Jurgen this morning and discovered that there may be a strong need to move the existing BPMNModeler bits that are in the eca module into the BMPN.io module.
    * So we can see what the moduler_api needs to know in order for that to work.

  • πŸ‡ΊπŸ‡ΈUnited States benjifisher Boston area

    > ... there may be a strong need to move the existing BPMNModeler bits that are in the eca module into the BMPN.io module.

    I already added 🌱 Decide what to do with the modeller_bpmn module Active to work on that question.

  • First commit to issue fork.
  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen

    As discussed in Atlanta, I'm spending 3 full days on building the initial structure on top of what @benjifisher and @cosmicdreams have already built. For that here are some names, that I'm using for now:

    • Model: config entity, owned by the ModelOwner
    • ModelOwner (a.k.a. client or target): plugin like ECA
    • Modeler: plugin like bpmn_io

    And I've the following changes as well:

    • ECA has no dependency on modeler API or bpmn_io
    • bpmn_io has no dependency on ECA
    • PHP 8.3 or later required
    • Drupal core 11.2 or later required
    • There will be no modeler config entity any longer, the raw data will be stored in the model itself, performance considerations addressed later

    My first commit contains all those changes and the plugin manager and interface for ModelOwner is included and contains most of the skeleton code.

    I'm now working on the plugin manager and interface for modelers, then I can get the whole thing working hopefully by tomorrow.

  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen

    All tests are now green and this is ready to be merged as a baseline to be followed-up in separate issues from here on.

Production build 0.71.5 2024