diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 66a0964f5..9030d01ce 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -24,6 +24,7 @@ - https://github.com/eclipse-syson/syson/issues/893[#893] [explorer] Fix _Expand All_ tool in SysON _Explorer_ view - https://github.com/eclipse-syson/syson/issues/1398[#1398] [explorer] Fix an issue where a d'n'd of an `Element` in a diagram exposed the `Element` twice in the `ViewUsage` associated to the diagram. +- https://github.com/eclipse-syson/syson/issues/1411[#1411] [syson] Fix an issue where model and diagrams referencing standard libraries elements might not correctly loaded. === Improvements diff --git a/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/migration/StandardLibrariesElementsDiagramMigrationParticipant.java b/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/migration/StandardLibrariesElementsDiagramMigrationParticipant.java new file mode 100644 index 000000000..e32b96fe9 --- /dev/null +++ b/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/migration/StandardLibrariesElementsDiagramMigrationParticipant.java @@ -0,0 +1,78 @@ +/******************************************************************************* + * Copyright (c) 2025 Obeo. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.syson.application.migration; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.node.TextNode; + +import java.util.Objects; + +import org.eclipse.sirius.components.collaborative.representations.migration.IRepresentationMigrationParticipant; +import org.eclipse.sirius.components.core.api.IEditingContext; +import org.eclipse.sirius.components.core.api.IObjectSearchService; +import org.eclipse.syson.sysml.Element; +import org.eclipse.syson.sysml.util.ElementUtil; +import org.springframework.stereotype.Service; + +/** + * Diagram migration participant used to migrate SysON diagrams with diagram elements having "targetObjectId" pointing + * to standard libraries Elements previous to 2025.8.0. + * + * Let's say we have a Start node pointing to the Actions::Action::start Element from the standard library. This node + * had for "targetObjectId" the "id" of the object instead of its "elementId". But the "id" property changes each time + * the standard libraries are updated. So the "targetObjectId" reference was pointing to nothing after the update. With + * this migration participant, the "targetObjectId" now all point to the "elementId" property which is stable + * before/after standard libraries updates. + * + * This migration participant has been added at the same time than the update of SysONIdentityService which allows to + * get the "elementId" instead of the "id" when it is a library Element. + * + * @author arichard + */ +@Service +public class StandardLibrariesElementsDiagramMigrationParticipant implements IRepresentationMigrationParticipant { + + private static final String PARTICIPANT_VERSION = "2025.8.0-202506301700"; + + private final IObjectSearchService objectSearchService; + + public StandardLibrariesElementsDiagramMigrationParticipant(IObjectSearchService objectSearchService) { + this.objectSearchService = Objects.requireNonNull(objectSearchService); + } + + @Override + public String getVersion() { + return PARTICIPANT_VERSION; + } + + @Override + public String getKind() { + return "siriusComponents://representation?type=Diagram"; + } + + @Override + public void replaceJsonNode(IEditingContext editingContext, ObjectNode root, String currentAttribute, JsonNode currentValue) { + if (currentAttribute.equals("targetObjectId") && currentValue instanceof TextNode textNode) { + var optElement = this.objectSearchService.getObject(editingContext, textNode.asText()) + .filter(Element.class::isInstance) + .map(Element.class::cast); + if (optElement.isPresent()) { + var element = optElement.get(); + if (ElementUtil.isStandardLibraryResource(element.eResource())) { + root.put("targetObjectId", element.getElementId()); + } + } + } + } +} diff --git a/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/migration/StandardLibrariesElementsReferencesMigrationParticipant.java b/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/migration/StandardLibrariesElementsReferencesMigrationParticipant.java new file mode 100644 index 000000000..06b20d9a2 --- /dev/null +++ b/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/migration/StandardLibrariesElementsReferencesMigrationParticipant.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * Copyright (c) 2025 Obeo. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.syson.application.migration; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.sirius.components.emf.migration.api.IMigrationParticipant; +import org.eclipse.sirius.emfjson.resource.JsonResource; +import org.eclipse.syson.sysml.Element; +import org.eclipse.syson.sysml.util.ElementUtil; +import org.springframework.stereotype.Service; + +/** + * Diagram migration participant used to migrate SysON diagrams with diagram elements having "targetObjectId" pointing + * to standard libraries Elements previous to 2025.8.0. + * + * Let's say we have a FeatureTyping pointing to the SclaraValues::String Element from the standard library. This + * element had for "targetObjectId" the "id" of the object instead of its "elementId". But the "id" property changes + * each time the standard libraries are updated. So the "targetObjectId" reference was pointing to nothing after the + * update. With this migration participant, the "targetObjectId" now all point to the "elementId" property which is + * stable before/after standard libraries updates. + * + * This migration participant has been added at the same time than the update of SysONIdentityService which allows to + * get the "elementId" instead of the "id" when it is a library Element. + * + * @author arichard + */ +@Service +public class StandardLibrariesElementsReferencesMigrationParticipant implements IMigrationParticipant { + + private static final String PARTICIPANT_VERSION = "2025.8.0-202506301600"; + + @Override + public String getVersion() { + return PARTICIPANT_VERSION; + } + + @Override + public String getEObjectUri(JsonResource resource, EObject eObject, EReference eReference, String uri) { + if (!eReference.isContainment() && (uri.contains(ElementUtil.SYSML_LIBRARY_SCHEME) || uri.contains(ElementUtil.KERML_LIBRARY_SCHEME))) { + ResourceSet resourceSet = resource.getResourceSet(); + String uriWithoutPrefixedType = uri; + if (uri.startsWith("sysml:")) { + if (uri.contains(ElementUtil.SYSML_LIBRARY_SCHEME)) { + int indexOf = uri.indexOf(ElementUtil.SYSML_LIBRARY_SCHEME); + uriWithoutPrefixedType = uri.substring(indexOf); + } else if (uri.contains(ElementUtil.KERML_LIBRARY_SCHEME)) { + int indexOf = uri.indexOf(ElementUtil.KERML_LIBRARY_SCHEME); + uriWithoutPrefixedType = uri.substring(indexOf); + } + } + URI uriAsURI = URI.createURI(uriWithoutPrefixedType); + EObject referencedEObject = resourceSet.getEObject(uriAsURI, false); + if (referencedEObject instanceof Element element) { + int uriFragmentIndex = uri.indexOf('#'); + var prefix = uri.substring(0, uriFragmentIndex + 1); + return prefix + element.getElementId(); + } + } + return uri; + } +} diff --git a/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/services/SysONIdentityService.java b/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/services/SysONIdentityService.java index 7b001a4e9..5b4143d93 100644 --- a/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/services/SysONIdentityService.java +++ b/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/services/SysONIdentityService.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024 Obeo. + * Copyright (c) 2024, 2025 Obeo. * This program and the accompanying materials * are made available under the terms of the Eclipse Public License v2.0 * which accompanies this distribution, and is available at @@ -17,6 +17,7 @@ import org.eclipse.sirius.components.core.api.IDefaultIdentityService; import org.eclipse.sirius.components.core.api.IIdentityServiceDelegate; import org.eclipse.sirius.components.emf.services.IDAdapter; +import org.eclipse.syson.sysml.Element; import org.eclipse.syson.sysml.Relationship; import org.eclipse.syson.sysml.util.ElementUtil; import org.springframework.stereotype.Service; @@ -39,12 +40,17 @@ public SysONIdentityService(IDefaultIdentityService defaultIdentityService) { @Override public boolean canHandle(Object object) { - return object instanceof Relationship; + return object instanceof Element; } @Override public String getId(Object object) { - var id = this.defaultIdentityService.getId(object); + String id = null; + if (object instanceof Element element && ElementUtil.isFromStandardLibrary(element)) { + id = element.getElementId(); + } else { + id = this.defaultIdentityService.getId(object); + } if (id == null && object instanceof Relationship relationship && relationship.isIsImplied()) { var idAdapter = new IDAdapter(ElementUtil.generateUUID(relationship)); relationship.eAdapters().add(idAdapter); diff --git a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVAnnotatingElementTests.java b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVAnnotatingElementTests.java index 5dc10ab8f..0978b4afc 100644 --- a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVAnnotatingElementTests.java +++ b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVAnnotatingElementTests.java @@ -159,9 +159,10 @@ public void tearDown() { } } - @DisplayName("Given a Part Definition, when using the 'New TextualRepresentation' tool, then a new node should be created with an edge connecting it to the PartDefinition") + @DisplayName("GIVEN a Part Definition, WHEN using the 'New TextualRepresentation' tool, THEN a new node should be created with an edge connecting it to the PartDefinition") @Test - @Sql(scripts = { GeneralViewWithTopNodesTestProjectData.SCRIPT_PATH }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = { GeneralViewWithTopNodesTestProjectData.SCRIPT_PATH }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, + config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) @Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) public void createTextualRepresentation() { String parentLabel = "part"; @@ -196,9 +197,10 @@ public void createTextualRepresentation() { this.semanticCheckerService.checkEditingContext(semanticChecker, this.verifier); } - @DisplayName("Given a TextualRepresentation, when using the 'Direct Edit' tool, then the body of the textual representation should be updated") + @DisplayName("GIVEN a TextualRepresentation, WHEN using the 'Direct Edit' tool, THEN the body of the textual representation should be updated") @Test - @Sql(scripts = { GeneralViewWithTopNodesTestProjectData.SCRIPT_PATH }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = { GeneralViewWithTopNodesTestProjectData.SCRIPT_PATH }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, + config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) @Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) public void directEditTextualRepresentation() { this.directEditInitialLabelTester.checkDirectEditInitialLabelOnNode(this.verifier, this.diagram, GeneralViewWithTopNodesTestProjectData.GraphicalIds.PART_DEFINITION_TEXTUAL_REP_ID, diff --git a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVBorderNodePortCreationTests.java b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVBorderNodePortCreationTests.java index 84d8b3569..ef80bbcc9 100644 --- a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVBorderNodePortCreationTests.java +++ b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVBorderNodePortCreationTests.java @@ -114,8 +114,9 @@ public void tearDown() { } } - @DisplayName("Given a SysML Project, when New Port tool is requested on a PartUsage, then a new PortUsage border node is created") - @Sql(scripts = { GeneralViewWithTopNodesTestProjectData.SCRIPT_PATH }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @DisplayName("GIVEN a SysML Project, WHEN New Port tool is requested on a PartUsage, THEN a new PortUsage border node is created") + @Sql(scripts = { GeneralViewWithTopNodesTestProjectData.SCRIPT_PATH }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, + config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) @Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) @Test public void testApplyTool() { diff --git a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/data/GeneralViewActionTransitionUsagesProjectData.java b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/data/GeneralViewActionTransitionUsagesProjectData.java index 35e82a1d7..2313ba062 100644 --- a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/data/GeneralViewActionTransitionUsagesProjectData.java +++ b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/data/GeneralViewActionTransitionUsagesProjectData.java @@ -63,8 +63,8 @@ public static final class SemanticIds { public static final String STOA4_ID = "2889857b-02e6-4f55-9ef3-1d2bfe404098"; - public static final String START_ACTION_USAGE_ID = "03262155-734a-473f-9535-262925cd5b8b"; + public static final String START_ACTION_USAGE_ID = "9a0d2905-0f9c-5bb4-af74-9780d6db1817"; - public static final String DONE_ACTION_USAGE_ID = "6f9d8315-c293-4910-9688-668196eb8ec5"; + public static final String DONE_ACTION_USAGE_ID = "0cdc3cd3-b06c-5c32-beda-0cf4ba164a64"; } } diff --git a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/migration/StandardLibrariesIdsMigrationParticipantTest.java b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/migration/StandardLibrariesIdsMigrationParticipantTest.java new file mode 100644 index 000000000..18ee680bc --- /dev/null +++ b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/migration/StandardLibrariesIdsMigrationParticipantTest.java @@ -0,0 +1,152 @@ +/******************************************************************************* + * Copyright (c) 2025 Obeo. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.syson.application.migration; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import com.google.common.base.Objects; + +import java.time.Duration; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicReference; + +import org.eclipse.sirius.components.collaborative.diagrams.dto.DiagramEventInput; +import org.eclipse.sirius.components.collaborative.diagrams.dto.DiagramRefreshedEventPayload; +import org.eclipse.sirius.components.core.api.IEditingContextSearchService; +import org.eclipse.sirius.components.core.api.IObjectSearchService; +import org.eclipse.sirius.components.diagrams.Diagram; +import org.eclipse.sirius.components.diagrams.Node; +import org.eclipse.sirius.web.tests.services.api.IGivenCommittedTransaction; +import org.eclipse.sirius.web.tests.services.api.IGivenInitialServerState; +import org.eclipse.syson.AbstractIntegrationTests; +import org.eclipse.syson.services.diagrams.api.IGivenDiagramReference; +import org.eclipse.syson.services.diagrams.api.IGivenDiagramSubscription; +import org.eclipse.syson.sysml.FeatureTyping; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.jdbc.SqlConfig; +import org.springframework.transaction.annotation.Transactional; + +import reactor.test.StepVerifier; +import reactor.test.StepVerifier.Step; + +/** + * Tests for all migration participant related to Standard Libraries elements prior to 2025.8.0. + * + * @author arichard + */ +@Transactional +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class StandardLibrariesIdsMigrationParticipantTest extends AbstractIntegrationTests { + + private static final String EDITING_CONTEXT_ID = "178c5f84-0a74-4674-a7ca-6f6891a0f400"; + + private static final String DIAGRAM_ID = "d7ea5ff7-3da1-41ce-b082-b58e4786069b"; + + private static final String ACTIONS_ACTION_START_ELEMENT_ID = "9a0d2905-0f9c-5bb4-af74-9780d6db1817"; + + private static final String SCALAR_VALUES_STRING_ELEMENT_ID = "76028d3d-69a4-5e12-9002-ce403e0244bd"; + + private static final String ATTRIBUTE_A1_FEATURE_TYPING_ELEMENT_ID = "b2850b04-3f1f-4799-8b44-f0706f22628b"; + + @Autowired + private IGivenCommittedTransaction givenCommittedTransaction; + + @Autowired + private IGivenInitialServerState givenInitialServerState; + + @Autowired + private IGivenDiagramReference givenDiagram; + + @Autowired + private IGivenDiagramSubscription givenDiagramSubscription; + + @Autowired + private IEditingContextSearchService editingContextSearchService; + + @Autowired + private IObjectSearchService objectSearchService; + + private Step verifier; + + private AtomicReference diagram; + + @BeforeEach + public void setUp() { + this.givenInitialServerState.initialize(); + var diagramEventInput = new DiagramEventInput(UUID.randomUUID(), EDITING_CONTEXT_ID, DIAGRAM_ID); + var flux = this.givenDiagramSubscription.subscribe(diagramEventInput); + this.verifier = StepVerifier.create(flux); + this.diagram = this.givenDiagram.getDiagram(this.verifier); + } + + @AfterEach + public void tearDown() { + if (this.verifier != null) { + this.verifier.thenCancel() + .verify(Duration.ofSeconds(10)); + } + } + + @Test + @DisplayName("GIVEN a project with a diagram containg a reference to a standard library element, WHEN migrated, THEN the reference points to 'elementId' instead of 'id'") + @Sql(scripts = { "/scripts/database-content/StandardLibrariesElementsIdsMigrationParticipant-Test.sql" }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, + config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) + @Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) + public void diagramMigrationParticpantTest() { + this.givenCommittedTransaction.commit(); + var optionalEditingContext = this.editingContextSearchService.findById(EDITING_CONTEXT_ID.toString()); + assertThat(optionalEditingContext).isPresent(); + + Runnable diagramChecker = () -> { + var nodes = this.diagram.get().getNodes(); + assertTrue(nodes.size() == 1); + var optActionFlowCompartment = nodes.get(0).getChildNodes().stream().filter(n -> Objects.equal("action flow", n.getInsideLabel().getText())).findFirst(); + assertTrue(optActionFlowCompartment.isPresent()); + + List actionFlowChildNodes = optActionFlowCompartment.get().getChildNodes(); + assertTrue(actionFlowChildNodes.size() == 1); + + var startNodeTargetObjectId = actionFlowChildNodes.get(0).getTargetObjectId(); + assertEquals(ACTIONS_ACTION_START_ELEMENT_ID, startNodeTargetObjectId); + + }; + this.verifier.then(diagramChecker); + } + + @Test + @DisplayName("GIVEN a project with a model containg a reference to a standard library element, WHEN migrated, THEN the reference points to 'elementId' instead of 'id'") + @Sql(scripts = { "/scripts/database-content/StandardLibrariesElementsIdsMigrationParticipant-Test.sql" }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, + config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) + @Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) + public void semanticDataMigrationParticpantTest() { + this.givenCommittedTransaction.commit(); + var optionalEditingContext = this.editingContextSearchService.findById(EDITING_CONTEXT_ID.toString()); + assertThat(optionalEditingContext).isPresent(); + + var optFeatureTyping = this.objectSearchService.getObject(optionalEditingContext.get(), ATTRIBUTE_A1_FEATURE_TYPING_ELEMENT_ID) + .filter(FeatureTyping.class::isInstance) + .map(FeatureTyping.class::cast); + assertTrue(optFeatureTyping.isPresent()); + var type = optFeatureTyping.get().getType(); + assertEquals(SCALAR_VALUES_STRING_ELEMENT_ID, type.getElementId()); + } +} diff --git a/backend/application/syson-application/src/test/resources/scripts/database-content/StandardLibrariesElementsIdsMigrationParticipant-Test.sql b/backend/application/syson-application/src/test/resources/scripts/database-content/StandardLibrariesElementsIdsMigrationParticipant-Test.sql new file mode 100644 index 000000000..4ca77f571 --- /dev/null +++ b/backend/application/syson-application/src/test/resources/scripts/database-content/StandardLibrariesElementsIdsMigrationParticipant-Test.sql @@ -0,0 +1,100 @@ +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 17.5 (Debian 17.5-1.pgdg120+1) +-- Dumped by pg_dump version 17.5 + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +-- +-- Data for Name: semantic_data; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + +INSERT INTO public.semantic_data (id, created_on, last_modified_on) VALUES ('178c5f84-0a74-4674-a7ca-6f6891a0f400', '2025-06-26 07:42:50.638954+00', '2025-06-26 08:03:24.667439+00'); + + +-- +-- Data for Name: document; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + +INSERT INTO public.document (id, semantic_data_id, name, content, created_on, last_modified_on) VALUES ('a9c5bde8-4564-46b5-9b78-8e2e57381c85', '178c5f84-0a74-4674-a7ca-6f6891a0f400', 'SysMLv2.sysml', '{"json":{"version":"1.0","encoding":"utf-8"},"ns":{"sysml":"http://www.eclipse.org/syson/sysml"},"migration":{"lastMigrationPerformed":"none","migrationVersion":"2025.6.0-202506110000"},"content":[{"id":"3f891ac9-b702-4e7f-ba4a-99fc1d18e3fc","eClass":"sysml:Namespace","data":{"elementId":"c945c5ed-5a29-429a-8be7-d98286295a8c","ownedRelationship":[{"id":"d909dd38-3b24-4b1b-a353-b511746b0929","eClass":"sysml:OwningMembership","data":{"elementId":"63520ecf-d791-4faa-bc50-8f68b1541643","ownedRelatedElement":[{"id":"ace424aa-07f7-4133-b070-b23fdcb7718e","eClass":"sysml:Package","data":{"declaredName":"Package 1","elementId":"c76f9ab9-91ba-4f57-960d-ebd25207230f","ownedRelationship":[{"id":"3b8e8042-4d5e-4c8b-88d1-8b3a811de2e3","eClass":"sysml:NamespaceImport","data":{"elementId":"aad0ad18-cfc7-4bf9-8805-baa963e0471c","importedNamespace":"sysml:LibraryPackage kermllibrary:///b2c6dd37-2084-3ce4-9ce2-580fdf30629c#0d453fdf-11c7-48a4-90ab-1c9bbd187157"}},{"id":"c879d349-ec20-47aa-90bb-e3b4ea694c89","eClass":"sysml:OwningMembership","data":{"elementId":"76ca3b72-8689-4aea-aef1-af7e4701ae45","ownedRelatedElement":[{"id":"9eae4184-d564-467c-974a-897919453d3a","eClass":"sysml:AttributeUsage","data":{"declaredName":"a1","elementId":"8951a74c-19a5-4f6e-8c70-2dbcabcc0ffd","ownedRelationship":[{"id":"bbd7cefd-e7f5-42c9-9cde-88df6439941a","eClass":"sysml:FeatureTyping","data":{"elementId":"b2850b04-3f1f-4799-8b44-f0706f22628b","type":"sysml:DataType kermllibrary:///b2c6dd37-2084-3ce4-9ce2-580fdf30629c#b352ded6-38ba-4e7e-ae55-9299cb0cc6d0","typedFeature":"9eae4184-d564-467c-974a-897919453d3a"}}],"isComposite":true}}]}},{"id":"32a4f296-6974-4a00-b9a3-a5257eff40a3","eClass":"sysml:OwningMembership","data":{"elementId":"704fc315-1cdb-4328-ac9d-493dee6b8bbb","ownedRelatedElement":[{"id":"1134e89a-f21b-4d91-a05a-5fec050ae5d2","eClass":"sysml:ViewUsage","data":{"declaredName":"General View","elementId":"4ed376bb-ccf0-4f0b-8bcf-3f4b84d52437","ownedRelationship":[{"id":"df73c69d-d437-4a23-9ccb-be396391f30c","eClass":"sysml:FeatureTyping","data":{"elementId":"26af8e7e-4116-46ef-b076-1257e7a9c34d","type":"sysml:ViewDefinition sysmllibrary:///faf517ae-dbcd-30a4-b3b9-3d9cb3bbf5c1#7098b764-d891-48f5-b928-4ba41cbe837e","typedFeature":"1134e89a-f21b-4d91-a05a-5fec050ae5d2"}},{"id":"a819a8c6-d327-43bd-a103-76dec36b212d","eClass":"sysml:MembershipExpose","data":{"elementId":"45014304-771c-41cc-a5a7-1193e17181c3","importedMembership":"4433cc7c-46d4-4417-8a94-7316b4c1a599"}},{"id":"ae079856-1415-4401-ada4-6efda5fe732c","eClass":"sysml:MembershipExpose","data":{"elementId":"f044e3a7-942b-473b-a234-8b47ec42afb0","importedMembership":"sysml:FeatureMembership sysmllibrary:///ea54fd17-52d6-3366-82aa-494d0678e42d#8d0d170e-4384-444a-944e-cef09db42e4f"}}]}}]}},{"id":"4433cc7c-46d4-4417-8a94-7316b4c1a599","eClass":"sysml:OwningMembership","data":{"elementId":"3e10cf95-ec57-4292-b0da-d041bbbd229c","ownedRelatedElement":[{"id":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","eClass":"sysml:PartUsage","data":{"declaredName":"part1","elementId":"1d1914c8-a0dd-449a-9040-3e279c8785ac","isComposite":true}}]}}]}}]}}]}}]}', '2025-06-26 08:03:24.667422+00', '2025-06-26 08:03:24.667422+00'); + + +-- +-- Data for Name: image; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + + + +-- +-- Data for Name: library; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + + + +-- +-- Data for Name: project; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + +INSERT INTO public.project (id, name, created_on, last_modified_on) VALUES ('d2a75b65-d984-4728-9661-1c21e222c9e8', 'SysMLv2', '2025-06-26 07:42:50.605294+00', '2025-06-26 07:42:50.605294+00'); + + +-- +-- Data for Name: nature; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + + + +-- +-- Data for Name: project_image; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + + + +-- +-- Data for Name: project_semantic_data; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + +INSERT INTO public.project_semantic_data (id, project_id, semantic_data_id, name, created_on, last_modified_on) VALUES ('c7d22c39-0873-4b7a-b5ed-a5ddbf803d2f', 'd2a75b65-d984-4728-9661-1c21e222c9e8', '178c5f84-0a74-4674-a7ca-6f6891a0f400', 'main', '2025-06-26 07:42:50.65165+00', '2025-06-26 07:42:50.65165+00'); + + +-- +-- Data for Name: representation_metadata; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + +INSERT INTO public.representation_metadata (id, target_object_id, description_id, label, kind, created_on, last_modified_on, documentation, semantic_data_id) VALUES ('d7ea5ff7-3da1-41ce-b082-b58e4786069b', '1134e89a-f21b-4d91-a05a-5fec050ae5d2', 'siriusComponents://representationDescription?kind=diagramDescription&sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=db495705-e917-319b-af55-a32ad63f4089', 'General View', 'siriusComponents://representation?type=Diagram', '2025-06-26 08:01:47.089921+00', '2025-06-26 08:01:47.089921+00', '', '178c5f84-0a74-4674-a7ca-6f6891a0f400'); + + +-- +-- Data for Name: representation_content; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + +INSERT INTO public.representation_content (id, content, last_migration_performed, migration_version, created_on, last_modified_on) VALUES ('d7ea5ff7-3da1-41ce-b082-b58e4786069b', '{"id":"d7ea5ff7-3da1-41ce-b082-b58e4786069b","kind":"siriusComponents://representation?type=Diagram","targetObjectId":"1134e89a-f21b-4d91-a05a-5fec050ae5d2","descriptionId":"siriusComponents://representationDescription?kind=diagramDescription&sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=db495705-e917-319b-af55-a32ad63f4089","nodes":[{"id":"aaefe088-61fc-3ac1-8be9-46e2b3cadf71","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=bd119f62-45c5-3868-9727-9f954e05e4fa","borderNode":false,"modifiers":[],"state":"Normal","collapsingState":"EXPANDED","insideLabel":{"id":"f446eff7-60f1-3cc7-899e-2b1ed54aa746","text":"«part»\npart1","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":14,"bold":false,"italic":false,"underline":false,"strikeThrough":false,"iconURL":["/icons/full/obj16/PartUsage.svg"],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"IF_CHILDREN","overflowStrategy":"WRAP","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"#ffffff","borderColor":"#000000","borderSize":1,"borderRadius":10,"borderStyle":"Solid","childrenLayoutStrategy":{"areChildNodesDraggable":false,"topGap":0,"bottomGap":0,"growableNodeIds":["siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=30a9de2f-14f9-3de6-b68e-06b79b675555","siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=c47f5c71-1cc7-3f23-8c03-c335c2d13c66"],"kind":"List"}},"borderNodes":[],"childNodes":[{"id":"0bc7df3c-b3c7-37c4-b495-00cb4d43335a","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=c901d8ce-4c57-3ede-8fdb-3c5aa91b67ba","borderNode":false,"modifiers":["Hidden"],"state":"Hidden","collapsingState":"EXPANDED","insideLabel":{"id":"8da70a1e-5b04-3843-8de0-1897f418a2aa","text":"doc","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":12,"bold":false,"italic":true,"underline":false,"strikeThrough":false,"iconURL":[],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"NEVER","overflowStrategy":"NONE","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"transparent","borderColor":"#000000","borderSize":1,"borderRadius":0,"borderStyle":"Solid","childrenLayoutStrategy":{"areChildNodesDraggable":true,"topGap":0,"bottomGap":10,"growableNodeIds":[],"kind":"List"}},"borderNodes":[],"childNodes":[],"defaultWidth":155,"defaultHeight":60,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]},{"id":"89aeeb13-c7c8-32d5-8ae6-b47b39de0f70","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=a1300415-10e4-37bb-87ed-206ec95079f0","borderNode":false,"modifiers":["Hidden"],"state":"Hidden","collapsingState":"EXPANDED","insideLabel":{"id":"91ea7b16-7748-3314-a228-cd7cf6f25aaa","text":"attributes","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":12,"bold":false,"italic":true,"underline":false,"strikeThrough":false,"iconURL":[],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"NEVER","overflowStrategy":"NONE","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"transparent","borderColor":"#000000","borderSize":1,"borderRadius":0,"borderStyle":"Solid","childrenLayoutStrategy":{"areChildNodesDraggable":true,"topGap":0,"bottomGap":10,"growableNodeIds":[],"kind":"List"}},"borderNodes":[],"childNodes":[],"defaultWidth":155,"defaultHeight":60,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]},{"id":"90de453c-0980-3f05-8292-56214a19f2c4","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=cc126737-2324-3253-ae11-37d5b0dee7b9","borderNode":false,"modifiers":["Hidden"],"state":"Hidden","collapsingState":"EXPANDED","insideLabel":{"id":"1629d0c8-f28c-37c1-8f20-0584b5122731","text":"ports","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":12,"bold":false,"italic":true,"underline":false,"strikeThrough":false,"iconURL":[],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"NEVER","overflowStrategy":"NONE","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"transparent","borderColor":"#000000","borderSize":1,"borderRadius":0,"borderStyle":"Solid","childrenLayoutStrategy":{"areChildNodesDraggable":true,"topGap":0,"bottomGap":10,"growableNodeIds":[],"kind":"List"}},"borderNodes":[],"childNodes":[],"defaultWidth":155,"defaultHeight":60,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]},{"id":"ab5d2722-9210-38d1-8ba8-1a556615d1b3","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=f664d1f2-e48d-3f5a-a073-141fc0ddc418","borderNode":false,"modifiers":["Hidden"],"state":"Hidden","collapsingState":"EXPANDED","insideLabel":{"id":"47e50f91-6169-329c-9c08-0ea1855e4a27","text":"actions","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":12,"bold":false,"italic":true,"underline":false,"strikeThrough":false,"iconURL":[],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"NEVER","overflowStrategy":"NONE","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"transparent","borderColor":"#000000","borderSize":1,"borderRadius":0,"borderStyle":"Solid","childrenLayoutStrategy":{"areChildNodesDraggable":true,"topGap":0,"bottomGap":10,"growableNodeIds":[],"kind":"List"}},"borderNodes":[],"childNodes":[],"defaultWidth":155,"defaultHeight":60,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]},{"id":"147714a4-d9b2-319a-89ee-5ff53d6956cc","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=30a9de2f-14f9-3de6-b68e-06b79b675555","borderNode":false,"modifiers":[],"state":"Normal","collapsingState":"EXPANDED","insideLabel":{"id":"c6417ae0-e2f0-32be-b2df-8a894ca33eb3","text":"action flow","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":12,"bold":false,"italic":true,"underline":false,"strikeThrough":false,"iconURL":[],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"NEVER","overflowStrategy":"NONE","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"transparent","borderColor":"#000000","borderSize":1,"borderRadius":0,"borderStyle":"Solid","childrenLayoutStrategy":{"kind":"FreeForm"}},"borderNodes":[],"childNodes":[{"id":"bb40eb46-a55c-31e5-ad7a-518a13493011","type":"node:image","targetObjectId":"03262155-734a-473f-9535-262925cd5b8b","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=ActionUsage","targetObjectLabel":"start","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=596f7e8d-ba35-38d6-937f-011e05b74063","borderNode":false,"modifiers":[],"state":"Normal","collapsingState":"EXPANDED","insideLabel":null,"outsideLabels":[],"style":{"imageURL":"images/start_action.svg","scalingFactor":1,"borderColor":"transparent","borderSize":1,"borderRadius":0,"borderStyle":"Solid","positionDependentRotation":false,"childrenLayoutStrategy":{"kind":"FreeForm"}},"borderNodes":[],"childNodes":[],"defaultWidth":28,"defaultHeight":28,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]}],"defaultWidth":155,"defaultHeight":150,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]},{"id":"1038e3e3-6a5a-3bd5-866f-337cec43aa42","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=c47f5c71-1cc7-3f23-8c03-c335c2d13c66","borderNode":false,"modifiers":["Hidden"],"state":"Hidden","collapsingState":"EXPANDED","insideLabel":{"id":"ea4aa66d-de69-3aa3-a219-38764597af84","text":"state transition","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":12,"bold":false,"italic":true,"underline":false,"strikeThrough":false,"iconURL":[],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"NEVER","overflowStrategy":"NONE","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"transparent","borderColor":"#000000","borderSize":1,"borderRadius":0,"borderStyle":"Solid","childrenLayoutStrategy":{"kind":"FreeForm"}},"borderNodes":[],"childNodes":[],"defaultWidth":155,"defaultHeight":150,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]},{"id":"55162f64-56b3-3d35-a9e2-c15bca6e4c40","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=c97028bb-f0ba-3e9e-97a6-170cb6345d62","borderNode":false,"modifiers":["Hidden"],"state":"Hidden","collapsingState":"EXPANDED","insideLabel":{"id":"919e0806-cfb8-3150-bf48-214b80e1a050","text":"states","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":12,"bold":false,"italic":true,"underline":false,"strikeThrough":false,"iconURL":[],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"NEVER","overflowStrategy":"NONE","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"transparent","borderColor":"#000000","borderSize":1,"borderRadius":0,"borderStyle":"Solid","childrenLayoutStrategy":{"areChildNodesDraggable":true,"topGap":0,"bottomGap":10,"growableNodeIds":[],"kind":"List"}},"borderNodes":[],"childNodes":[],"defaultWidth":155,"defaultHeight":60,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]},{"id":"fbc5cd84-1021-383f-8bc5-07c7e6fb8882","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=a57f3491-bd3e-38c6-bb8b-b0a4b570bd3a","borderNode":false,"modifiers":["Hidden"],"state":"Hidden","collapsingState":"EXPANDED","insideLabel":{"id":"5d5df5f3-ffd3-3905-bdb1-d57737e7e2c9","text":"exhibit states","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":12,"bold":false,"italic":true,"underline":false,"strikeThrough":false,"iconURL":[],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"NEVER","overflowStrategy":"NONE","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"transparent","borderColor":"#000000","borderSize":1,"borderRadius":0,"borderStyle":"Solid","childrenLayoutStrategy":{"areChildNodesDraggable":true,"topGap":0,"bottomGap":10,"growableNodeIds":[],"kind":"List"}},"borderNodes":[],"childNodes":[],"defaultWidth":155,"defaultHeight":60,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]},{"id":"a6af9fc5-6b5d-3d56-92a5-43e32eb946c2","type":"node:rectangle","targetObjectId":"cfa3b7fa-8d25-47c8-8165-1ed25355cdc1","targetObjectKind":"siriusComponents://semantic?domain=sysml&entity=PartUsage","targetObjectLabel":"part1","descriptionId":"siriusComponents://nodeDescription?sourceKind=view&sourceId=8dcd14b0-6259-3193-ad2c-743f394c68e4&sourceElementId=fe94bbc6-f9c3-34cb-90fa-34a6701f9c17","borderNode":false,"modifiers":["Hidden"],"state":"Hidden","collapsingState":"EXPANDED","insideLabel":{"id":"77fe4af7-92de-34e6-b95e-d9c2f3a33a30","text":"perform actions","insideLabelLocation":"TOP_CENTER","style":{"color":"#000000","fontSize":12,"bold":false,"italic":true,"underline":false,"strikeThrough":false,"iconURL":[],"background":"transparent","borderColor":"black","borderSize":0,"borderRadius":3,"borderStyle":"Solid","maxWidth":null},"isHeader":true,"headerSeparatorDisplayMode":"NEVER","overflowStrategy":"NONE","textAlign":"CENTER","customizedStyleProperties":[]},"outsideLabels":[],"style":{"background":"transparent","borderColor":"#000000","borderSize":1,"borderRadius":0,"borderStyle":"Solid","childrenLayoutStrategy":{"areChildNodesDraggable":true,"topGap":0,"bottomGap":10,"growableNodeIds":[],"kind":"List"}},"borderNodes":[],"childNodes":[],"defaultWidth":155,"defaultHeight":60,"labelEditable":false,"pinned":false,"customizedStyleProperties":[]}],"defaultWidth":155,"defaultHeight":60,"labelEditable":true,"pinned":false,"customizedStyleProperties":[]}],"edges":[],"layoutData":{"nodeLayoutData":{"147714a4-d9b2-319a-89ee-5ff53d6956cc":{"id":"147714a4-d9b2-319a-89ee-5ff53d6956cc","position":{"x":1.0,"y":52.0},"size":{"width":155.0,"height":150.0},"resizedByUser":false,"handleLayoutData":[]},"1038e3e3-6a5a-3bd5-866f-337cec43aa42":{"id":"1038e3e3-6a5a-3bd5-866f-337cec43aa42","position":{"x":0.0,"y":0.0},"size":{"width":155.0,"height":150.0},"resizedByUser":false,"handleLayoutData":[]},"aaefe088-61fc-3ac1-8be9-46e2b3cadf71":{"id":"aaefe088-61fc-3ac1-8be9-46e2b3cadf71","position":{"x":-150.96746360441767,"y":-537.7097766064256},"size":{"width":157.0,"height":203.0},"resizedByUser":false,"handleLayoutData":[]},"a6af9fc5-6b5d-3d56-92a5-43e32eb946c2":{"id":"a6af9fc5-6b5d-3d56-92a5-43e32eb946c2","position":{"x":0.0,"y":0.0},"size":{"width":155.0,"height":60.0},"resizedByUser":false,"handleLayoutData":[]},"89aeeb13-c7c8-32d5-8ae6-b47b39de0f70":{"id":"89aeeb13-c7c8-32d5-8ae6-b47b39de0f70","position":{"x":0.0,"y":0.0},"size":{"width":155.0,"height":60.0},"resizedByUser":false,"handleLayoutData":[]},"55162f64-56b3-3d35-a9e2-c15bca6e4c40":{"id":"55162f64-56b3-3d35-a9e2-c15bca6e4c40","position":{"x":0.0,"y":0.0},"size":{"width":155.0,"height":60.0},"resizedByUser":false,"handleLayoutData":[]},"bb40eb46-a55c-31e5-ad7a-518a13493011":{"id":"bb40eb46-a55c-31e5-ad7a-518a13493011","position":{"x":8.0,"y":32.0},"size":{"width":28.0,"height":28.0},"resizedByUser":false,"handleLayoutData":[]},"ab5d2722-9210-38d1-8ba8-1a556615d1b3":{"id":"ab5d2722-9210-38d1-8ba8-1a556615d1b3","position":{"x":0.0,"y":0.0},"size":{"width":155.0,"height":60.0},"resizedByUser":false,"handleLayoutData":[]},"0bc7df3c-b3c7-37c4-b495-00cb4d43335a":{"id":"0bc7df3c-b3c7-37c4-b495-00cb4d43335a","position":{"x":0.0,"y":0.0},"size":{"width":155.0,"height":60.0},"resizedByUser":false,"handleLayoutData":[]},"90de453c-0980-3f05-8292-56214a19f2c4":{"id":"90de453c-0980-3f05-8292-56214a19f2c4","position":{"x":0.0,"y":0.0},"size":{"width":155.0,"height":60.0},"resizedByUser":false,"handleLayoutData":[]},"fbc5cd84-1021-383f-8bc5-07c7e6fb8882":{"id":"fbc5cd84-1021-383f-8bc5-07c7e6fb8882","position":{"x":0.0,"y":0.0},"size":{"width":155.0,"height":60.0},"resizedByUser":false,"handleLayoutData":[]}},"edgeLayoutData":{},"labelLayoutData":{}}}', 'none', '2025.6.0-202506011650', '2025-06-26 08:01:47.135007+00', '2025-06-26 08:03:24.706312+00'); + + +-- +-- Data for Name: semantic_data_dependency; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + + + +-- +-- Data for Name: semantic_data_domain; Type: TABLE DATA; Schema: public; Owner: dbuser +-- + +INSERT INTO public.semantic_data_domain (semantic_data_id, uri) VALUES ('178c5f84-0a74-4674-a7ca-6f6891a0f400', 'http://www.eclipse.org/syson/sysml'); + + +-- +-- PostgreSQL database dump complete +-- + diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/AbstractFreeFormCompartmentNodeToolProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/AbstractFreeFormCompartmentNodeToolProvider.java index 006f2ee26..08bdffd97 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/AbstractFreeFormCompartmentNodeToolProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/AbstractFreeFormCompartmentNodeToolProvider.java @@ -116,8 +116,6 @@ public NodeTool create(IViewDiagramElementFinder cache) { IEditingContext.EDITING_CONTEXT, IDiagramContext.DIAGRAM_CONTEXT, ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE); - var creationServiceCall = this.viewBuilderHelper.newChangeContext() - .expression(this.getCreationServiceCallExpression()); var createViewOperation = this.viewBuilderHelper.newChangeContext() .expression(AQLUtils.getSelfServiceCallExpression("createViewInFreeFormCompartment", params)) @@ -129,7 +127,9 @@ public NodeTool create(IViewDiagramElementFinder cache) { List.of("self", IDiagramContext.DIAGRAM_CONTEXT, IEditingContext.EDITING_CONTEXT, ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE))) .build(); - creationServiceCall.children(createViewOperation, revealOperation); + var creationServiceCall = this.viewBuilderHelper.newChangeContext() + .expression(this.getCreationServiceCallExpression()) + .children(createViewOperation, revealOperation); String preconditionExpression = this.getPreconditionServiceCallExpression(); diff --git a/doc/content/modules/user-manual/pages/release-notes/2025.8.0.adoc b/doc/content/modules/user-manual/pages/release-notes/2025.8.0.adoc index 8ef61c2e4..608900dab 100644 --- a/doc/content/modules/user-manual/pages/release-notes/2025.8.0.adoc +++ b/doc/content/modules/user-manual/pages/release-notes/2025.8.0.adoc @@ -36,6 +36,7 @@ action a0 { Moreover, the tooling has been improved to: * Find the best containment location at creation time. In this case, "a0" * Handle properly source/target reconnection to recompute feature chain and the best container. +- Fix an issue where model and diagrams referencing standard libraries elements might not correctly loaded. == Improvements