ST6RI-926 org.omg.sysml.logic module#754
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>
|
@AxelRICHARD |
|
- Added Junit test in DerivedPropertyAndOperationTest.java. - Current implementation passes.
|
I have added the test method |
| return null; | ||
| } | ||
|
|
||
| String[] segments = name.split("::"); |
There was a problem hiding this comment.
Even though the qualified names expected here are currently limited, you should still use ElementUtil::parseQualifiedName, for consistency and to ensure that, at lease, single-quoted operator names are handled correctly.
| * the configured model library path or the conventional {@code sysml.library} | ||
| * folder name in the URI. | ||
| */ | ||
| private boolean isLibraryResource(Resource resource) { |
There was a problem hiding this comment.
There is also a isModelLibrary method in KerMLValidation.xtext. Please check that these methods are consistent. Ideally, there should be one method (probably in SysMLLibraryUtil) that is used in both places.
| * | ||
| * This program is free software: you can redistribute it and/or modify | ||
| * it under the terms of the GNU Lesser General Public License as published by | ||
| * the Free Software Foundation, either version 3 of the License, or |
| * | ||
| * This program is free software: you can redistribute it and/or modify | ||
| * it under the terms of the GNU Lesser General Public License as published by | ||
| * the Free Software Foundation, either version 3 of the License, or |
| * | ||
| * This program is free software: you can redistribute it and/or modify | ||
| * it under the terms of the GNU Lesser General Public License as published by | ||
| * the Free Software Foundation, either version 3 of the License, or |
| * | ||
| * This program is free software: you can redistribute it and/or modify | ||
| * it under the terms of the GNU Lesser General Public License as published by | ||
| * the Free Software Foundation, either version 3 of the License, or |
Summary
This PR extracts model-independent SysML runtime logic from
org.omg.sysmlinto new standalone modules,org.omg.sysml.logicandorg.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.sysmlinto a dedicatedorg.omg.sysml.logicmodule. This includes:The extracted runtime now carries the delegate implementations for
Namespace::resolve,resolveLocal,resolveVisible, andresolveGlobal, with runtime behavior aligned to the intended standalone delegation flow.A new
SysMLLogicStandaloneSetupclass 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
SysMLLibraryUtilandIModelLibraryProvideras runtime-facing abstractions for library lookup, together with a standalone ResourceSetModelLibraryProviderimplementation that resolves library elements from the EMFResourceSet.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.sysmlmust now resolve them fromorg.omg.sysml.logicor from the exportedorg.omg.sysml.logic.bundleplugin.org.omg.sysml.The following legacy classes/interfaces are deleted from the old location and replaced by logic-module equivalents:
SysMLLibraryUtilIModelLibraryProviderISysMLScopeSysMLScopeUtilDownstream Eclipse plugins now depend explicitly on
org.omg.sysml.logic.bundle, and Maven builds now include the neworg.omg.sysml.logicmodule in the reactor.Technical Updates
Added:
org.omg.sysml.logicorg.omg.sysml.logic.bundleMoved the SysML runtime implementation out of
org.omg.sysmlintoorg.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.*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: