ST6RI-926 Extract SysML logic into standalone runtime modules#754
Draft
AxelRICHARD wants to merge 1 commit into
Draft
ST6RI-926 Extract SysML logic into standalone runtime modules#754AxelRICHARD wants to merge 1 commit into
AxelRICHARD wants to merge 1 commit into
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
The model-independent SysML runtime layer has been split out of org.omg.sysml into a dedicated org.omg.sysml.logic module. This includes:
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.
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
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.
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
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.
The following legacy classes/interfaces are deleted from the old location and replaced by logic-module equivalents:
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
Added:
Moved the SysML runtime implementation out of org.omg.sysml into org.omg.sysml.logic, including:
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.
Added plain-EMF tests validating:
Updated: