> empty().toFuture();
+ }
+
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/ImageNodeStyleImageURLDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/ImageNodeStyleImageURLDataFetcher.java
new file mode 100644
index 0000000000..6e51776dbf
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/ImageNodeStyleImageURLDataFetcher.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.diagram;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.QueryDataFetcher;
+import org.eclipse.sirius.components.diagrams.ImageNodeStyle;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.URLConstants;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * Data fetcher for ImageNodeStyle.imageURL, to rewrite the relative path of the image into an absolute path on the
+ * server.
+ *
+ * If the ImageNodeStyle.imageURL
is of the form path/to/image.svg
, the rewritten value which
+ * will be seen by the frontend will be /api/images/path/to/image.svg
.
+ *
+ * @author pcdavid
+ */
+@QueryDataFetcher(type = "ImageNodeStyle", field = "imageURL")
+public class ImageNodeStyleImageURLDataFetcher implements IDataFetcherWithFieldCoordinates {
+
+ @Override
+ public String get(DataFetchingEnvironment environment) throws Exception {
+ ImageNodeStyle style = environment.getSource();
+ return URLConstants.IMAGE_BASE_PATH + style.getImageURL();
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/LabelStyleIconURLDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/LabelStyleIconURLDataFetcher.java
new file mode 100644
index 0000000000..b0ec1f3546
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/LabelStyleIconURLDataFetcher.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.diagram;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.QueryDataFetcher;
+import org.eclipse.sirius.components.diagrams.LabelStyle;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.URLConstants;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * Data fetcher for LabelStyle.iconURL, to rewrite the relative path of the image into an absolute path on the server.
+ *
+ * If the LabelStyle.iconURL
is of the form path/to/image.svg
, the rewritten value which will
+ * be seen by the frontend will be /api/images/path/to/image.svg
.
+ *
+ * @author pcdavid
+ */
+@QueryDataFetcher(type = "LabelStyle", field = "iconURL")
+public class LabelStyleIconURLDataFetcher implements IDataFetcherWithFieldCoordinates {
+
+ @Override
+ public String get(DataFetchingEnvironment environment) throws Exception {
+ LabelStyle style = environment.getSource();
+ String result = style.getIconURL();
+ if (result != null && !result.isBlank()) {
+ result = URLConstants.IMAGE_BASE_PATH + result;
+ }
+ return result;
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/SingleClickOnDiagramElementToolImageURLDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/SingleClickOnDiagramElementToolImageURLDataFetcher.java
new file mode 100644
index 0000000000..186b52b4b8
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/SingleClickOnDiagramElementToolImageURLDataFetcher.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.diagram;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.QueryDataFetcher;
+import org.eclipse.sirius.components.diagrams.tools.ITool;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.URLConstants;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to concatenate the server image URL to the single click on diagram element tool image path.
+ *
+ * @author hmarchadour
+ */
+@QueryDataFetcher(type = "SingleClickOnDiagramElementTool", field = "imageURL")
+public class SingleClickOnDiagramElementToolImageURLDataFetcher implements IDataFetcherWithFieldCoordinates {
+
+ @Override
+ public String get(DataFetchingEnvironment environment) throws Exception {
+ ITool tool = environment.getSource();
+ return URLConstants.IMAGE_BASE_PATH + tool.getImageURL();
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/SingleClickOnTwoDiagramElementsToolImageURLDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/SingleClickOnTwoDiagramElementsToolImageURLDataFetcher.java
new file mode 100644
index 0000000000..f1511f9236
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/SingleClickOnTwoDiagramElementsToolImageURLDataFetcher.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.diagram;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.QueryDataFetcher;
+import org.eclipse.sirius.components.diagrams.tools.ITool;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.URLConstants;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to concatenate the server image URL to the tool image path.
+ *
+ * @author hmarchadour
+ */
+@QueryDataFetcher(type = "SingleClickOnTwoDiagramElementsTool", field = "imageURL")
+public class SingleClickOnTwoDiagramElementsToolImageURLDataFetcher implements IDataFetcherWithFieldCoordinates {
+
+ @Override
+ public String get(DataFetchingEnvironment environment) throws Exception {
+ ITool tool = environment.getSource();
+ return URLConstants.IMAGE_BASE_PATH + tool.getImageURL();
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/ToolSectionImageURLDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/ToolSectionImageURLDataFetcher.java
new file mode 100644
index 0000000000..3b900d58d1
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/diagram/ToolSectionImageURLDataFetcher.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.diagram;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.QueryDataFetcher;
+import org.eclipse.sirius.components.diagrams.tools.ToolSection;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.URLConstants;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to concatenate the server image URL to toolSection image path.
+ *
+ * @author hmarchadour
+ */
+@QueryDataFetcher(type = "ToolSection", field = "imageURL")
+public class ToolSectionImageURLDataFetcher implements IDataFetcherWithFieldCoordinates {
+
+ @Override
+ public String get(DataFetchingEnvironment environment) throws Exception {
+ ToolSection toolSection = environment.getSource();
+ return URLConstants.IMAGE_BASE_PATH + toolSection.getImageURL();
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationArrangeAllDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationArrangeAllDataFetcher.java
new file mode 100644
index 0000000000..7882e58b54
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationArrangeAllDataFetcher.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.mutation;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.MutationDataFetcher;
+import org.eclipse.sirius.components.collaborative.diagrams.dto.ArrangeAllInput;
+import org.eclipse.sirius.components.core.api.IPayload;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.IEditingContextDispatcher;
+import org.eclipse.sirius.components.graphql.api.IExceptionWrapper;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to layout a diagram.
+ *
+ * @author wpiers
+ */
+@MutationDataFetcher(type = "Mutation", field = "arrangeAll")
+public class MutationArrangeAllDataFetcher implements IDataFetcherWithFieldCoordinates> {
+
+ private static final String INPUT_ARGUMENT = "input"; //$NON-NLS-1$
+
+ private final ObjectMapper objectMapper;
+
+ private final IExceptionWrapper exceptionWrapper;
+
+ private final IEditingContextDispatcher editingContextDispatcher;
+
+ public MutationArrangeAllDataFetcher(ObjectMapper objectMapper, IExceptionWrapper exceptionWrapper, IEditingContextDispatcher editingContextDispatcher) {
+ this.objectMapper = Objects.requireNonNull(objectMapper);
+ this.exceptionWrapper = Objects.requireNonNull(exceptionWrapper);
+ this.editingContextDispatcher = Objects.requireNonNull(editingContextDispatcher);
+ }
+
+ @Override
+ public CompletableFuture get(DataFetchingEnvironment environment) throws Exception {
+ Object argument = environment.getArgument(INPUT_ARGUMENT);
+ var input = this.objectMapper.convertValue(argument, ArrangeAllInput.class);
+
+ return this.exceptionWrapper.wrapMono(() -> this.editingContextDispatcher.dispatchMutation(input.getEditingContextId(), input), input).toFuture();
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationDeleteFromDiagramDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationDeleteFromDiagramDataFetcher.java
new file mode 100644
index 0000000000..232a9260e4
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationDeleteFromDiagramDataFetcher.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.mutation;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.MutationDataFetcher;
+import org.eclipse.sirius.components.collaborative.diagrams.dto.DeleteFromDiagramInput;
+import org.eclipse.sirius.components.core.api.IPayload;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.IEditingContextDispatcher;
+import org.eclipse.sirius.components.graphql.api.IExceptionWrapper;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to delete edges and nodes from a diagram.
+ *
+ * @author pcdavid
+ * @author sdrapeau
+ * @author hmarchadour
+ */
+@MutationDataFetcher(type = "Mutation", field = "deleteFromDiagram")
+public class MutationDeleteFromDiagramDataFetcher implements IDataFetcherWithFieldCoordinates> {
+
+ private static final String INPUT_ARGUMENT = "input"; //$NON-NLS-1$
+
+ private final ObjectMapper objectMapper;
+
+ private final IExceptionWrapper exceptionWrapper;
+
+ private final IEditingContextDispatcher editingContextDispatcher;
+
+ public MutationDeleteFromDiagramDataFetcher(ObjectMapper objectMapper, IExceptionWrapper exceptionWrapper, IEditingContextDispatcher editingContextDispatcher) {
+ this.objectMapper = Objects.requireNonNull(objectMapper);
+ this.exceptionWrapper = Objects.requireNonNull(exceptionWrapper);
+ this.editingContextDispatcher = Objects.requireNonNull(editingContextDispatcher);
+ }
+
+ @Override
+ public CompletableFuture get(DataFetchingEnvironment environment) throws Exception {
+ Object argument = environment.getArgument(INPUT_ARGUMENT);
+ var input = this.objectMapper.convertValue(argument, DeleteFromDiagramInput.class);
+
+ return this.exceptionWrapper.wrapMono(() -> this.editingContextDispatcher.dispatchMutation(input.getEditingContextId(), input), input).toFuture();
+ }
+
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationDropOnDiagramDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationDropOnDiagramDataFetcher.java
new file mode 100644
index 0000000000..f537400ad7
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationDropOnDiagramDataFetcher.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.mutation;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.MutationDataFetcher;
+import org.eclipse.sirius.components.collaborative.diagrams.dto.DropOnDiagramInput;
+import org.eclipse.sirius.components.core.api.IPayload;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.IEditingContextDispatcher;
+import org.eclipse.sirius.components.graphql.api.IExceptionWrapper;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to perform a drop on a diagram.
+ *
+ * @author sbegaudeau
+ */
+@MutationDataFetcher(type = "Mutation", field = "dropOnDiagram")
+public class MutationDropOnDiagramDataFetcher implements IDataFetcherWithFieldCoordinates> {
+
+ private static final String INPUT_ARGUMENT = "input"; //$NON-NLS-1$
+
+ private final ObjectMapper objectMapper;
+
+ private final IExceptionWrapper exceptionWrapper;
+
+ private final IEditingContextDispatcher editingContextDispatcher;
+
+ public MutationDropOnDiagramDataFetcher(ObjectMapper objectMapper, IExceptionWrapper exceptionWrapper, IEditingContextDispatcher editingContextDispatcher) {
+ this.objectMapper = Objects.requireNonNull(objectMapper);
+ this.exceptionWrapper = Objects.requireNonNull(exceptionWrapper);
+ this.editingContextDispatcher = Objects.requireNonNull(editingContextDispatcher);
+ }
+
+ @Override
+ public CompletableFuture get(DataFetchingEnvironment environment) throws Exception {
+ Object argument = environment.getArgument(INPUT_ARGUMENT);
+ var input = this.objectMapper.convertValue(argument, DropOnDiagramInput.class);
+
+ return this.exceptionWrapper.wrapMono(() -> this.editingContextDispatcher.dispatchMutation(input.getEditingContextId(), input), input).toFuture();
+ }
+
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationEditLabelDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationEditLabelDataFetcher.java
new file mode 100644
index 0000000000..cc1c3d0501
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationEditLabelDataFetcher.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.mutation;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.MutationDataFetcher;
+import org.eclipse.sirius.components.collaborative.diagrams.dto.EditLabelInput;
+import org.eclipse.sirius.components.core.api.IPayload;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.IEditingContextDispatcher;
+import org.eclipse.sirius.components.graphql.api.IExceptionWrapper;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to delete an object.
+ *
+ * @author pcdavid
+ */
+@MutationDataFetcher(type = "Mutation", field = "editLabel")
+public class MutationEditLabelDataFetcher implements IDataFetcherWithFieldCoordinates> {
+
+ private static final String INPUT_ARGUMENT = "input"; //$NON-NLS-1$
+
+ private final ObjectMapper objectMapper;
+
+ private final IExceptionWrapper exceptionWrapper;
+
+ private final IEditingContextDispatcher editingContextDispatcher;
+
+ public MutationEditLabelDataFetcher(ObjectMapper objectMapper, IExceptionWrapper exceptionWrapper, IEditingContextDispatcher editingContextDispatcher) {
+ this.objectMapper = Objects.requireNonNull(objectMapper);
+ this.exceptionWrapper = Objects.requireNonNull(exceptionWrapper);
+ this.editingContextDispatcher = Objects.requireNonNull(editingContextDispatcher);
+ }
+
+ @Override
+ public CompletableFuture get(DataFetchingEnvironment environment) throws Exception {
+ Object argument = environment.getArgument(INPUT_ARGUMENT);
+ var input = this.objectMapper.convertValue(argument, EditLabelInput.class);
+
+ return this.exceptionWrapper.wrapMono(() -> this.editingContextDispatcher.dispatchMutation(input.getEditingContextId(), input), input).toFuture();
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationInvokeSingleClickOnDiagramElementToolDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationInvokeSingleClickOnDiagramElementToolDataFetcher.java
new file mode 100644
index 0000000000..4e201834df
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationInvokeSingleClickOnDiagramElementToolDataFetcher.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.mutation;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.MutationDataFetcher;
+import org.eclipse.sirius.components.collaborative.diagrams.dto.InvokeSingleClickOnDiagramElementToolInput;
+import org.eclipse.sirius.components.core.api.IPayload;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.IEditingContextDispatcher;
+import org.eclipse.sirius.components.graphql.api.IExceptionWrapper;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to invoke a single click on diagram element tool.
+ *
+ * @author pcdavid
+ */
+@MutationDataFetcher(type = "Mutation", field = "invokeSingleClickOnDiagramElementTool")
+public class MutationInvokeSingleClickOnDiagramElementToolDataFetcher implements IDataFetcherWithFieldCoordinates> {
+
+ private static final String INPUT_ARGUMENT = "input"; //$NON-NLS-1$
+
+ private final ObjectMapper objectMapper;
+
+ private final IExceptionWrapper exceptionWrapper;
+
+ private final IEditingContextDispatcher editingContextDispatcher;
+
+ public MutationInvokeSingleClickOnDiagramElementToolDataFetcher(ObjectMapper objectMapper, IExceptionWrapper exceptionWrapper, IEditingContextDispatcher editingContextDispatcher) {
+ this.objectMapper = Objects.requireNonNull(objectMapper);
+ this.exceptionWrapper = Objects.requireNonNull(exceptionWrapper);
+ this.editingContextDispatcher = Objects.requireNonNull(editingContextDispatcher);
+ }
+
+ @Override
+ public CompletableFuture get(DataFetchingEnvironment environment) throws Exception {
+ Object argument = environment.getArgument(INPUT_ARGUMENT);
+ var input = this.objectMapper.convertValue(argument, InvokeSingleClickOnDiagramElementToolInput.class);
+
+ return this.exceptionWrapper.wrapMono(() -> this.editingContextDispatcher.dispatchMutation(input.getEditingContextId(), input), input).toFuture();
+ }
+
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationInvokeSingleClickOnTwoDiagramElementsToolDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationInvokeSingleClickOnTwoDiagramElementsToolDataFetcher.java
new file mode 100644
index 0000000000..cce4ab599d
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationInvokeSingleClickOnTwoDiagramElementsToolDataFetcher.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.mutation;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.MutationDataFetcher;
+import org.eclipse.sirius.components.collaborative.diagrams.dto.InvokeSingleClickOnTwoDiagramElementsToolInput;
+import org.eclipse.sirius.components.core.api.IPayload;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.IEditingContextDispatcher;
+import org.eclipse.sirius.components.graphql.api.IExceptionWrapper;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to invoke a single click on two diagram elements tool.
+ *
+ * @author pcdavid
+ * @author hmarchadour
+ */
+@MutationDataFetcher(type = "Mutation", field = "invokeSingleClickOnTwoDiagramElementsTool")
+public class MutationInvokeSingleClickOnTwoDiagramElementsToolDataFetcher implements IDataFetcherWithFieldCoordinates> {
+
+ private static final String INPUT_ARGUMENT = "input"; //$NON-NLS-1$
+
+ private final ObjectMapper objectMapper;
+
+ private final IExceptionWrapper exceptionWrapper;
+
+ private final IEditingContextDispatcher editingContextDispatcher;
+
+ public MutationInvokeSingleClickOnTwoDiagramElementsToolDataFetcher(ObjectMapper objectMapper, IExceptionWrapper exceptionWrapper, IEditingContextDispatcher editingContextDispatcher) {
+ this.objectMapper = Objects.requireNonNull(objectMapper);
+ this.exceptionWrapper = Objects.requireNonNull(exceptionWrapper);
+ this.editingContextDispatcher = Objects.requireNonNull(editingContextDispatcher);
+ }
+
+ @Override
+ public CompletableFuture get(DataFetchingEnvironment environment) throws Exception {
+ Object argument = environment.getArgument(INPUT_ARGUMENT);
+ var input = this.objectMapper.convertValue(argument, InvokeSingleClickOnTwoDiagramElementsToolInput.class);
+
+ return this.exceptionWrapper.wrapMono(() -> this.editingContextDispatcher.dispatchMutation(input.getEditingContextId(), input), input).toFuture();
+ }
+
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationUpdateNodeBoundsDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationUpdateNodeBoundsDataFetcher.java
new file mode 100644
index 0000000000..f25b007942
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationUpdateNodeBoundsDataFetcher.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.mutation;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.MutationDataFetcher;
+import org.eclipse.sirius.components.collaborative.diagrams.dto.UpdateNodeBoundsInput;
+import org.eclipse.sirius.components.core.api.IPayload;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.IEditingContextDispatcher;
+import org.eclipse.sirius.components.graphql.api.IExceptionWrapper;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to move or resize a node on a diagram.
+ *
+ * @author fbarbin
+ */
+@MutationDataFetcher(type = "Mutation", field = "updateNodeBounds")
+public class MutationUpdateNodeBoundsDataFetcher implements IDataFetcherWithFieldCoordinates> {
+
+ private static final String INPUT_ARGUMENT = "input"; //$NON-NLS-1$
+
+ private final ObjectMapper objectMapper;
+
+ private final IExceptionWrapper exceptionWrapper;
+
+ private final IEditingContextDispatcher editingContextDispatcher;
+
+ public MutationUpdateNodeBoundsDataFetcher(ObjectMapper objectMapper, IExceptionWrapper exceptionWrapper, IEditingContextDispatcher editingContextDispatcher) {
+ this.objectMapper = Objects.requireNonNull(objectMapper);
+ this.exceptionWrapper = Objects.requireNonNull(exceptionWrapper);
+ this.editingContextDispatcher = Objects.requireNonNull(editingContextDispatcher);
+ }
+
+ @Override
+ public CompletableFuture get(DataFetchingEnvironment environment) throws Exception {
+ Object argument = environment.getArgument(INPUT_ARGUMENT);
+ var input = this.objectMapper.convertValue(argument, UpdateNodeBoundsInput.class);
+
+ return this.exceptionWrapper.wrapMono(() -> this.editingContextDispatcher.dispatchMutation(input.getEditingContextId(), input), input).toFuture();
+ }
+
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationUpdateNodePositionDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationUpdateNodePositionDataFetcher.java
new file mode 100644
index 0000000000..cd66e43b1b
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/mutation/MutationUpdateNodePositionDataFetcher.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.mutation;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.MutationDataFetcher;
+import org.eclipse.sirius.components.collaborative.diagrams.dto.UpdateNodePositionInput;
+import org.eclipse.sirius.components.core.api.IPayload;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.IEditingContextDispatcher;
+import org.eclipse.sirius.components.graphql.api.IExceptionWrapper;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to move a node on a diagram.
+ *
+ * @author fbarbin
+ */
+@MutationDataFetcher(type = "Mutation", field = "updateNodePosition")
+public class MutationUpdateNodePositionDataFetcher implements IDataFetcherWithFieldCoordinates> {
+
+ private static final String INPUT_ARGUMENT = "input"; //$NON-NLS-1$
+
+ private final ObjectMapper objectMapper;
+
+ private final IExceptionWrapper exceptionWrapper;
+
+ private final IEditingContextDispatcher editingContextDispatcher;
+
+ public MutationUpdateNodePositionDataFetcher(ObjectMapper objectMapper, IExceptionWrapper exceptionWrapper, IEditingContextDispatcher editingContextDispatcher) {
+ this.objectMapper = Objects.requireNonNull(objectMapper);
+ this.exceptionWrapper = Objects.requireNonNull(exceptionWrapper);
+ this.editingContextDispatcher = Objects.requireNonNull(editingContextDispatcher);
+ }
+
+ @Override
+ public CompletableFuture get(DataFetchingEnvironment environment) throws Exception {
+ Object argument = environment.getArgument(INPUT_ARGUMENT);
+ var input = this.objectMapper.convertValue(argument, UpdateNodePositionInput.class);
+
+ return this.exceptionWrapper.wrapMono(() -> this.editingContextDispatcher.dispatchMutation(input.getEditingContextId(), input), input).toFuture();
+ }
+
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/subscription/SubscriptionDiagramEventDataFetcher.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/subscription/SubscriptionDiagramEventDataFetcher.java
new file mode 100644
index 0000000000..011049cadc
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/java/org/eclipse/sirius/components/diagrams/graphql/datafetchers/subscription/SubscriptionDiagramEventDataFetcher.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.datafetchers.subscription;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Objects;
+
+import org.eclipse.sirius.components.annotations.spring.graphql.SubscriptionDataFetcher;
+import org.eclipse.sirius.components.collaborative.diagrams.api.DiagramConfiguration;
+import org.eclipse.sirius.components.collaborative.diagrams.api.IDiagramEventProcessor;
+import org.eclipse.sirius.components.collaborative.diagrams.dto.DiagramEventInput;
+import org.eclipse.sirius.components.core.api.IPayload;
+import org.eclipse.sirius.components.graphql.api.IDataFetcherWithFieldCoordinates;
+import org.eclipse.sirius.components.graphql.api.IEventProcessorSubscriptionProvider;
+import org.eclipse.sirius.components.graphql.api.IExceptionWrapper;
+import org.reactivestreams.Publisher;
+
+import graphql.schema.DataFetchingEnvironment;
+
+/**
+ * The data fetcher used to send the refreshed diagram to a subscription.
+ *
+ * @author sbegaudeau
+ * @author pcdavid
+ */
+@SubscriptionDataFetcher(type = "Subscription", field = "diagramEvent")
+public class SubscriptionDiagramEventDataFetcher implements IDataFetcherWithFieldCoordinates> {
+
+ private static final String INPUT_ARGUMENT = "input"; //$NON-NLS-1$
+
+ private final ObjectMapper objectMapper;
+
+ private final IExceptionWrapper exceptionWrapper;
+
+ private final IEventProcessorSubscriptionProvider eventProcessorSubscriptionProvider;
+
+ public SubscriptionDiagramEventDataFetcher(ObjectMapper objectMapper, IExceptionWrapper exceptionWrapper, IEventProcessorSubscriptionProvider eventProcessorSubscriptionProvider) {
+ this.objectMapper = Objects.requireNonNull(objectMapper);
+ this.exceptionWrapper = Objects.requireNonNull(exceptionWrapper);
+ this.eventProcessorSubscriptionProvider = Objects.requireNonNull(eventProcessorSubscriptionProvider);
+ }
+
+ @Override
+ public Publisher get(DataFetchingEnvironment environment) throws Exception {
+ Object argument = environment.getArgument(INPUT_ARGUMENT);
+ var input = this.objectMapper.convertValue(argument, DiagramEventInput.class);
+ var diagramConfiguration = new DiagramConfiguration(input.getDiagramId());
+
+ return this.exceptionWrapper.wrapFlux(() -> this.eventProcessorSubscriptionProvider.getSubscription(input.getEditingContextId(), IDiagramEventProcessor.class, diagramConfiguration, input),
+ input);
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/resources/.gitkeep b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/main/resources/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/java/org/eclipse/sirius/components/diagrams/graphql/architecture/ArchitectureConstants.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/java/org/eclipse/sirius/components/diagrams/graphql/architecture/ArchitectureConstants.java
new file mode 100644
index 0000000000..4b165dcd1c
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/java/org/eclipse/sirius/components/diagrams/graphql/architecture/ArchitectureConstants.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.architecture;
+
+import com.tngtech.archunit.core.domain.JavaClasses;
+import com.tngtech.archunit.core.importer.ClassFileImporter;
+import com.tngtech.archunit.core.importer.ImportOption;
+
+/**
+ * Constants shared across multiple tests.
+ *
+ * @author gcoutable
+ */
+public final class ArchitectureConstants {
+ public static final String SIRIUS_COMPONENTS_DIAGRAMS_GRAPHQL_ROOT_PACKAGE = "org.eclipse.sirius.components.diagrams.graphql.."; //$NON-NLS-1$
+
+ // @formatter:off
+ public static final JavaClasses CLASSES = new ClassFileImporter()
+ .withImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_JARS)
+ .withImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_TESTS)
+ .importPackages(SIRIUS_COMPONENTS_DIAGRAMS_GRAPHQL_ROOT_PACKAGE);
+ // @formatter:on
+
+ private ArchitectureConstants() {
+ // Prevent instantiation
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/java/org/eclipse/sirius/components/diagrams/graphql/architecture/CodingRulesTests.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/java/org/eclipse/sirius/components/diagrams/graphql/architecture/CodingRulesTests.java
new file mode 100644
index 0000000000..c3d59c9ca2
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/java/org/eclipse/sirius/components/diagrams/graphql/architecture/CodingRulesTests.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.architecture;
+
+import com.tngtech.archunit.core.domain.JavaClasses;
+
+import org.eclipse.sirius.components.tests.architecture.AbstractCodingRulesTests;
+import org.junit.jupiter.api.Test;
+
+/**
+ * Coding rules tests.
+ *
+ * @author gcoutable
+ */
+public class CodingRulesTests extends AbstractCodingRulesTests {
+
+ @Override
+ protected String getProjectRootPackage() {
+ return ArchitectureConstants.SIRIUS_COMPONENTS_DIAGRAMS_GRAPHQL_ROOT_PACKAGE;
+ }
+
+ @Override
+ protected JavaClasses getClasses() {
+ return ArchitectureConstants.CLASSES;
+ }
+
+ @Test
+ @Override
+ public void noClassesShouldUseEMF() {
+ super.noClassesShouldUseEMF();
+ }
+
+ @Test
+ @Override
+ public void noClassesShouldUseApacheCommons() {
+ super.noClassesShouldUseApacheCommons();
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/java/org/eclipse/sirius/components/diagrams/graphql/architecture/ImmutableTests.java b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/java/org/eclipse/sirius/components/diagrams/graphql/architecture/ImmutableTests.java
new file mode 100644
index 0000000000..695f821bfc
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/java/org/eclipse/sirius/components/diagrams/graphql/architecture/ImmutableTests.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2022 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.sirius.components.diagrams.graphql.architecture;
+
+import com.tngtech.archunit.core.domain.JavaClasses;
+
+import org.eclipse.sirius.components.tests.architecture.AbstractImmutableTests;
+
+/**
+ * Architectural tests of the @Immutable classes.
+ *
+ * @author gcoutable
+ */
+public class ImmutableTests extends AbstractImmutableTests {
+ @Override
+ protected String getProjectRootPackage() {
+ return ArchitectureConstants.SIRIUS_COMPONENTS_DIAGRAMS_GRAPHQL_ROOT_PACKAGE;
+ }
+
+ @Override
+ protected JavaClasses getClasses() {
+ return ArchitectureConstants.CLASSES;
+ }
+}
diff --git a/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/resources/logback-test.xml b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/resources/logback-test.xml
new file mode 100644
index 0000000000..6e5a312958
--- /dev/null
+++ b/packages/diagrams/backend/sirius-components-diagrams-graphql/src/test/resources/logback-test.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/packages/releng/backend/sirius-components-test-coverage/pom.xml b/packages/releng/backend/sirius-components-test-coverage/pom.xml
index c2bd3ba88d..97acbb5861 100644
--- a/packages/releng/backend/sirius-components-test-coverage/pom.xml
+++ b/packages/releng/backend/sirius-components-test-coverage/pom.xml
@@ -155,6 +155,11 @@
sirius-components-collaborative-forms
2022.7.2
+
+ org.eclipse.sirius
+ sirius-components-collaborative-formdescriptioneditors
+ 2022.7.2
+
org.eclipse.sirius
sirius-components-collaborative-selection
@@ -170,6 +175,11 @@
sirius-components-collaborative-validation
2022.7.2
+
+ org.eclipse.sirius
+ sirius-components-diagrams-graphql
+ 2022.7.2
+
org.eclipse.sirius
sirius-components-forms-graphql
@@ -180,6 +190,16 @@
sirius-components-formdescriptioneditors-graphql
2022.7.2
+
+ org.eclipse.sirius
+ sirius-components-selection-graphql
+ 2022.7.2
+
+
+ org.eclipse.sirius
+ sirius-components-trees-graphql
+ 2022.7.2
+
org.eclipse.sirius
sirius-components-validation-graphql
diff --git a/packages/selection/backend/pom.xml b/packages/selection/backend/pom.xml
index 3ca69c5dac..e96b9cbff0 100644
--- a/packages/selection/backend/pom.xml
+++ b/packages/selection/backend/pom.xml
@@ -34,5 +34,6 @@
sirius-components-selection
sirius-components-collaborative-selection
+ sirius-components-selection-graphql