Skip to content

Commit f3c2f47

Browse files
committed
[releng] Switch to Sirius Web 2025.12.6
Signed-off-by: Axel RICHARD <axel.richard@obeo.fr>
1 parent c6f4a4d commit f3c2f47

32 files changed

Lines changed: 280 additions & 251 deletions

File tree

CHANGELOG.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ It helps handling inherited elements that are not displayed in their semantic ow
3535

3636
=== Dependency update
3737

38-
- [releng] Update to https://github.com/eclipse-sirius/sirius-web[Sirius Web 2025.12.5]
38+
- [releng] Update to https://github.com/eclipse-sirius/sirius-web[Sirius Web 2025.12.6]
3939
- [releng] Update to https://eclipse.dev/elk/downloads/releasenotes/release-0.11.0.html[elkjs 0.11.0]
4040
- [releng] Update to https://github.com/spring-projects/spring-boot/releases/tag/v3.5.9[Spring Boot 3.5.9]
4141

backend/application/syson-application-configuration/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
<properties>
3131
<java.version>17</java.version>
32-
<sirius.web.version>2025.12.5</sirius.web.version>
32+
<sirius.web.version>2025.12.6</sirius.web.version>
3333
</properties>
3434

3535
<repositories>

backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/publication/SysONLibraryPublicationHandler.java

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2025 Obeo.
2+
* Copyright (c) 2025, 2026 Obeo.
33
* This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v2.0
55
* which accompanies this distribution, and is available at
@@ -39,12 +39,12 @@
3939
import org.eclipse.sirius.web.application.library.dto.PublishLibrariesInput;
4040
import org.eclipse.sirius.web.application.library.services.LibraryMetadataAdapter;
4141
import org.eclipse.sirius.web.application.library.services.api.ILibraryPublicationHandler;
42+
import org.eclipse.sirius.web.application.project.services.api.IProjectEditingContextService;
4243
import org.eclipse.sirius.web.application.studio.services.library.api.DependencyGraph;
4344
import org.eclipse.sirius.web.domain.boundedcontexts.library.Library;
4445
import org.eclipse.sirius.web.domain.boundedcontexts.library.services.api.ILibrarySearchService;
4546
import org.eclipse.sirius.web.domain.boundedcontexts.project.Project;
4647
import org.eclipse.sirius.web.domain.boundedcontexts.project.services.api.IProjectSearchService;
47-
import org.eclipse.sirius.web.domain.boundedcontexts.projectsemanticdata.services.api.IProjectSemanticDataSearchService;
4848
import org.eclipse.sirius.web.domain.boundedcontexts.semanticdata.Document;
4949
import org.eclipse.sirius.web.domain.boundedcontexts.semanticdata.SemanticData;
5050
import org.eclipse.sirius.web.domain.boundedcontexts.semanticdata.services.api.ISemanticDataCreationService;
@@ -66,33 +66,35 @@
6666
*/
6767
@Service
6868
public class SysONLibraryPublicationHandler implements ILibraryPublicationHandler {
69+
6970
private static final Logger LOGGER = LoggerFactory.getLogger(SysONLibraryPublicationHandler.class);
7071

7172
private final IEditingContextSearchService editingContextSearchService;
7273

74+
private final IProjectEditingContextService projectEditingContextService;
75+
7376
private final ISemanticDataCreationService semanticDataCreationService;
7477

7578
private final IResourceToDocumentService resourceToDocumentService;
7679

77-
private final IProjectSemanticDataSearchService projectSemanticDataSearchService;
78-
7980
private final IProjectSearchService projectSearchService;
8081

8182
private final ILibrarySearchService librarySearchService;
8283

8384
private final ISysONLibraryDependencyCollector sysonLibraryDependencyCollector;
8485

8586
public SysONLibraryPublicationHandler(final IEditingContextSearchService editingContextSearchService,
87+
final IProjectEditingContextService projectEditingContextService,
8688
final ISemanticDataCreationService semanticDataCreationService,
8789
final IResourceToDocumentService resourceToDocumentService,
88-
final IProjectSemanticDataSearchService projectSemanticDataSearchService, final IProjectSearchService projectSearchService,
90+
final IProjectSearchService projectSearchService,
8991
final ILibrarySearchService librarySearchService,
9092
final ISysONLibraryDependencyCollector sysonLibraryDependencyCollector) {
9193
this.projectSearchService = Objects.requireNonNull(projectSearchService);
94+
this.projectEditingContextService = Objects.requireNonNull(projectEditingContextService);
9295
this.editingContextSearchService = Objects.requireNonNull(editingContextSearchService);
9396
this.semanticDataCreationService = Objects.requireNonNull(semanticDataCreationService);
9497
this.resourceToDocumentService = Objects.requireNonNull(resourceToDocumentService);
95-
this.projectSemanticDataSearchService = Objects.requireNonNull(projectSemanticDataSearchService);
9698
this.librarySearchService = Objects.requireNonNull(librarySearchService);
9799
this.sysonLibraryDependencyCollector = Objects.requireNonNull(sysonLibraryDependencyCollector);
98100
}
@@ -104,15 +106,25 @@ public boolean canHandle(final PublishLibrariesInput input) {
104106

105107
@Override
106108
public IPayload handle(final PublishLibrariesInput input) {
107-
return this.projectSearchService.findById(input.projectId())
108-
.map(project -> this.projectSemanticDataSearchService.findByProjectId(AggregateReference.to(input.projectId()))
109-
.flatMap(projectSemanticData -> this.editingContextSearchService.findById(projectSemanticData.getSemanticData().getId().toString()))
110-
.filter(IEMFEditingContext.class::isInstance)
111-
.map(IEMFEditingContext.class::cast)
112-
.map(editingContext -> this.handle(input, project, editingContext.getDomain().getResourceSet()))
113-
.orElseGet(() -> new ErrorPayload(input.id(),
114-
List.of(new Message("Could not find the editing context of project '%s'.".formatted(project.getName()), MessageLevel.ERROR)))))
115-
.orElseGet(() -> new ErrorPayload(input.id(), List.of(new Message("Could not find project with ID '%s'.".formatted(input.projectId()), MessageLevel.ERROR))));
109+
IPayload payload = null;
110+
var editingContextId = input.editingContextId();
111+
var optionalProjectId = this.projectEditingContextService.getProjectId(editingContextId);
112+
if (optionalProjectId.isPresent()) {
113+
var projectId = optionalProjectId.get();
114+
var optionalProject = this.projectSearchService.findById(projectId);
115+
var optionalEditingContext = this.editingContextSearchService.findById(editingContextId)
116+
.filter(IEMFEditingContext.class::isInstance)
117+
.map(IEMFEditingContext.class::cast);
118+
119+
if (optionalProject.isPresent() && optionalEditingContext.isPresent()) {
120+
payload = this.handle(input, optionalProject.get(), optionalEditingContext.get().getDomain().getResourceSet());
121+
} else {
122+
payload = new ErrorPayload(input.id(), List.of(new Message("Could not find project with following editingContextId '%s'.".formatted(editingContextId), MessageLevel.ERROR)));
123+
}
124+
} else {
125+
payload = new ErrorPayload(input.id(), List.of(new Message("Could not find project with following editingContextId '%s'.".formatted(editingContextId), MessageLevel.ERROR)));
126+
}
127+
return payload;
116128
}
117129

118130
protected IPayload handle(final PublishLibrariesInput input, final Project project, final ResourceSet resourceSet) {

backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/publication/SysONLibraryPublicationListener.java

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2025 Obeo.
2+
* Copyright (c) 2025, 2026 Obeo.
33
* This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v2.0
55
* which accompanies this distribution, and is available at
@@ -15,10 +15,13 @@
1515
import java.util.Objects;
1616

1717
import org.eclipse.sirius.web.application.library.dto.PublishLibrariesInput;
18+
import org.eclipse.sirius.web.application.project.services.api.IProjectEditingContextService;
1819
import org.eclipse.sirius.web.domain.boundedcontexts.library.Library;
1920
import org.eclipse.sirius.web.domain.boundedcontexts.library.services.api.ILibraryCreationService;
2021
import org.eclipse.sirius.web.domain.boundedcontexts.semanticdata.SemanticData;
2122
import org.eclipse.sirius.web.domain.boundedcontexts.semanticdata.events.SemanticDataCreatedEvent;
23+
import org.slf4j.Logger;
24+
import org.slf4j.LoggerFactory;
2225
import org.springframework.data.jdbc.core.mapping.AggregateReference;
2326
import org.springframework.stereotype.Service;
2427
import org.springframework.transaction.annotation.Propagation;
@@ -33,9 +36,14 @@
3336
@Service
3437
public class SysONLibraryPublicationListener {
3538

39+
private static final Logger LOGGER = LoggerFactory.getLogger(SysONLibraryPublicationListener.class);
40+
41+
private final IProjectEditingContextService projectEditingContextService;
42+
3643
private final ILibraryCreationService libraryCreationService;
3744

38-
public SysONLibraryPublicationListener(final ILibraryCreationService libraryCreationService) {
45+
public SysONLibraryPublicationListener(final IProjectEditingContextService projectEditingContextService, final ILibraryCreationService libraryCreationService) {
46+
this.projectEditingContextService = Objects.requireNonNull(projectEditingContextService);
3947
this.libraryCreationService = Objects.requireNonNull(libraryCreationService);
4048
}
4149

@@ -44,16 +52,21 @@ public SysONLibraryPublicationListener(final ILibraryCreationService libraryCrea
4452
public void onSemanticDataCreatedEvent(final SemanticDataCreatedEvent semanticDataCreatedEvent) {
4553
if (semanticDataCreatedEvent.causedBy() instanceof SysONPublishedLibrarySemanticDataCreationRequested request
4654
&& request.causedBy() instanceof PublishLibrariesInput publishLibrariesInput) {
47-
final SemanticData createdSemanticData = semanticDataCreatedEvent.semanticData();
48-
49-
final Library createdLibrary = Library.newLibrary()
50-
.namespace(publishLibrariesInput.projectId())
51-
.name(request.libraryName())
52-
.semanticData(AggregateReference.to(createdSemanticData.getId()))
53-
.version(publishLibrariesInput.version())
54-
.description(publishLibrariesInput.description())
55-
.build(semanticDataCreatedEvent);
56-
this.libraryCreationService.createLibrary(createdLibrary);
55+
var createdSemanticData = semanticDataCreatedEvent.semanticData();
56+
var editingContextId = publishLibrariesInput.editingContextId();
57+
var optProjectId = this.projectEditingContextService.getProjectId(editingContextId);
58+
if (optProjectId.isPresent()) {
59+
Library createdLibrary = Library.newLibrary()
60+
.namespace(optProjectId.get())
61+
.name(request.libraryName())
62+
.semanticData(AggregateReference.to(createdSemanticData.getId()))
63+
.version(publishLibrariesInput.version())
64+
.description(publishLibrariesInput.description())
65+
.build(semanticDataCreatedEvent);
66+
this.libraryCreationService.createLibrary(createdLibrary);
67+
} else {
68+
LOGGER.warn("Cannot create library from the editingContextId {}", editingContextId);
69+
}
5770
}
5871
}
5972
}

backend/application/syson-application/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
<properties>
3131
<java.version>17</java.version>
32-
<sirius.web.version>2025.12.5</sirius.web.version>
32+
<sirius.web.version>2025.12.6</sirius.web.version>
3333
</properties>
3434

3535
<repositories>

backend/application/syson-application/src/test/java/org/eclipse/syson/application/data/ProjectWithUnusedBatmobileLibraryDependencyTestProjectData.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2025 Obeo.
2+
* Copyright (c) 2025, 2026 Obeo.
33
* This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v2.0
55
* which accompanies this distribution, and is available at
@@ -13,7 +13,7 @@
1313
package org.eclipse.syson.application.data;
1414

1515
/**
16-
* Identifiers for the "ProjectWithBatmobileLibraryDependency" project.
16+
* Identifiers for the "ProjectWithUnusedBatmobileLibraryDependency" project.
1717
*
1818
* @author gdaniel
1919
*/
@@ -25,4 +25,6 @@ public class ProjectWithUnusedBatmobileLibraryDependencyTestProjectData {
2525

2626
public static final String PROJECT_ID = "7c4245ac-4fac-4592-80eb-f6c67e3fd98a";
2727

28+
public static final String EDITING_CONTEXT = "050c3eea-4633-4ad9-a7ba-378b6ff9a3ff";
29+
2830
}

backend/application/syson-application/src/test/java/org/eclipse/syson/application/data/ProjectWithUsedBatmobileLibraryDependencyTestProjectData.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2025 Obeo.
2+
* Copyright (c) 2025, 2026 Obeo.
33
* This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v2.0
55
* which accompanies this distribution, and is available at
@@ -13,7 +13,7 @@
1313
package org.eclipse.syson.application.data;
1414

1515
/**
16-
* Identifiers for the "ProjectWithBatmobileLibraryDependency" project.
16+
* Identifiers for the "ProjectWithUsedBatmobileLibraryDependency" project.
1717
*
1818
* @author gdaniel
1919
*/

backend/application/syson-application/src/test/java/org/eclipse/syson/application/libraries/publication/SysONLibraryPublicationTests.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ public class SysONLibraryPublicationTests extends AbstractIntegrationTests {
7575

7676
private static final String IMPORTED_PROJECT = "afffb8f5-3db6-4b47-b295-55a36984db2e";
7777

78+
private static final String IMPORTED_PROJECT_EDITING_CONTEXT = "4246b4f9-665c-48fe-be8b-41f735a940c4";
79+
7880
private static final String IMPORTED_PROJECT_NAME = "SysMLv2-ImportedProject";
7981

8082
private static final String PUBLICATION_KIND = "Project_SysML_AllProperContents";
@@ -109,7 +111,7 @@ public void initializeServerState() {
109111
config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
110112
@Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
111113
public void givenProjectWhenLibraryIsPublishedThenLibraryExistsAndHasCorrectMetadatas() {
112-
var input = new PublishLibrariesInput(UUID.randomUUID(), SimpleProjectElementsTestProjectData.PROJECT_ID, PUBLICATION_KIND, LIBRARY_VERSION, LIBRARY_DESCRIPTION);
114+
var input = new PublishLibrariesInput(UUID.randomUUID(), SimpleProjectElementsTestProjectData.EDITING_CONTEXT_ID, PUBLICATION_KIND, LIBRARY_VERSION, LIBRARY_DESCRIPTION);
113115
var result = this.publishLibrariesMutationRunner.run(input);
114116
String typename = JsonPath.read(result.data(), "$.data.publishLibraries.__typename");
115117
assertThat(typename).isEqualTo(SuccessPayload.class.getSimpleName());
@@ -130,7 +132,7 @@ public void givenProjectWhenLibraryIsPublishedThenLibraryExistsAndHasCorrectMeta
130132
config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
131133
@Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
132134
public void givenProjectWhenLibraryIsPublishedTwiceThenTheSecondPublicationFailsAndTheLibraryIsNotUpdated() {
133-
var input1 = new PublishLibrariesInput(UUID.randomUUID(), SimpleProjectElementsTestProjectData.PROJECT_ID, PUBLICATION_KIND, LIBRARY_VERSION, LIBRARY_DESCRIPTION);
135+
var input1 = new PublishLibrariesInput(UUID.randomUUID(), SimpleProjectElementsTestProjectData.EDITING_CONTEXT_ID, PUBLICATION_KIND, LIBRARY_VERSION, LIBRARY_DESCRIPTION);
134136
var result1 = this.publishLibrariesMutationRunner.run(input1);
135137
String typename1 = JsonPath.read(result1.data(), "$.data.publishLibraries.__typename");
136138
assertThat(typename1).isEqualTo(SuccessPayload.class.getSimpleName());
@@ -145,7 +147,7 @@ public void givenProjectWhenLibraryIsPublishedTwiceThenTheSecondPublicationFails
145147

146148
// The uniqueness of a library is ensured based on its namespace (project ID), name and version so we may tweak
147149
// the description.
148-
var input2 = new PublishLibrariesInput(UUID.randomUUID(), SimpleProjectElementsTestProjectData.PROJECT_ID, PUBLICATION_KIND, LIBRARY_VERSION, LIBRARY_DESCRIPTION + "_2");
150+
var input2 = new PublishLibrariesInput(UUID.randomUUID(), SimpleProjectElementsTestProjectData.EDITING_CONTEXT_ID, PUBLICATION_KIND, LIBRARY_VERSION, LIBRARY_DESCRIPTION + "_2");
149151
var result2 = this.publishLibrariesMutationRunner.run(input2);
150152
String typename2 = JsonPath.read(result2.data(), "$.data.publishLibraries.__typename");
151153
assertThat(typename2).isEqualTo(ErrorPayload.class.getSimpleName());
@@ -168,7 +170,7 @@ public void givenProjectWhenLibraryIsPublishedTwiceThenTheSecondPublicationFails
168170
config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
169171
@Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
170172
public void givenProjectWhenLibraryIsPublishedThenContentOfLibraryMatchesContentOfProject() {
171-
var input = new PublishLibrariesInput(UUID.randomUUID(), SimpleProjectElementsTestProjectData.PROJECT_ID, PUBLICATION_KIND, LIBRARY_VERSION, LIBRARY_DESCRIPTION);
173+
var input = new PublishLibrariesInput(UUID.randomUUID(), SimpleProjectElementsTestProjectData.EDITING_CONTEXT_ID, PUBLICATION_KIND, LIBRARY_VERSION, LIBRARY_DESCRIPTION);
172174
var result = this.publishLibrariesMutationRunner.run(input);
173175
String typename = JsonPath.read(result.data(), "$.data.publishLibraries.__typename");
174176
assertThat(typename).isEqualTo(SuccessPayload.class.getSimpleName());
@@ -237,7 +239,7 @@ public void givenProjectWhenLibraryIsPublishedThenContentOfLibraryMatchesContent
237239
config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
238240
@Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
239241
public void givenProjectWithImportedResourceWhenLibraryIsPublishedThenLibraryDoesNotContainTheImportedFlag() {
240-
var input = new PublishLibrariesInput(UUID.randomUUID(), IMPORTED_PROJECT, PUBLICATION_KIND, "1.0.0", "");
242+
var input = new PublishLibrariesInput(UUID.randomUUID(), IMPORTED_PROJECT_EDITING_CONTEXT, PUBLICATION_KIND, "1.0.0", "");
241243
var result = this.publishLibrariesMutationRunner.run(input);
242244
String typename = JsonPath.read(result.data(), "$.data.publishLibraries.__typename");
243245
assertThat(typename).isEqualTo(SuccessPayload.class.getSimpleName());
@@ -263,7 +265,7 @@ public void givenProjectWithImportedResourceWhenLibraryIsPublishedThenLibraryDoe
263265
config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
264266
@Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
265267
public void givenProjectWithUsedDependencyToLibraryWhenLibraryIsPublishedThenItHasTheSameDependency() {
266-
var input = new PublishLibrariesInput(UUID.randomUUID(), ProjectWithUsedBatmobileLibraryDependencyTestProjectData.PROJECT_ID, PUBLICATION_KIND, "1.0.0", "");
268+
var input = new PublishLibrariesInput(UUID.randomUUID(), ProjectWithUsedBatmobileLibraryDependencyTestProjectData.EDITING_CONTEXT, PUBLICATION_KIND, "1.0.0", "");
267269
var result = this.publishLibrariesMutationRunner.run(input);
268270
String typename = JsonPath.read(result.data(), "$.data.publishLibraries.__typename");
269271
assertThat(typename).isEqualTo(SuccessPayload.class.getSimpleName());
@@ -298,7 +300,7 @@ public void givenProjectWithUsedDependencyToLibraryWhenLibraryIsPublishedThenItH
298300
config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
299301
@Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
300302
public void givenProjectWithUnusedDependencyToLibraryWhenLibraryIsPublishedThenItHasNoDependency() {
301-
var input = new PublishLibrariesInput(UUID.randomUUID(), ProjectWithUnusedBatmobileLibraryDependencyTestProjectData.PROJECT_ID, PUBLICATION_KIND, "1.0.0", "");
303+
var input = new PublishLibrariesInput(UUID.randomUUID(), ProjectWithUnusedBatmobileLibraryDependencyTestProjectData.EDITING_CONTEXT, PUBLICATION_KIND, "1.0.0", "");
302304
var result = this.publishLibrariesMutationRunner.run(input);
303305
String typename = JsonPath.read(result.data(), "$.data.publishLibraries.__typename");
304306
assertThat(typename).isEqualTo(SuccessPayload.class.getSimpleName());

0 commit comments

Comments
 (0)