Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-14892

DiagramEdge and DiagramEdgeWaypoint objects never instantiated

XMLWordPrintable

    • Icon: Bug Report Bug Report
    • Resolution: Won't Fix
    • Icon: L3 - Default L3 - Default
    • None
    • 7.14.0
    • engine
    • None

      Environment (Required on creation):

      Camunda 7.14.0 (Any Camunda 7 version - the problem is clearly visible in the source.)

      Description (Required on creation; please attach any relevant screenshots, stacktraces, log files, etc. to the ticket):

      The DiagramLayout object handling is not finished:

      org.camunda.bpm.engine.repository.DiagramEdge and org.camunda.bpm.engine.repository.DiagramEdgeWaypoint classes are exists but never instantiated.

      org.camunda.bpm.engine.repository.DiagramNode is fine.

      Steps to reproduce (Required on creation):

      (Create an engine, deploy a process, acquire the id)

      DiagramLayout layout = engine.getRepositoryService().getProcessDiagramLayout(processDefinitionId);

          for (DiagramElement element : layout.getElements().values()) {
            if (element.isNode())

      {         System.out.println("    - node: " + element );       }

            if (element.isEdge())

      {         System.out.println("    - edge: " + element );       }

          }

      Observed Behavior (Required on creation):

      DiagramEdges never returned by getElements().

      Expected behavior (Required on creation):

      DiagramEdges are returned from getElements() along with Nodes.

      Also expected:

      DiagramEdgeWaypoints accessible from DiagramEdges.

      Outward DiagramEdges accessible from DiagramNodes, and/or related DiagramNodes accessible from DiagramEdges.

      Root Cause (Required on prioritization):

      The implementation of the diagram parsing algorithm not finished correctly:

      The org.camunda.bpm.engine.impl.bpmn.diagram.ProcessDiagramLayoutFactory.getBpmnProcessDiagramLayout(Document, InputStream) method focusing on element bounds only, not the actual bean representation.

      Solution Ideas (Optional):

      Please finish the algorithm with the instantiation of the Edge diagram elements:

      org.camunda.bpm.engine.impl.bpmn.diagram.ProcessDiagramLayoutFactory.getBpmnProcessDiagramLayout(Document, InputStream)

      It will be needed to complete the DagramEdge with the DagramEdgeWaypoints accessor  and the DagramNode class with the outward DagramEdge list accessor, and/or the DagramEdge class with the related DagramNodes accessor.

      DiagramNodes.getEdges() is preferred with outward Edges, because DiagramLayout.getNodes() are already exists, and this way the graph would be walkable.

      Hints (optional):

      The bound computing algorithm can be simply expanded with the Egde instantiation.

        This is the controller panel for Smart Panels app

              daniel.kelemen Daniel Kelemen
              madacsg MADÁCS, Gábor
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: