Release Notes for Older Version of Sirius

  1. Release Notes for Older Version of Sirius
    1. Changes in Sirius 6.4.1
    2. Changes in Sirius 6.4.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    3. Changes in Sirius 6.3.2
      1. User-Visible Changes
      2. Developer-Visible Changes
    4. Changes in Sirius 6.3.1
      1. User-Visible Changes
      2. Developer-Visible Changes
    5. Changes in Sirius 6.3.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    6. Changes in Sirius 6.2.2
    7. Changes in Sirius 6.2.1
      1. Developer-Visible Changes
    8. Changes in Sirius 6.2.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    9. Changes in Sirius 6.1.2
      1. User-Visible Changes
      2. Developer-Visible Changes
    10. Changes in Sirius 6.1.1
      1. Changes in @org.eclipse.sirius.diagram@
    11. Changes in Sirius 6.1.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    12. Changes in Sirius 6.0.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    13. Changes in Sirius 5.1.1
      1. User-Visible Changes
      2. Developer-Visible Changes
    14. Changes in Sirius 5.1.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    15. Changes in Sirius 5.0.1
    16. Changes in Sirius 5.0.0
      1. User-Visible Changes
      2. Developer-Visible Changes
      3. Specifier-Visible Changes
    17. Changes in Sirius 4.1.2
      1. User-Visible Changes
      2. Developer-Visible Changes
    18. Changes in Sirius 4.1.1
      1. User-Visible Changes
      2. Developer-Visible Changes
    19. Changes in Sirius 4.1.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    20. Changes in Sirius 4.0.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    21. Changes in Sirius 3.1.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    22. Changes in Sirius 3.0.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. Developer-Visible Changes
    23. Changes in Sirius 2.0.0
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. API Changes
    24. Changes in Sirius 1.0.0 (from Sirius 1.0.0M7)
      1. User-Visible Changes
      2. Specifier-Visible Changes
      3. API Changes
    25. Changes in Sirius 1.0.0M7 (from Sirius 1.0M6)
      1. Specifier-Visible Changes
      2. API Changes
    26. Changes in Sirius 1.0.0M6 (from Sirius 1.0M5)
      1. API Changes
    27. Changes in Sirius 1.0.0M5 (from Sirius 1.0M4)
      1. User-Visible Changes
      2. API Changes
    28. Changes in Sirius 1.0.0M4 (from Sirius 0.9)
      1. User-Visible Changes
      2. API Changes
    29. Changes in Sirius 0.9.0
      1. Migrating from Obeo Designer or Viewpoint to Sirius
      2. Plug-ins version numbers.
      3. Major namespace changes
      4. Nature ID
      5. Other API Changes
      6. Specifier-Visible Changes
      7. User-Visible Changes

This document contains the release notes for older versions of of Sirius.

Changes in Sirius 6.4.1

This is service release to fix two issues which were not detected in time for 6.4.0. The issues only impact a new API which was introduced in 6.4.0 (Bug 563117 - Copy format to existing/new diagram based on source to target semantic elements mapping).

Users who want to use this specific feature are encouraged to move to 6.4.1. The bugs have zero impact on the rest of Sirius so there is no need to update if you do not use this specific API.

Changes in Sirius 6.4.0

Important In order to reduce the maintenance burden of Sirius, we have decided to deprecate some older mechanisms for which there exist better alternatives. In Sirius 6.4.x all of these are still available, but they may be removed in future versions
(6.5 or 7.0) without further notice. If any of these planned removals are an issue for you, please open a ticket so we can discuss options.

The features which are deprecated starting from 6.4.0 are:

Also note that Sirius 6.4 is still compatible with Java 8, but we may move to Java 11 (LTS) in 2021. Eclipse 2020-09 already requires Java 11 to start, and Java 8 is quite old at this point. When we move to Java 11 we will drop support for Eclipse versions older than 2020-09. Again, if that is an issue for you, please open a ticket so we can discuss it.

Sirius 6.4 is officially supported on Eclipse 2020-03 to 2020-12, with Eclipse 2020-06 being the reference platform (where the tests are run and verified). It most likely works fine with any Eclipse from 2019-06 onward, but this is not guaranteed.

