Skip to content

ST6RI-926 Extract SysML logic into standalone runtime modules#754

Draft
AxelRICHARD wants to merge 1 commit into
masterfrom
ST6RI-926
Draft

ST6RI-926 Extract SysML logic into standalone runtime modules#754
AxelRICHARD wants to merge 1 commit into
masterfrom
ST6RI-926

Conversation

@AxelRICHARD
Copy link
Copy Markdown
Contributor

@AxelRICHARD AxelRICHARD commented May 13, 2026

Summary

This commit extracts model-independent SysML runtime logic from org.omg.sysml into new standalone modules, org.omg.sysml.logic and org.omg.sysml.logic.bundle, and updates dependent projects to consume that logic through explicit bundle and Maven dependencies.

The change also introduces a standalone bootstrap for EMF delegate registration and library resolution, so core SysML logic can run outside Eclipse/Xtext startup, and adds plain-EMF regression tests for that standalone path.

Language Features

  1. Standalone runtime logic extraction.
    The model-independent SysML runtime layer has been split out of org.omg.sysml into a dedicated org.omg.sysml.logic module. This includes:
    • invocation delegates
    • setting delegates
    • adapters
    • expression evaluators
    • library function infrastructure
    • shared runtime utilities
  2. Namespace resolution delegates hardened.
    The extracted runtime now carries the delegate implementations for Namespace::resolve, resolveLocal, resolveVisible, and resolveGlobal, with runtime behavior aligned to the intended standalone delegation flow.
  3. Standalone delegate bootstrap.
    A new SysMLLogicStandaloneSetup class registers the SysML derived-property setting delegates and invocation delegates directly with EMF, allowing runtime use without requiring the Xtext runtime modules to be initialized first.

Model Libraries

  1. Standalone library resolution support.
    The commit introduces SysMLLibraryUtil and IModelLibraryProvider as runtime-facing abstractions for library lookup, together with a standalone ResourceSetModelLibraryProvider implementation that resolves library elements from the EMF ResourceSet.
  2. Runtime-module provider wiring.
    KerML and SysML Xtext runtime modules and XMI runtime modules are updated to install the provider lookup used by the shared library utility, so both Eclipse/Xtext and standalone EMF runtimes rely on the same library resolution entry point.

Backward Incompatibilities

  1. Package/module relocation for runtime logic.
    Code that previously referenced runtime logic classes from org.omg.sysml must now resolve them from org.omg.sysml.logic or from the exported org.omg.sysml.logic.bundle plugin.
  2. Removed legacy utility entry points from org.omg.sysml.
    The following legacy classes/interfaces are deleted from the old location and replaced by logic-module equivalents:
    • SysMLLibraryUtil
    • IModelLibraryProvider
    • ISysMLScope
    • SysMLScopeUtil
  3. Bundle wiring changes.
    Downstream Eclipse plugins now depend explicitly on org.omg.sysml.logic.bundle, and Maven builds now include the new org.omg.sysml.logic module in the reactor.

Technical Updates

  1. New modules.
    Added:
    • org.omg.sysml.logic
    • org.omg.sysml.logic.bundle
  2. Large-scale source relocation.
    Moved the SysML runtime implementation out of org.omg.sysml into org.omg.sysml.logic, including:
    • org.omg.sysml.adapter.*
    • org.omg.sysml.delegate.invocation.*
    • org.omg.sysml.delegate.setting.*
    • org.omg.sysml.expressions.*
    • org.omg.sysml.util.*
  3. Consumer rewiring.
    Updated KerML/SysML Xtext, execution, interactive, and test modules to import and require the extracted logic module/bundle instead of relying on the previous monolithic placement.
  4. Standalone regression coverage.
    Added plain-EMF tests validating:
    • standalone setup registration
    • library lookup without Xtext bootstrap
    • namespace resolution delegate behavior in the extracted runtime
  5. Build and packaging updates.
    Updated:
    • Maven reactor structure
    • Eclipse bundle manifests
    • feature inclusion wiring
    • classpath/build metadata for projects that now depend on the logic bundle

Split model-independent SysML logic out of org.omg.sysml into the new
org.omg.sysml.logic and org.omg.sysml.logic.bundle modules, move the
delegate/adapter/expression utility code there, and update bundle/build
wiring to use explicit logic dependencies.

Add standalone bootstrap support for library resolution and EMF delegate
registration without requiring Eclipse/Xtext startup, together with
plain-EMF regression coverage and supporting Javadoc updates.

Signed-off-by: Axel RICHARD <axel.richard@obeo.fr>
@AxelRICHARD AxelRICHARD added the enhancement New feature or request label May 13, 2026
@seidewitz seidewitz marked this pull request as draft May 13, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants