Migration Guide

This section documents changes in XGEE that require manual adjustments to existing projects.

Single-Value Feature Query Support

XGEE now fully supports single-value features in all queryStr usages. Previously, XGEE primarily supported multi-value feature results, so single-value features were often wrapped with &TRM((=%),[]) to make the result behave like a list.

Recommended Cleanup: The old workaround still works, but it is no longer necessary. If you find &TRM((=%),[]) in a queryStr that only wraps a single-value feature, remove it to keep the query simpler.

Example Migration:

Old queryStr:

/shape&TRM((=%),[])

New queryStr:

/shape

isResizable Introduction

The attribute isResizable of Vertex is actively used since XGEE 0.3.26. To ensure backwards compatibility, the default value of isResizable is true. This means that if you have not explicitly set isResizable to false in your editor model, your vertices will now be resizable by default.

Action Required: If you want to maintain the previous behavior where vertices were not resizable (e.g ports), you need to explicitly set isResizable=”false” for each Vertex.

ShapeFromResource Attributes Cleanup

The attributes sizeX and sizeY have been removed from the ShapeFromResource class in the Editor Model (editorModel.ecore). These attributes were obsolete and ignored by the XGEE runtime, as the size is controlled by the containing object (e.g., Vertex).

Action Required: You must update your .editorModel files to remove these attributes from any ShapeFromResource elements. Failure to do so may prevent the model from loading.

Example Migration:

Old code (Allocations.editorModel):

<shape xsi:type="xgeeDisplayStyles:ShapeFromResource" sizeX="20.0" sizeY="20.0" filepath="shapes/io.svg"/>

New code:

<shape xsi:type="xgeeDisplayStyles:ShapeFromResource" filepath="shapes/io.svg"/>

Note: The effective size of the element continues to be determined by the sizeX and sizeY attributes of the parent Vertex, SubVertex, or Container.

DropReception.cmd Deprecation

The cmd attribute on DropReception has been deprecated. XGEE now executes drop commands through the compoundCmd containment reference and its contained cmds entries. The legacy cmd attribute is ignored by the runtime and will be removed from the Editor Model (editorModel.ecore) in the future.

Runtime Warning: XGEE will now issue a console warning if it detects a non-empty cmd attribute on a DropReception.

Action Required: Update your .editorModel files to remove the cmd attribute from DropReception definitions and move the command into compoundCmd / cmds.

Example Migration:

Old code:

<interactions xsi:type="xgeeInteractions:DropReception" cmd="ADD #DROPTARGET children #DROPITEM"/>

New code:

<interactions xsi:type="xgeeInteractions:DropReception">
   <compoundCmd>
      <cmds cmdStr="ADD #DROPTARGET children #DROPITEM"/>
   </compoundCmd>
</interactions>

ReferringObject Attributes Deprecation

The refersTo containment reference and the attributes nsURI and className on ReferringObject (inherited by Vertex, Edge, SubVertex) have been deprecated. These fields are ignored by the XGEE runtime, which relies on the Editor configuration and queryStr for type resolution.

Runtime Warning: XGEE will now issue a console warning if it detects that refersTo (with content), nsURI, or className are set in your editor model.

Action Required: Update your .editorModel files to remove the <refersTo> block and the nsURI / className attributes from Vertex and Edge definitions. The metamodel constraint has been relaxed (lowerBound="0") to facilitate this removal.

Example Migration:

Old code:

<displayableObjects xsi:type="xgeeDisplayObjects:Vertex" name="Task" nsURI="http://oaam.de/oaam/model/functions" className="Task">
   <refersTo refNsURI="http://oaam.de/oaam/model/functions" refClassname="Task"/>
   <!-- ... -->
</displayableObjects>

New code:

<displayableObjects xsi:type="xgeeDisplayObjects:Vertex" name="Task">
   <!-- refersTo, nsURI, and className removed -->
   <!-- ... -->
</displayableObjects>