User-Visible Changes

Specifier-Visible Changes

Several improvements have been done concerning ELK integration. This feature is always considered as experimental (because several bugs remain). Additional documentation is available here .

Developer-Visible Changes

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.common

try {
    //code to protect
} catch (IllegalStateException e) {
    if (new IllegalStateExceptionQuery(e).isAConnectionLostException()) {
        // Generally catch silently the exception
    } else {
        throw e;
    }
}

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.tests.junit.support

Changes in Sirius 6.3.2

User-Visible Changes

A consequence is that the display of existing compartments in diagrams may be changed. When refreshing the existing diagram, the project may become dirty.

With Sirius 6.3.2, the label is now on the top of execution:

Developer-Visible Changes

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius.diagram.ui

Changes in Sirius 6.3.1

IMPORTANT NOTE: Sirius 6.3.1 includes a change in internal data structures used to store diagrams which is not backward-compatible with previous versions, including Sirius 6.3.0. In practice this means that once opened and saved with Sirius 6.3.1, aird files can no longer be opened with Sirius 6.3.0 or earlier.

User-Visible Changes

They are now drawn on top of the rest of the diagram elements so that they are always completely visible:

Developer-Visible Changes

Changes in org.eclipse.sirius.diagram

Migrations

Translation Keys Changes

See this document for the complete list of message keys added or removed in Sirius 6.3.1.

Changes in Sirius 6.3.0

User-Visible Changes

Specifier-Visible Changes

Developer-Visible Changes

Changes in org.eclipse.sirius

In case of migration the method org.eclipse.sirius.business.api.migration.AbstractRepresentationsFileMigrationParticipant.updateChangeId(DAnalysis, DRepresentation) is available to update change id. New migration participants created after this Sirius version must update the change id of the DRepresentationDescriptor of the DRepresentation they change. The API to do that is described in MigrationParticpant documentation: .

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.diagram.elk

Migrations

* on border of its node or border node * larger that its node or border node * on the North or South side. The goal of this migration participant is to keep centered labels visually fixed compared to previous version (see bugzilla #550382 for more details). The corresponding version, stored in attribute version of viewpoint:DAnalysis of the aird file, is 14.3.0.201908231800.

Changes in Sirius 6.2.2

There are no user-visible changes in Sirius 6.2.2 compared to 6.2.1. The only changes are internal and related either to the build process or to the automated tests.

Changes in Sirius 6.2.1

Developer-Visible Changes

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.tests.swtbot.support

Changes in Sirius 6.2.0

User-Visible Changes

Specifier-Visible Changes

Developer-Visible Changes

Changes in org.eclipse.sirius.common

setFieldVisibleWithoutException(Class<? extends Object>, String), getClassForNameWithoutException(String), instantiateWithoutException(String, Class<?>[], Object[]), getFieldValueWithoutException(Object, String), getFieldValueWithoutException(Class<? extends Object>, String), and getFieldValueWithoutException(Object, String, Class<? extends Object>).

Changes in org.eclipse.sirius.common.ui

Changes in org.eclipse.sirius.diagram.layoutdata

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.ui.editor

Changes in org.eclipse.sirius.diagram.sequence

Changes in org.eclipse.sirius.ecore.extender

Changes in org.eclipse.sirius.ext.gmf.runtime

Changes in org.eclipse.sirius.tests.swtbot.support

Changes in Sirius 6.1.2

User-Visible Changes

Developer-Visible Changes

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.diagram.ui

setLayoutConfiguration(CustomLayoutConfiguration). It allows any layout provider to be aware of any VSM layout configuration that should be used.

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.common

Changes in Sirius 6.1.1

Changes in org.eclipse.sirius.diagram

Changes in Sirius 6.1.0

User-Visible Changes

Specifier-Visible Changes

Previously, it was possible to add new menus and actions at the end of the contextual menu:

Now, it is possible to:

Refer to the specifier documentation for details.

Developer-Visible Changes

IMPORTANT Note that all plug-ins in the Sirius Server feature ( org.eclipse.sirius.server.* and org.eclipse.sirius.services.*) are still considered experimental in this version. In particular, all APIs (Java, HTTP, WebSocket) they provide should be treated as provisional even if they are exposed publicly in *.api.* packages. We reserve the right to modify them in incompatible ways even in future maintenance versions.

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.diagram.sequence.ui

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius.tests.swtbot.support

Migrations

Translation Keys Changes

See this document for the complete list of message keys added or removed in Sirius 6.1.0.

Changes in Sirius 6.0.0

User-Visible Changes

Specifier-Visible Changes

Developer-Visible Changes

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.tests.junit.support

Changes in org.eclipse.sirius.tests.swtbot.support

Migrations

Translation Keys Changes

See this document for the complete list of message keys added or removed in Sirius 6.0.

Changes in Sirius 5.1.1

User-Visible Changes

Developer-Visible Changes

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.diagram.ui

SiriusEditPlugin.getPlugin().getPreferenceStore().setDefault(SiriusUIPreferencesKeys.PREF_SCALE_LEVEL_DIAGRAMS_ON_EXPORT.name(),0); 

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.tests.junit.support

testcase.

Changes in Sirius 5.1.0

User-Visible Changes

Specifier-Visible Changes

Developer-Visible Changes

Migrations

Translation Keys Changes

See this document for the complete list of message keys added or removed in Sirius 5.0.

Representations lazy loading (experimental).

A new mode (currently experimental) is available to load representations on demand and not during session opening. This feature implies to serialize Sirius representations in separate resources. This mode can be activated by setting the system property createLocalRepresentationInSeparateResource at true. For more detail, see the developer documentation: Representations lazy loading (experimental).

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.ext.emf.edit

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.ui.editor

Changes in Sirius 5.0.1

Sirius 5.0.1 is a maintenance release with only bugfixes and small tweaks to the UI of the aird editor.

Changes in Sirius 5.0.0

User-Visible Changes

Developer-Visible Changes

Specifier-Visible Changes

Migrations

Translation Keys Changes

See this document for the complete list of message keys added or removed in Sirius 5.0.

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius.common.ui

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.table

Changes in org.eclipse.sirius.tree.ui

Changes in org.eclipse.sirius.ui.editor

This plugin is new in Sirius 5.0. It provides a session editor showing loaded models, representations and viewpoint activation status of the session. It has functionalities allowing to change the viewpoint activation status, to create/remove representations or to load unload external models. The graphical block showing loaded models is integrated with CNF. You can provide content extension to its viewer by using an id matching the pattern org.eclipse.sirius.ui.editor.graphicalcomponents.semanticModelsViewer.contentExtension.*. You also can provide action extension by using an id matching the pattern org.eclipse.sirius.ui.editor.graphicalcomponents.semanticModelsViewer.actionExtension.*. The extension will be selectable/unselectable by using a Customize View button on the models block header.

Changes in org.eclipse.sirius.properties.core

Changes in org.eclipse.sirius.ui.properties

Changes in org.eclipse.sirius.editor.properties

Changes in org.eclipse.sirius.tests.junit.support

Changes in org.eclipse.sirius.tests.swtbot.support

final AtomicBoolean dragFinished = new AtomicBoolean(false);
editor.dragWithKey(start.x, start.y, endpoint.x, endpoint.y, SWT.F3, dragFinished);
// Wait that the drag is done (the async Runnable simulating the
// drag)
bot.waitUntil(new ICondition() {
    @Override
    public boolean test() throws Exception {
        return dragFinished.get();
    }

    @Override
    public void init(SWTBot bot) {
    }

    @Override
    public String getFailureMessage() {
        return "The drag'n'drop operation has not finished.";
    }
});
// Wait that the figures are redrawn. In a fast environment, figures
// are not really redrawn and the rest of the test is not reliable.
SWTBotUtils.waitAllUiEvents();

Changes in Sirius 4.1.2

User-Visible Changes

Developer-Visible Changes

org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager.getFormatData(FormatDataKey) It is replaced by org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.getFormatData(FormatDataKey, RepresentationElementMapping) to better handle copy/paste format cases.

org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager.addFormatData(FormatDataKey, AbstractFormatData) It is replaced by org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.addFormatData(FormatDataKey, RepresentationElementMapping, AbstractFormatData) to better handle copy/paste format cases.

Changes in Sirius 4.1.1

User-Visible Changes

Developer-Visible Changes

Changes in Sirius 4.1.0

User-Visible Changes

If a viewpoint has been defined with a more recent version of Sirius than the one you are using, the ViewpointRegistry will not register it and a warning is logged in the error log view to inform the user.

Specifier-Visible Changes

Developer-Visible Changes

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.ext.gmf.runtime

Changes in org.eclipse.sirius.tests.junit.support

Changes in org.eclipse.sirius.tests.swtbot.support

Changes in org.eclipse.sirius.properties

Changes in org.eclipse.sirius.ui.properties

Changes in org.eclipse.sirius.ecore.extender

Changes in Sirius 4.0.0

User-Visible Changes

Specifier-Visible Changes

Once this is done, you can find the actual documentation in the Sirius Specifier Manual, under the Properties View section.

Developer-Visible Changes

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.ext.emf.ui

Changes in org.eclipse.sirius.ext.gmf.runtime

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.tests.junit.support

Changes in org.eclipse.sirius.tests.swtbot.support

Changes in org.eclipse.sirius.common.xtext

Changes in org.eclipse.sirius.editor

Changes in Sirius 3.1.0

User-Visible Changes

Sample before Sirius 3.1:

Same sample since Sirius 3.1:


Specifier-Visible Changes

Developer-Visible Changes

Partial support for internationalization

Sirius 3.1 introduces partial support for internationalization: all literal strings from the runtime part of Sirius are now externalized and can be localized by third parties by providing the appropriate “language packs” as OSGi fragments. Note that this does not concern the VSM editor’s UI, the VSMs themselves, or the parts of the UI inherited from Eclipse/EMF/GEF/GMF and other libraries and frameworks used by Sirius.

Some API changes were required to enable this. While technically breaking changes if interpreting strictly the OSGi versioning rules, the major version number of the impacted bundles was not incremented as the changes only concern classes that should not impact the vast majority of users. Most breaking changes concern the plug-in/activator classes from each bundle. They are:

Additional non-breaking changes:

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.synchronizer

Changes in org.eclipse.sirius.tests.junit.support

Changes in org.eclipse.sirius.tests.swtbot.support

Changes in org.eclipse.sirius.ext.gef

Changes in org.eclipse.sirius.ext.jface

Changes in org.eclipse.sirius.ext.gmf.runtime

Changes in Sirius 3.0.0

User-Visible Changes

Specifier-Visible Changes

Developer-Visible Changes

The most important and impacting changes in this release are (details below in plug-in specific sections):

Packaging changes:

Other changes:

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius.common.ui

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.ecore.extender

Changes in org.eclipse.sirius.editor

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.table

Changes in org.eclipse.sirius.table.ui

Changes in org.eclipse.sirius.tree

Changes in org.eclipse.sirius.tree.ui

Changes in org.eclipse.sirius.synchronizer

Changes in org.eclipse.sirius.ext.swt

Changes in org.eclipse.sirius.ext.e3.ui

Changes in org.eclipse.sirius.ext.emf.tx

Changes in org.eclipse.sirius.eef.adapters

This plug-in now requires the version 1.5.0 of org.eclipse.emf.eef.runtime bundle.

Changes in org.eclipse.sirius.tests.junit.support

Changes in org.eclipse.sirius.tests.swtbot.support

New plug-ins

The following UI plug-ins has been added:

These plug-ins own the extension definitions related to perspective, views, newWizard, menus, contextual menus, editors and preference pages that were previously in org.eclipse.sirius.xxx.ui plug-ins.
Now, downstream projects can define features that do not contain org.eclipse.sirius.xxx.ui.ext, allowing them not have all that functionalities they may not want.

Changes in Sirius 2.0.0

User-Visible Changes

Example with this initial state before resizing:

Result after resizing without this feature (the edges have moved):

Result after resizing with this feature (the edges keep the same location):

Specifier-Visible Changes

API Changes

Changes in org.eclipse.sirius

org.eclipse.sirius.tools.api.command.InvalidPermissionCommand now can take several EObjects in constructor to throw a LockedInstanceException with several EObjects.

a common precommit/postcommit notifications filter to tree/table dialect.

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius.common.ui

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.tree.ui

Changes in org.eclipse.sirius.tree

Changes in org.eclipse.sirius.synchronizer

Changes in org.eclipse.sirius.ecore.extender

Changes in org.eclipse.sirius.ext.gmf.runtime

Changes in org.eclipse.sirius.tests.swtbot.support

Changes in org.eclipse.sirius.tests.support

Changes in Sirius 1.0.0 (from Sirius 1.0.0M7)

User-Visible Changes

Specifier-Visible Changes

API Changes

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.diagram.ui

Changes in org.eclipse.sirius.diagram.ui

Changes in Sirius 1.0.0M7 (from Sirius 1.0M6)

Specifier-Visible Changes

API Changes

Move diagram.ecore in its own plugin

This milestone (Sirius 1.0M7) includes the third, and final, step towards a full separation of the diagram-specific stuff out of the core of Sirius (see Step1 and Step2 for more details).

All classes related to diagrams in org.eclipse.sirius have been moved to org.eclipse.sirius.diagram.
All classes related to diagrams in org.eclipse.sirius.ui have been moved to org.eclipse.sirius.diagram.ui.
All classes related to diagrams in org.eclipse.sirius.editor have been moved to org.eclipse.sirius.editor.diagram.
In the same way, all classes related to UI in org.eclipse.diagram have been moved to org.eclipse.sirius.diagram.ui. To simplify this step almost all classes of org.eclipse.diagram have been moved in org.eclipse.sirius.diagram.ui (and probably not only UI classes). These classes have been moved in src-diag source folder to facilitate future work about moving some of these classes in org.eclipse.diagram again.

Unlike, the Step1, a simple “Organize Imports” operation is not enough. First, you will probably need to add dependencies to org.eclipse.sirius.diagram, org.eclipse.sirius.diagram.ui or org.eclipse.sirius.editor.diagram in the MANIFEST.MF of your projects that depend on Sirius diagram classes. The dependencies to add depend on what you really use.

Moved extension points

Several extension points have been moved:

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.diagram.sequence

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.ecore.extender

Changes in org.eclipse.sirius.ext.base

Changes in org.eclipse.sirius.synchronizer

Changes in org.eclipse.sirius.tests.support

Changes in Sirius 1.0.0M6 (from Sirius 1.0M5)

API Changes

High-level API for Automated Tests Using JUnit and SWTBot

Starting from version 1.0.0M6, Sirius includes high-level APIs to help creating automated tests using JUnit and/or SWTBot. These can be used either to test Sirius itself or to test Sirius-based modelers. These APIs are provided by two plug-ins:

Both plug-ins are only available if you install the new org.eclipse.sirius.tests feature.

Move diagram-specific EPackages into their own diagram.ecore model

This milestone (Sirius 1.0M6) includes the second step towards a full separation of the diagram-specific stuff out of the core of Sirius (see Step1 for more details).

This step is less impactful on your code than the first step. Nevertheless, some missed classes during first step have moved during this step:

The existing VSM ( *.odesign) and representations file ( *.aird) are automatically migrated.

Warning: If you have some code based on the root EPackage of an EClass, it may be necessary to adapt it. Example:

EPackage rootPackage = (EPackage) EcoreUtil.getRootContainer(element.eClass());
if (rootPackage != null && rootPackage.getNsURI().equals(ViewpointPackage.eINSTANCE.getNsURI())) {

should be adapted in

EPackage rootPackage = (EPackage) EcoreUtil.getRootContainer(element.eClass());
if (rootPackage != null && rootPackage.getNsURI().equals(DiagramPackage.eINSTANCE.getNsURI())) {

if element is a Diagram concept.

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.table

Changes in org.eclipse.sirius.tree

Changes in Sirius 1.0.0M5 (from Sirius 1.0M4)

User-Visible Changes

API Changes

Library Extensions

This milestone (Sirius 1.0M5) introduces several new plug-ins, collectively called “library extensions”. They are all named org.eclipse.sirius.ext.LIB, where LIB is the name of a library or component Sirius depends on. These plug-ins are used to isolate generic code which extends existing libraries with features and helpers needed for Sirius, but which do not depend on Sirius themselves. A relatively large part of the code in Sirius is of this kind: things that could/should be in EMF, GMF, Eclipse itself, etc. and which are not Sirius-specific but which make it easier to build Sirius itself. Sirius 1.0M5 introduces several of these library extensions and starts to fill them with existing classes which were “hidden” inside Sirius and are now exposed in library extensions. Most of the time, existing code which used the Sirius API will only need to:

  1. Add the necessary Import-Package (recommended) or Require-Bundle to depend on the library extension(s) where the code they use now lives;
  2. Perform a simple “Organize Imports” operation, which should find the classes and interfaces in their new locations.

Move diagram-specific EClasses into a separate EPackage

For historical reasons, the core Sirius metamodels defined in viewpoint.ecore contain both generic (dialect-independant like Viewpoint, RepresentationDescription, DAnalysis...) concepts and diagram-specific ones (e.g. DNode, EdgeStyle, ContainerCreationDescription...). The table and tree metamodels are more cleanly separated.
This milestone (Sirius 1.0M5) includes the first step towards a full separation of the diagram-specific stuff out of the core of Sirius. So many EClasses have been moved.

Most of the time, existing code which used these Sirius EClasses will only need to perform a simple “Organize Imports” operation, which should find the classes and interfaces in their new locations.
The “Organize imports” is not sufficient in case of imported classes existing several time in different packages ( EFactory classes for example with DescriptionFactory, or EPackage classes for example with DescriptionPackage). And in some cases ViewpointFactory (and ViewpointPackage) will have to be replaced by DiagramFactory (and DiagramPackage).

The Switch classes if overridden also require a particular attention.

The existing VSM ( *.odesign) and representations file ( *.aird) are automatically migrated.
Warning: Nevertheless, if you reference these Sirius concepts with the EPackage qualifier in your VSM ( *.odesign), in interpreted expressions for example, you must change viewpoint in diagram. For example viewpoint::DDiagramElement becomes diagram::DDiagramElement.

The impacted EPackages are :

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.common.ui

Changes in org.eclipse.sirius.table

Changes in org.eclipse.sirius.table.ui

Changes in org.eclipse.sirius.ui

Changes in Sirius 1.0.0M4 (from Sirius 0.9)

User-Visible Changes

API Changes

Sirius 1.0.0M4 includes a lots of API-breaking changes, as part of a global effort to improve the quality of the Sirius internals. In this milestone in particular, most of the APIs which were marked as deprecated in previous versions of Sirius (and before that of Viewpoint) have been either removed (if a replacement exists) or marked as non-deprecated (if no replacement exists yet).

Changes in org.eclipse.sirius.common

Changes in org.eclipse.sirius

Changes in org.eclipse.sirius.diagram

Changes in org.eclipse.sirius.ecore.extender

Changes in org.eclipse.sirius.ui

Changes in org.eclipse.sirius.table

Changes in org.eclipse.sirius.tree

Changes in Sirius 0.9.0

Version 0.9.0 is the first release under the Sirius name and under the Eclipse Foundation umbrella. Except for the few cases mentioned below (in the “Other API Changes”, “Specifier-Visible Changes” and “User-Visible Changes” sections), Sirius 0.9.0 is functionally equivalent to the latest version of Viewpoint (version 6.10), which was the name of the project before it was open sourced at Eclipse. See the rest of the documentation for the complete list of feature of the Sirius platform.

Migrating from Obeo Designer or Viewpoint to Sirius

If you have existing projects which used this technology before it became Eclipse Sirius and want to migrate to Sirius, you must:

  1. first migrate your projects and models to the latest pre-Sirius version of Viewpoint or Obeo Designer available to you (Viewpoint is the previous name of Sirius);
  2. then migrate those to Sirius 0.9.

The latest version of Viewpoint which was available in an Obeo Designer release is Viewpoint 6.8, released in Obeo Designer 6.2. Sirius 0.9 is based on Viewpoint 6.10, which was not released publicly.

If you were using Obeo Designer, you must thus first migrate your projects and models to Obeo Designer 6.2, and then consult the release notes for Viewpoint 6.9 and 6.10, which lists the API changes from Viewpoint 6.8 to 6.10.

Once your projects are compatible with the latest Viewpoint available to you, you can migrate to Sirius, first by updating your Viewpoint Specification Projects and plug-ins which use the Viewpoint APIs, then by updating any Modeling Project and representation files ( *.aird).

Migrating Viewpoint Specification Projects

Note that if you used Obeo Designer, you may have used the legacy Acceleo 2.x language for the computed expressions inside the *.odesign files (if your expressions are of the form <%something%> then you used the legacy language). That language is not supported anymore in Sirius 0.9, so you must migrate your expressions to use Acceleo 3 and/or the specialized interpreters ( var:, feature: and service:, see the documentation).

Migrating Modeling Projects and Representation Files

Plug-ins version numbers.

As of Sirius 0.9, and probably at least until Sirius 1.0 when the APIs will be more stable, all the bundles share the same version, which is also the version for the feature. If you used versioned dependencies to the old Viewpoint code (e.g. dependencies towards Viewpoint 6.8), you need to adjust the versions in your MANIFEST.MF files in addition to the namespaces.

Major namespace changes

In the context of the move as an official Eclipse project named Sirius, all the namespaces used in the code have changed.

Plug-in and features identifiers

All identifiers have changed to start with the org.eclipse.sirius namespace prefix. The tables below give the mapping between the Viewpoint plug-in and features identifiers and their Sirius equivalent.

Viewpoint 6.x plug-in Sirius 0.9 plug-in
fr.obeo.dsl.common org.eclipse.sirius.common
fr.obeo.dsl.common.acceleo.mtl org.eclipse.sirius.common.acceleo.mtl
fr.obeo.dsl.common.acceleo.mtl.ide org.eclipse.sirius.common.acceleo.mtl.ide
fr.obeo.dsl.common.ocl org.eclipse.sirius.common.ocl
fr.obeo.dsl.common.ui org.eclipse.sirius.common.ui
fr.obeo.dsl.common.xtext org.eclipse.sirius.common.xtext
fr.obeo.dsl.viewpoint org.eclipse.sirius
fr.obeo.dsl.viewpoint.diagram org.eclipse.sirius.diagram
fr.obeo.dsl.viewpoint.diagram.layoutdata org.eclipse.sirius.layoutdata
fr.obeo.dsl.viewpoint.diagram.sequence org.eclipse.sirius.sequence
fr.obeo.dsl.viewpoint.diagram.sequence.edit org.eclipse.sirius.sequence.edit
fr.obeo.dsl.viewpoint.diagram.sequence.ui org.eclipse.sirius.sequence.edit.ui
fr.obeo.dsl.viewpoint.doc org.eclipse.sirius.doc
fr.obeo.dsl.viewpoint.editor org.eclipse.sirius.editor
fr.obeo.dsl.viewpoint.editor.sequence org.eclipse.sirius.editor.sequence
fr.obeo.dsl.viewpoint.editor.table org.eclipse.sirius.editor.table
fr.obeo.dsl.viewpoint.editor.tree org.eclipse.sirius.editor.tree
fr.obeo.dsl.viewpoint.eef.adapters org.eclipse.sirius.eef.adapters
fr.obeo.dsl.viewpoint.interpreter org.eclipse.sirius.interpreter
fr.obeo.dsl.viewpoint.table org.eclipse.sirius.table
fr.obeo.dsl.viewpoint.table.ui org.eclipse.sirius.table.ui
fr.obeo.dsl.viewpoint.tree org.eclipse.sirius.tree
fr.obeo.dsl.viewpoint.tree.ui org.eclipse.sirius.tree.ui
fr.obeo.dsl.viewpoint.ui org.eclipse.sirius.ui
fr.obeo.mda.ecore.extender org.eclipse.sirius.ecore.extender
fr.obeo.mda.pim.ecore.design org.eclipse.sirius.sample.ecore.design
org.eclipselab.emf.synchronizer org.eclipse.sirius.synchronizer
Viewpoint 6.x feature Sirius 0.9 feature
fr.obeo.dsl.viewpoint.runtime org.eclipse.sirius.runtime
fr.obeo.dsl.viewpoint.runtime.acceleo org.eclipse.sirius.runtime.acceleo
fr.obeo.dsl.viewpoint.runtime.ide.eef org.eclipse.sirius.runtime.ide.eef
fr.obeo.dsl.viewpoint.runtime.ide.ui org.eclipse.sirius.runtime.ide.ui
fr.obeo.dsl.viewpoint.runtime.ide.ui.acceleo org.eclipse.sirius.runtime.ide.ui.acceleo
fr.obeo.dsl.viewpoint.runtime.ide.xtext org.eclipse.sirius.runtime.ide.xtext
fr.obeo.dsl.viewpoint.runtime.ocl org.eclipse.sirius.runtime.ocl
fr.obeo.dsl.viewpoint.specifier.ide.ui org.eclipse.sirius.specifier.ide.ui
fr.obeo.dsl.viewpoint.specifier.ide.ui.acceleo org.eclipse.sirius.specifier.ide.ui.acceleo
fr.obeo.dsl.viewpoint.doc.feature org.eclipse.sirius.doc.feature

Java Packages and Classes Names

The Java package names have changed to start with the identifier of the plug-in they are defined in (which has changed). A simple “Source > Organize Imports” on your source folders should find most classes you used in their new namespace.

The Viewpoint code base and APIs used the term “Viewpoint” both for the name of the product and for the name of the concept. When it refered to the name of the product, the names where changed to use “Sirius” instead (for example, ViewpointControlCommand is now SiriusControlCommand).

Models namespace URIs

All namespace URIs have also been changed from “http://www.obeo.fr/dsl/viewpoint*” to “http://www.eclipse.org/sirius/”.

If you have created VSM file (.odesign) or representations file (.aird) with Viewpoint, the changes of the namespace URIs will be automatically migrated during the loading of your VSM or your representations file. These new nsURIs will be stored physically in the file during the first save. If the file is not saved, the automatic migration will be replayed at the next opening.

Nature ID

The modeling project has a specific nature ( org.eclipse.sirius.nature.modelingproject).
If you have modeling project created with Viewpoint, you must launch the action “Configure/Convert to Modeling Project” to replace old nature id ( fr.obeo.dsl.viewpoint.nature.modelingproject) by the new one.
If you have many modeling projects to “migrate”, you can easily make a script to replace fr.obeo.dsl.viewpoint.nature.modelingproject by org.eclipse.sirius.nature.modelingproject in all .project file of each modeling projects.

Other API Changes

This section only lists API changes in Sirius 0.9.0 compared to the latest version of Viewpoint it is based on, i.e. Viewpoint 6.10.

API Added

API Removal

void open();
void addSemanticResource(Resource newResource, boolean addCrossReferencedResources);
void addSemanticResource(URI semanticModelURI, boolean addCrossReferencedResources);
void addSemanticResource(URI semanticModelURI, boolean addCrossReferencedResources, IProgressMonitor monitor);
void removeSemanticResource(Resource resource, boolean removeCrossReferencedResources);
void removeSemanticResource(Resource semanticResource);
void save();
void close();
Collection<Viewpoint> getSelectedViewpoints();
void createView(Viewpoint viewpoint, Collection<EObject> semantics);
void createView(Viewpoint viewpoint, Collection<EObject> semantics, boolean createNewRepresentations);
void addSelectedView(DView view) throws IllegalArgumentException;
void removeSelectedView(DView view);

Specifier-Visible Changes

New variables are available for sizeComputationExpression to compute the size of edges on EdgeStyleDescription and BracketEdgeStyleDescription:

User-Visible Changes