blob: 278078f6b6de843e04a5332603dda8277234ae6c [file] [log] [blame]
<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Release Notes</title>
<link type="text/css" rel="stylesheet" href="/help/topic/org.eclipse.sirius.doc/doc/resources/bootstrap.css"/>
<link type="text/css" rel="stylesheet" href="/help/topic/org.eclipse.sirius.doc/doc/resources/custom.css"/>
</head>
<body>
<h1 id="ReleaseNotesforSirius">Release Notes for Sirius</h1>
<ol class="toc" style="list-style: disc;">
<li>
<a href="#ReleaseNotesforSirius">Release Notes for Sirius</a>
<ol style="list-style: disc;">
<li>
<a href="#sirius1.0M7">Changes in Sirius 1.0.0M7 (from Sirius 1.0M6)</a>
</li>
<li>
<a href="#sirius1.0M6">Changes in Sirius 1.0.0M6 (from Sirius 1.0M5)</a>
</li>
<li>
<a href="#sirius1.0M5">Changes in Sirius 1.0.0M5 (from Sirius 1.0M4)</a>
</li>
<li>
<a href="#sirius1.0M4">Changes in Sirius 1.0.0M4 (from Sirius 0.9)</a>
</li>
<li>
<a href="#sirius0.9">Changes in Sirius 0.9.0</a>
</li>
</ol>
</li>
</ol>
<p>This document contains the release notes for all major releases of Sirius.</p>
<h2 id="sirius1.0M7">Changes in Sirius 1.0.0M7 (from Sirius 1.0M6)</h2>
<h3 id="APIChanges">API Changes</h3>
<h4 id="separationOfDiagramSpecificConcept-step3">Move diagram.ecore in its own plugin</h4>
<p>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
<a href="#separationOfDiagramSpecificConcept-step1">Step1</a> and
<a href="#separationOfDiagramSpecificConcept-step2">Step2</a> for more details).
</p>
<p>All classes related to diagrams in
<code>org.eclipse.sirius</code> have been moved to
<code>org.eclipse.sirius.diagram</code>.
<br/>All classes related to diagrams in
<code>org.eclipse.sirius.ui</code> have been moved to
<code>org.eclipse.sirius.diagram.ui</code>.
<br/>All classes related to diagrams in
<code>org.eclipse.sirius.editor</code> have been moved to
<code>org.eclipse.sirius.editor.diagram</code>.
<br/>In the same way, all classes related to UI in
<code>org.eclipse.diagram</code> have been moved to
<code>org.eclipse.sirius.diagram.ui</code>. To simplify this step almost all classes of
<code>org.eclipse.diagram</code> have been moved in
<code>org.eclipse.sirius.diagram.ui</code> (and probably not only UI classes). These classes have been moved in
<code>src-diag</code> source folder to facilitate future work about moving some of these classes in
<code>org.eclipse.diagram</code> again.
</p>
<p>Unlike, the
<a href="#separationOfDiagramSpecificConcept-step1">Step1</a>, a simple &#171;Organize Imports&#187; operation is not enough. First, you will probably need to add dependencies to
<code>org.eclipse.sirius.diagram</code>,
<code>org.eclipse.sirius.diagram.ui</code> or
<code>org.eclipse.sirius.editor.diagram</code> in the MANIFEST.MF of your projects that depend on Sirius diagram classes. The dependencies to add depend on what you really use.
</p>
<ul>
<li>
<code>ViewpointRegistry.getDiagramDescriptionMappingsRegistry()</code> has been removed. You can now directly call
<code>org.eclipse.sirius.diagram.business.api.componentization.DiagramDescriptionMappingsRegistry.INSTANCE.DialectServices</code>.
</li>
<li>New methods have been added to
<code>IRepairParticipant</code> to isolate specific diagram repair steps.
<ul>
<li>
<code>removeElements(DView, TransactionalEditingDomain, IProgressMonitor)</code>: Removes elements from the
<code>DView</code> that will be recreated by the refresh (called later).
</li>
<li>
<code>cleanRepresentations(EList&lt;DRepresentation&gt;)</code>: Cleans representations (specific representation states like filters) and eventually returns some of them if they need to be removed.
</li>
<li>
<code>refreshRepresentations(DAnalysis, DView)</code>: This method is only implemented by the diagram participant. To simplify work for this step, this method manages core and diagram elements. It should be clean up once the split will be done.
</li>
</ul>
</li>
<li>To break the dependencies from Core to Diagram, several services have been added to:
<ul>
<li>
<code>DialectServices</code>, with default implementations in
<code>AbstractRepresentationDialectServices</code>:
<ul>
<li>
<code>createTask(CommandContext, ModelAccessor, ModelOperation, Session, UICallBack)</code>: Creates a new task corresponding to the ModelOperation. Only needed for ModelOperation specific to one dialect.
</li>
<li>
<code>handles(RepresentationExtensionDescription)</code>: Tells if the current dialect handles the given
<code>RepresentationExtensionDescription</code>.
</li>
<li>
<code>invalidateMappingCache()</code>: Allows each dialect to clean and compute again its proper mapping cache.
</li>
<li>
<code>allowsEStructuralFeatureCustomization(EObject)</code>: allows dialects to indicate if they allow EStrucuralFeaturesCustomization for the given VSM element. It is currently supported for style descriptions in diagrams only.
</li>
</ul>
</li>
<li>
<code>DialectUIServices</code>
<ul>
<li>
<code>canHandle(RepresentationDescription)</code> and
<code>canHandle(RepresentationExtensionDescription)</code>: tell whether the dialect is able to handle the given representation description or extension description.
</li>
<li>
<code>completeToolTipText(String, EObject)</code> allows the dialect to customize the tooltip displayed in a property section of a given VSM element.
</li>
</ul>
</li>
<li>
<code>DialectUIManager</code>
<ul>
<li>
<code>canExport(DRepresentation, ExportFormat)</code>: New method returning true if at least one dialect is able to export this representation to this format, false otherwise.
</li>
</ul>
</li>
<li>
<code>IDiagramDescriptionProvider</code>
<ul>
<li>
<code>completeToolTipText(String, EObject)</code> allows the diagram type to customize the tooltip displayed in a property section of a given VSM element.
<code>SequenceDiagramTypeProvider</code> implements this method to mention some Sequence specific variable available in core and diagram tool preconditions in the context of a Sequence diagram.
</li>
</ul>
</li>
</ul>
</li>
<li>All methods of
<code>SiriusHelper</code> concerning diagrams have been moved to
<code>org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramHelper</code>.
</li>
<li>All methods of
<code>SiriusUtil</code> concerning diagrams have been moved to
<code>org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramUtil</code>.
</li>
<li>All methods of
<code>org.eclipse.sirius.business.api.query.EObjectQuery</code> concerning diagrams have been moved to
<code>org.eclipse.sirius.diagram.business.api.query.EObjectQuery</code>.
</li>
<li>
<a href="https://wiki.eclipse.org/Sirius/Modularization#Library_Extensions">Library Extensions</a>:
<ul>
<li>All methods depending only on draw2d of
<code>org.eclipse.sirius.diagram.ui.tools.api.draw2d.ui.figures.FigureUtilities</code> have been moved in
<code>org.eclipse.sirius.ext.draw2d.figure.FigureUtilities</code>
</li>
<li>
<code>fr.obeo.dsl.viewpoint.diagram.ui.tools.api.layout.GraphicalHelper</code> has been moved to
<code>org.eclipse.sirius.ext.gmf.runtime.editparts.GraphicalHelper</code>.
</li>
<li>
<code>org.eclipse.sirius.diagram.part.SiriusDiagramEditorPlugin</code> has been renamed into
<code>org.eclipse.sirius.diagram.DiagramPlugin</code>. This plugin is not a UI plugin any more,
<code>org.eclipse.sirius.diagram.ui.provider.DiagramUIPlugin.getPlugin()</code> should be used instead for UI related aspects. For example
<code>DiagramUIPlugin.getPlugin().getPreferenceStore()</code> should be used instead of
<code>DiagramPlugin.getDefault().getPreferenceStore()</code> or
<code>SiriusDiagramEditorPlugin.getInstance().getPreferenceStore()</code>.
</li>
</ul>
</li>
<li>
<code>DeleteFromDiagramContributionItem</code> and
<code>SetStyleToWorkspaceImageContributionItem</code> have been merged into
<code>SiriusActionBarActionContributionItem</code>
</li>
<li>Images
<ul>
<li>Images of
<code>org.eclipse.sirius.diagram</code> have been moved to
<code>org.eclipse.sirius.diagram.ui</code>. In your code, you should replace
<code>SiriusDiagramEditorPlugin.getInstance().getImage()</code> and
<code>DiagramPlugin.getInstance().getImage()</code> by
<code>DiagramUIPlugin.getPlugin().getImage()</code>. That is the case for all methods concerning images in
<code>DiagramPlugin</code> (previously named
<code>SiriusDiagramEditorPlugin</code>).
</li>
<li>Some images of
<code>org.eclipse.sirius.ui</code> have been moved to
<code>org.eclipse.sirius.diagram.ui</code>, the corresponding constants in
<code>org.eclipse.sirius.ui.tools.api.image.ImagesPath</code> have been moved in
<code>org.eclipse.sirius.diagram.ui.tools.api.image.DiagramImagesPath</code>.
</li>
</ul>
</li>
<li>The method
<code>static void refreshSelection(DiagramElementMapping)</code> from
<code>org.eclipse.sirius.editor.tools.api.menu.AbstractEObjectRefactoringAction</code> is not available anymore.
</li>
<li>Preferences
<ul>
<li>
<code>org.eclipse.sirius.business.api.preferences.SiriusPreferencesKeys.PREF_AUTO_PIN_ON_CREATE</code> has been moved to
<code>org.eclipse.sirius.diagram.tools.api.preferences.SiriusDiagramPreferencesKeys</code>.
</li>
</ul>
</li>
</ul>
<h5 id="Movedextensionpoints">Moved extension points</h5>
<p>Several extension points have been moved:</p>
<ul>
<li>from
<code>org.eclipse.sirius</code> to
<code>org.eclipse.sirius.diagram</code>. You should change the id of the following extension point in your plugin.xml (
<code>org.eclipse.sirius.xxxx</code> replaced by
<code>org.eclipse.sirius.diagram.xxxx</code>):
<ul>
<li>diagramTypeProvider</li>
</ul>
</li>
<li>from
<code>org.eclipse.sirius.diagram</code> to
<code>org.eclipse.sirius.diagram.ui</code>. You should change the id of the following extension points in your plugin.xml (
<code>org.eclipse.sirius.diagram.xxxx</code> replaced by
<code>org.eclipse.sirius.diagram.ui.xxxx</code>):
<ul>
<li>diagramIdentifierProvider</li>
<li>imageSelector</li>
<li>layoutDataManager</li>
<li>layoutProvider</li>
<li>styleConfigurationProvider</li>
<li>viewOrderingProvider</li>
</ul>
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius">Changes in
<code>org.eclipse.sirius</code>
</h4>
<ul>
<li>
<code>org.eclipse.sirius.business.api.query.URIQuery.isSiriusEnvironmentURI</code> has been replaced by
<ul>
<li>
<code>isSiriusCoreEnvironmentURI</code> which checks that the given resource is the Sirius core Environment.xmi file.
</li>
<li>and
<code>isEnvironmentURI</code> which checks that the given resource has an
<code>environment</code> uri scheme.
</li>
</ul>
</li>
<li>In
<code>org.eclipse.sirius.business.api.dialect.DialectManager</code>
<ul>
<li>the setter
<code>setRefreshActivatedOnRepresentationOpening(boolean)</code> has been removed as the refresh on opening should be managed from the corresponding preference
<code>org.eclipse.sirius.ui.business.api.preferences.SiriusUIPreferencesKeys.PREF_REFRESH_ON_REPRESENTATION_OPENING</code>.
</li>
<li>
<code>isRefreshActivatedOnRepresentationOpening()</code> has been moved into
<code>org.eclipse.sirius.ui.business.api.dialect.DialectUIManager</code> as it refers to an UI behavior.
</li>
</ul>
</li>
<li>The
<code>DRepresentation.createContents()</code> (both variants) and
<code>DRepresentation.updateContents()</code> EOperations have been removed. They were not used anywhere.
</li>
<li>The
<code>org.eclipse.sirius.business.api.modelingproject.ModelingProject.MODELING_PROJECT_PREDICATE</code> constant has been removed to reduce Sirius&#8217;s exposure of Guava&#8217;specific types. Use the equivalent
<code>ModelingProject.hasModelingProjectNature()</code> method instead.
</li>
<li>The method
<code>org.eclipse.sirius.business.api.query.EObjectQuery.getInverseReferences(Predicate&lt;Setting&gt;)</code> has been removed from API to avoid exposing a the Guava-specific
<code>Predicate</code> type.
</li>
<li>In class
<code>org.eclipse.sirius.business.api.dialect.description.AbstractInterpretedExpressionQuery</code>, the protected methods
<code>appendAllLocalVariableDefinitions()</code> and
<code>appendEditMaskVariables()</code> now take a
<code>Map&lt;String, Collection&lt;String&gt;&gt;</code> instead of a Guava-specific
<code>Multimap</code>. The new protected method
<code>addDefinition()</code> can be used to make it easier to add entries to the map. Subclasses in Sirius have been updated to match the new signature.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram">Changes in
<code>org.eclipse.sirius.diagram</code>
</h4>
<ul>
<li>The references
<code>DNode.ownedDetails</code> and
<code>DDiagramElementContainerImpl.ownedDetails</code> have been removed from the metamodel, along with the corresponding implementation methods. They were not used in practice.
</li>
<li>The
<code>DDiagramLink</code> EClass has been removed from the meta-model, along with the corresponding generated Java code. It was not used in practice.
</li>
<li>The
<code>DDiagram.clean()</code> EOperation has been removed. It was deprecated and not used anymore. All the Java code which existed only to help in the implementation of that operation has also been removed. This includes:
<ul>
<li>The
<code>org.eclipse.sirius.diagram.tools.api.validation.constraint.AbstractDDiagramConstraint.activate()</code> and
<code>deactivate()</code> methods.
</li>
<li>The
<code>org.eclipse.sirius.business.api.helper.SiriusHelper.unSetHarmlessDanglingReferences()</code> method.
</li>
<li>The
<code>org.eclipse.sirius.tools.api.profiler.SiriusTasksKey.CLEANING_NODES_KEY</code> constant.
</li>
</ul>
</li>
<li>The
<code>DSemanticDiagram.getRootContents()</code> method (which was deprecated) has been removed.
</li>
<li>The
<code>DDiagram.findDiagramElements()</code> EOperation has been removed. It was deprecated and always returned an empty list if called.
</li>
<li>The
<code>DDiagram.info</code> attribute has been removed. It was not used anywhere.
</li>
<li>The
<code>DDiagram.subDiagram</code> reference has been removed. It was not used anywhere.
</li>
<li>The
<code>DDiagramElement.isFold()</code>] EOperation has been removed. It was deprecated and edge folding has long been implemented using different mechanisms.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram.sequence">Changes in
<code>org.eclipse.sirius.diagram.sequence</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.diagram.sequence.util.SiriusFunctions</code> class has been removed. It was not used anywhere.
</li>
<li>The
<code>org.eclipse.sirius.diagram.sequence.util.NotificationQuery</code> class has been removed. It had been exposed by mistake.
</li>
<li>The
<code>org.eclipse.sirius.diagram.sequence.business.internal.util.NotationPredicate</code> class has been removed from API, to reduce Sirius&#8217;s exposure of Guava&#8217;specific types.
</li>
<li>All the static methods in
<code>org.eclipse.sirius.diagram.sequence.util.Range</code> which returned Guava-specific types (
<code>Function</code> or
<code>Ordering</code>) have been removed from API.
</li>
<li>
<code>org.eclipse.sirius.diagram.sequence.template.AbstractRule</code> no longer inherits from Guava&#8217;s
<code>Function</code> interface, but from the news ad-hoc
<code>org.eclipse.sirius.diagram.sequence.template.Transformer</code> interface instead, which is functionally equivalent.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li>
<code>org.eclipse.sirius.ui.business.api.preferences.DesignerUIPreferencesKeys</code> has been renamed into
<code>org.eclipse.sirius.ui.business.api.preferences.SiriusUIPreferencesKeys</code>
</li>
<li>Methods
<code>getMissingDependencies()</code> and
<code>getMissingDependenciesErrorMessage()</code> from
<code>org.eclipse.sirius.ui.business.api.viewpoint.ViewpointSelection</code> now use
<code>Map&lt;String, Collection&lt;String&gt;&gt;</code> instead of Guava&#8217;s
<code>Multimap</code>.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ext.base">Changes in
<code>org.eclipse.sirius.ext.base</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.ext.base.Options.isSome()</code> method has been removed to reduce Sirius&#8217;s exposure of Guava&#8217;specific types. Use
<code>Option.some()</code> directly instead.
</li>
<li>
<code>org.eclipse.sirius.ext.base.relations.Relation</code> no longer inherits from
<code>com.google.common.base.Function</code>, but keeps the same API otherwise.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.synchronizer">Changes in
<code>org.eclipse.sirius.synchronizer</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.synchronizer.Mapping.IS_CHECK_ONLY</code> constant has been removed to reduce Sirius&#8217;s exposure of Guava&#8217;specific types. Use
<code>!Mapping.getCreator().some()</code> instead.
</li>
<li>The
<code>Maybe</code> and
<code>MaybeFactory</code> types have been removed, and all their uses in
<code>org.eclipse.sirius.synchronizer</code> converted to the equivalent
<code>Option</code> and
<code>Options</code> types from
<code>org.eclipse.sirius.ext.base</code>.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tests.support">Changes in
<code>org.eclipse.sirius.tests.support</code>
</h4>
<ul>
<li>The
<code>shouldReloadSession</code> boolean parameter has been removed from
<code>org.eclipse.sirius.tests.support.api.SiriusTestCase.disableUICallBackOnDialectEditor(DialectEditor)</code>, it was not used and could let the tester think he can change the reload behavior from the dialog factory.
</li>
<li>
<code>org.eclipse.sirius.tests.swtbot.support.api.AbstractSiriusSwtBotGefTestCase.refreshDiagram()</code> has been removed. This method did not handle the non dynamic tabbar and was a duplicate of manualRefresh(). Callers must select the diagram before the call,the click(0,0) instruction was not sufficient in several cases (for example if there is a node/container in (0,0)).
</li>
<li>
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotDesignerEditor</code> has been renamed into
<code>SWTBotSiriusDiagramEditor</code>.
</li>
<li>
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotDesignerGefViewer</code> has been renamed into
<code>SWTBotSiriusGefViewer</code>.
</li>
<li>
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotDesignerHelper</code> has been renamed into
<code>SWTBotSiriusHelper</code>.
</li>
<li>Methods
<code>AbstractSiriusSwtBotGefTestCase.openRepresentation</code> with
<code>SWTBotDesignerEditor</code> as returned type have been renamed into
<code>openDiagram</code>, marked as deprecated and replaced with methods returning a
<code>SWTBotEditor</code>. You can now use methods
<code>openRepresentation</code> for DTree or DTable. If the
<code>expectedRepresentationClass</code> is
<code>DDiagram.class</code>, the returned type will be a
<code>SWTBotSiriusDiagramEditor</code>.
</li>
<li>Method
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusHelper.getDesignerEditor(String)</code> has been renamed into
<code>getSiriusDiagramEditor</code>.
</li>
<li>Add
<code>SWTBotSiriusHelper.getSiriusEditor(String)</code> to return the
<code>SWTBotEditor</code> (diagram, tree or table editor) with the given name. The name is the name as displayed on the editor&#8217;s tab in Eclipse. In case of multiple editors with the same fileName, the same method with an additional parameter, the index, has been added
<code>SWTBotSiriusHelper.getSiriusEditor(String, int)</code>.
</li>
<li>Change the behavior of
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor.zoom(ZoomLevel)</code> to directly change the zoom level of the current diagram editor without trying to change it from the zoom combo in the tabbar.
</li>
<li>Add
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor.zoomFromToolbar(ZoomLevel)</code> to add possibility to explicitly change the zoom level from the tabbar.
</li>
</ul>
<h2 id="sirius1.0M6">Changes in Sirius 1.0.0M6 (from Sirius 1.0M5)</h2>
<h3 id="APIChanges2">API Changes</h3>
<h4 id="tests">High-level API for Automated Tests Using JUnit and SWTBot</h4>
<p>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:</p>
<ul>
<li>
<code>org.eclipse.sirius.tests.support</code>: support code for JUnit (plug-in) tests using Sirius.
</li>
<li>
<code>org.eclipse.sirius.tests.swtbot.support</code>: support code for SWTBot tests using Sirius.
</li>
</ul>
<p>Both plug-ins are only available if you install the new
<code>org.eclipse.sirius.tests</code> feature.
</p>
<h4 id="separationOfDiagramSpecificConcept-step2">Move diagram-specific EPackages into their own diagram.ecore model</h4>
<p>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
<a href="#separationOfDiagramSpecificConcept-step1">Step1</a> for more details).
</p>
<p>This step is less impactful on your code than the first step. Nevertheless, some missed classes during first step have moved during this step:</p>
<ul>
<li>Remove
<code>DDiagramSet</code> and its corresponding reference from
<code>DRepresentationContainer</code>: No longer needed
</li>
<li>
<code>DragAndDropTarget</code>,
<code>DragAndDropTargetDescription</code> and
<code>ContainerDropDescription</code> have been moved to diagram EPackage.
</li>
<li>
<code>viewpoint/diagram/description/validation</code> EPackage has been moved to
<code>viewpoint/description/validation</code>: revert what was done in step 1 by mistake.
</li>
</ul>
<p>The existing VSM (
<code>*.odesign</code>) and representations file (
<code>*.aird</code>) are automatically migrated.
</p>
<p>Warning: If you have some code based on the root EPackage of an EClass, it may be necessary to adapt it. Example:</p>
<pre>EPackage rootPackage = (EPackage) EcoreUtil.getRootContainer(element.eClass());
if (rootPackage != null &amp;&amp; rootPackage.getNsURI().equals(ViewpointPackage.eINSTANCE.getNsURI())) {
</pre>
<p>should be adapted in</p>
<pre>EPackage rootPackage = (EPackage) EcoreUtil.getRootContainer(element.eClass());
if (rootPackage != null &amp;&amp; rootPackage.getNsURI().equals(DiagramPackage.eINSTANCE.getNsURI())) {
</pre>
<p>if
<code>element</code> is a Diagram concept.
</p>
<h4 id="Changesinorg.eclipse.sirius2">Changes in
<code>org.eclipse.sirius</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.tools.api.command.IDiagramCommandFactory.setAutoRefreshDView()</code> method was removed. It had no effect, any code which called it can simply be removed.
</li>
<li>The deprecated interface
<code>org.eclipse.sirius.business.api.componentization.ViewpointRegistryListener</code> has been removed. Use
<code>org.eclipse.sirius.business.api.componentization.ViewpointRegistryListener2</code> instead.
</li>
<li>
<code>org.eclipse.sirius.business.api.session.SessionManagerListener2</code> and
<code>org.eclipse.sirius.business.api.session.SessionManagerListener</code> have been merged into
<code>org.eclipse.sirius.business.api.session.SessionManagerListener</code> which is not deprecated any more.
</li>
<li>The deprecated method
<code>org.eclipse.sirius.business.api.session.SessionManagerListener.notifyUpdatedSession(Session)</code> has been removed. Use
<code>org.eclipse.sirius.business.api.session.SessionManagerListener.notify(Session, int)</code> instead.
</li>
<li>
<code>org.eclipse.sirius.business.api.helper.task.RemoveDanglingReferencesTask</code> and
<code>org.eclipse.sirius.business.api.helper.task.RemoveSemanticDanglingReferenceTask</code> and
<code>org.eclipse.sirius.tools.api.command.AbstractCommandFactory.addRemoveDanglingReferencesTask()</code> have been removed. These tasks were added to in several commands to remove dangling references at the end. They are now replaced by a specific
<code>ModelChangeTrigger</code> to detect the detachment of
<code>EObject</code> and remove the dangling references. It is added to the
<code>SessionEventBroker</code> during the session opening.
</li>
<li>
<code>org.eclipse.sirius.tools.api.ui.RefreshEditorsPrecommitListener</code> was a precommit
<code>ResourceSetListener</code>, it became a
<code>ModelChangeTrigger</code> and is now added to the SessionEventBroker during the session opening. This modification allows to correctly manage the order of our different precommit commands. It is triggered after the dangling reference remover.
</li>
<li>
<code>org.eclipse.sirius.tools.api.command.semantic.RemoveDanglingReferences</code> is no more used in Sirius commands. It can still be used to clean a resourceSet or a resource (repair tool, import/export, ..). It also has a new static method
<code>removeDanglingReferences(Resource)</code> to remove dangling references as an entry point.
</li>
<li>The protected predicate
<code>org.eclipse.sirius.business.api.helper.task.AbstractDeleteDRepresentationElementTask.DSEMANTICDECORATOR_REFERENCE_T0_IGNORE_PREDICATE</code> has been removed, the internal predicate
<code>DanglingRefRemovalTrigger.DSEMANTICDECORATOR_REFERENCE_T0_IGNORE_PREDICATE</code> is used instead.
</li>
<li>The
<code>org.eclipse.sirius.business.api.helper.SiriusUtil.findDiagram(EObject)</code> method has been removed. Use the equivalent
<code>new org.eclipse.sirius.business.api.query.EObjectQuery(element).getParentDiagram()</code> instead.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui2">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.ui.tools.api.perspectives.DesignPerspective</code> interface has been moved to
<code>org.eclipse.sirius.editor.tools.api.perspectives</code> package in
<code>org.eclipse.sirius.editor</code> plugin. This perspective is now provided through the
<code>org.eclipse.sirius.editor</code> plugin. The perspective ID is kept unchanged for a compatibility reason.
</li>
<li>The deprecated class
<code>org.eclipse.sirius.ui.tools.api.dialogs.ExportRepresentationsAsImagesDialog</code> has been removed. Use
<code>org.eclipse.sirius.ui.tools.api.dialogs.ExportSeveralRepresentationsAsImagesDialog</code> instead.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram2">Changes in
<code>org.eclipse.sirius.diagram</code>
</h4>
<ul>
<li>
<code>org.sirius.diagram.graphical.edit.policies.AirNoteAttachmentEditPolicy</code> has been removed, with the new dangling reference management, it became identical to its superclass, use
<code>org.eclipse.gmf.runtime.diagram.ui.internal.editpolicies.ConnectionEditPolicy</code> instead. Its provider
<code>org.sirius.diagram.graphicalou .edit.policies.AirNoteAttachmentEditPolicyProvider</code> and declaration in plugin.xml have been removed too.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.table">Changes in
<code>org.eclipse.sirius.table</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.table.tools.api.command.ITableCommandFactory.setAutoRefreshDTable()</code> method was removed. It had no effect, any code which called it can simply be removed.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tree">Changes in
<code>org.eclipse.sirius.tree</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.tree.business.api.command.ITreeCommandFactory.setAutoRefreshDTree()</code> method was removed. It had no effect, any code which called it can simply be removed.
</li>
</ul>
<h2 id="sirius1.0M5">Changes in Sirius 1.0.0M5 (from Sirius 1.0M4)</h2>
<h3 id="UserVisibleChanges">User-Visible Changes</h3>
<ul>
<li>The table csv export has been improved to handle cropped label. In some specific cases, the cell label is automatically cropped and &#8249;...&#8250; is concatenated to the resulting value. This cropped displayed label was previously exported, now the complete semantic value is exported.</li>
</ul>
<h3 id="APIChanges3">API Changes</h3>
<h4 id="LibraryExtensions">Library Extensions</h4>
<p>This milestone (Sirius 1.0M5) introduces several new plug-ins, collectively called &#171;library extensions&#187;. They are all named
<code>org.eclipse.sirius.ext.LIB</code>, where
<code>LIB</code> 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 &#171;hidden&#187; inside Sirius and are now exposed in library extensions. Most of the time, existing code which used the Sirius API will only need to:
</p>
<ol>
<li>Add the necessary
<code>Import-Package</code> (recommended) or
<code>Require-Bundle</code> to depend on the library extension(s) where the code they use now lives;
</li>
<li>Perform a simple &#171;Organize Imports&#187; operation, which should find the classes and interfaces in their new locations.</li>
</ol>
<h4 id="separationOfDiagramSpecificConcept-step1">Move diagram-specific EClasses into a separate EPackage</h4>
<p>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.
<br/>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.
</p>
<p>Most of the time, existing code which used these Sirius EClasses will only need to perform a simple &#171;Organize Imports&#187; operation, which should find the classes and interfaces in their new locations.
<br/>The &#171;Organize imports&#187; is not sufficient in case of imported classes existing several time in different packages (
<code>EFactory</code> classes for example with
<code>DescriptionFactory</code>, or
<code>EPackage</code> classes for example with
<code>DescriptionPackage</code>). And in some cases
<code>ViewpointFactory</code> (and
<code>ViewpointPackage</code>) will have to be replaced by
<code>DiagramFactory</code> (and
<code>DiagramPackage</code>).
</p>
<p>The
<code>Switch</code> classes if overridden also require a particular attention.
</p>
<p>The existing VSM (
<code>*.odesign</code>) and representations file (
<code>*.aird</code>) are automatically migrated.
<br/>Warning: Nevertheless, if you reference these Sirius concepts with the EPackage qualifier in your VSM (
<code>*.odesign</code>), in interpreted expressions for example, you must change
<code>viewpoint</code> in
<code>diagram</code>. For example
<code>viewpoint::DDiagramElement</code> becomes
<code>diagram::DDiagramElement</code>.
</p>
<p>The impacted EPackages are :</p>
<ul>
<li>
<code>viewpoint</code> : some of its EClasses have been moved to
<code>viewpoint/diagram</code>
</li>
<li>
<code>viewpoint/description</code> : some of its EClasses have been moved to
<code>viewpoint/diagram/description</code>
</li>
<li>
<code>viewpoint/description/style</code> : some of its EClasses have been moved to
<code>viewpoint/diagram/description/style</code>
</li>
<li>
<code>viewpoint/description/tool</code> : some of its EClasses have been moved to
<code>viewpoint/diagram/description/tool</code>
</li>
<li>
<code>viewpoint/description/filter</code> : this EPackage has been moved to
<code>viewpoint/diagram/description/filter</code>
</li>
<li>
<code>viewpoint/description/validation</code> : this EPackage has been moved to
<code>viewpoint/diagram/description/validation</code>
</li>
<li>
<code>viewpoint/description/concern</code> : this EPackage has been moved to
<code>viewpoint/diagram/description/concern</code>
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius3">Changes in
<code>org.eclipse.sirius</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.business.api.migration.resource.StringCouple</code> class has been removed.
</li>
<li>The
<code>org.eclipse.sirius.business.api.dialect.description.IInterpretedExpressionTargetSwitch.getFirstRelevantContainerFinder</code> method has been added to let each dialect use its own
<code>Function</code> to retrieve the first relevant container of a given
<code>EObject</code>, i.e. the first container from which a domain class can be determined.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.common.ui">Changes in
<code>org.eclipse.sirius.common.ui</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.common.ui.business.api.interpreter.VariableContentProvider</code> class has been removed.
</li>
<li>The
<code>org.eclipse.sirius.common.ui.tools.api.util.ISimpleAction</code> interface has been removed.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.table2">Changes in
<code>org.eclipse.sirius.table</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.table.business.api.query.DCellQuery.getExportableLabel()</code> method has been added to compute the label to export when the label is cropped by the
<code>org.eclipse.emf.edit.provider.ItemPropertyDescriptor.ItemDelegator</code>.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.table.ui">Changes in
<code>org.eclipse.sirius.table.ui</code>
</h4>
<ul>
<li>The
<code>org.eclipse.sirius.table.ui.business.api.helper.TableUIHelper</code> now uses
<code>DCellQuery.getExportableLabel()</code> to compute the cell labels used in HTML export.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui3">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li>The long-deprecated
<code>org.eclipse.sirius.ui.business.api.session.DeprecatedIEditingSession</code> interface has been removed. Use the corresponding methods from
<code>org.eclipse.sirius.ui.business.api.session.IEditingSession</code> instead.
</li>
</ul>
<h2 id="sirius1.0M4">Changes in Sirius 1.0.0M4 (from Sirius 0.9)</h2>
<h3 id="UserVisibleChanges2">User-Visible Changes</h3>
<ul>
<li>The ability to print table representations, which had been disabled for the 0.9 release, has been re-enabled.</li>
</ul>
<h3 id="APIChanges4">API Changes</h3>
<p>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).</p>
<h4 id="Changesinorg.eclipse.sirius.common">Changes in
<code>org.eclipse.sirius.common</code>
</h4>
<ul>
<li>Two deprecated constructors have been removed in
<code>FeatureEditorDialog</code>. Use the remaining constructor instead, which provides proper behaviour for both unique and non-unique features.
</li>
<li>The deprecated method
<code>IEditingDomainFactory.createEditingDomain()</code> has been removed. Use the (inherited)
<code>createEditingDomain(ResourceSet)</code> instead, which ensures correct behavior for all kinds of models (Xtext for example).
</li>
<li>The deprecated field
<code>org.eclipse.sirius.common.tools.api.listener.Notification.FOLD</code> has been removed. It was never used by Sirius itself, so if your code tried to listen to this kind of notification it was never actually called and can be safely removed.
</li>
<li>The deprecated methods
<code>getExtensionPlugins()</code> and
<code>getElementsProvidedByPlugin</code> from
<code>EcliseUtil</code> have been removed. If you need this kind of functionality, use the Eclipse APIs directly instead.
</li>
<li>The deprecated fields
<code>COLUMN_SEMANTIC</code> and
<code>LINE_SEMANTIC</code> of
<code>IInterpreterSiriusVariables</code> have been removed. Use the constants of
<code>org.eclipse.sirius.table.tools.api.interpreter.IInterpreterSiriusTableVariables</code> instead.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius4">Changes in
<code>org.eclipse.sirius</code>
</h4>
<ul>
<li>The deprecated method
<code>DialectServices.initRepresentations(Viewpoint, EObject)</code> has been removed. Use the version which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated constructor in
<code>CreateRepresentationCommand</code> has been removed. Use the alternative constructor which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The two deprecated constructors in
<code>RefreshRepresentationCommand</code> have been removed. Use the alternative constructors which take an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated method
<code>DisplayService.computeVisibility(Session, DDiagram, DDiagramElement)</code> has been removed. Use the variant
<code>computeVisibility()</code> which takes a
<code>DiagramMappingsManager</code> instead of a
<code>Session</code>.
</li>
<li>The following deprecated methods in
<code>FilterService</code> have been removed:
<ul>
<li>
<code>activateCache()</code>: use
<code>DisplayService.activateCache()</code> instead.
</li>
<li>
<code>deactivateCache()</code>: use
<code>DisplayService.deactivateCache()</code> instead.
</li>
<li>
<code>activate()</code>: use
<code>DisplayService.activate()</code> instead.
</li>
<li>
<code>deactivate()</code>: use
<code>DisplayService.deactivate()</code> instead.
</li>
<li>
<code>isActivated()</code>: use
<code>DisplayServiceManager.INSTANCE.getMode() == DisplayMode.NORMAL</code> instead.
</li>
<li>
<code>isCollapse()</code>: use
<code>isCollapsed()</code> instead.
</li>
<li>
<code>isVisibleForFilters()</code>: use
<code>getAppliedFilters()</code> instead.
</li>
<li>
<code>isVisible()</code>: use
<code>DisplayService.isDisplayed()</code> instead.
</li>
<li>
<code>isFiltered()</code>,
<code>isNotFiltered()</code>,
<code>isVisibleForActivatedFilters(), @checkFilters()</code>: use
<code>getAppliedFilters()</code> and
<code>DDiagram.getActivatedFilters()</code> instead.
</li>
</ul>
</li>
<li>The deprecated methods
<code>isDirectlyHidden()</code> and
<code>isIndirectlyHidden()</code> in
<code>HideFilterHelper</code> have been removed. Use the corresponding methods in
<code>DDiagramElementQuery</code> instead.
</li>
<li>The deprecated method
<code>SavingPolicy.save(Iterable, Map)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated constructor
<code>AbstractCommandFactory(TransactionalEditingDomain, ModelAccessor)</code> has been removed. Use the variant without the
<code>ModelAccessor</code> argument instead.
</li>
<li>The deprecated constructor
<code>CommandContext(EObject)</code> has been removed. Use the variant which takes an additional
<code>DRepresentation</code> instead.
</li>
<li>The deprecated methods
<code>activate(TransactionalEditingDomain)</code> and
<code>deactivate(TransactionalEditingDomain)</code> in
<code>IChangeListener</code> have been removed. Use the variants with no argument instead.
</li>
<li>The deprecated constructor
<code>AddSemanticResourceCommand(Session, URI)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated constructors of
<code>RemoveSemanticResourceCommand</code> have been removed. Use the variants which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated constructor in
<code>CreateDiagramWithInitialOperation</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated method
<code>SessionManager.addResource(Session, Resource)</code> has been removed. Use the
<code>Session.addSemanticResource(URI, IProgressMonitor)</code> instead. In code,
<code>mySessionManager.addResource(mySession, myResource)</code> should be replaced by
<code>mySession.addSemanticResource(myResource.getURI(), new NullProgressMonitor())</code>. Notice that this replacement has not the exact same behavior. The notifications
<code>SessionListener.ABOUT_TO_BE_REPLACED</code> and
<code>SessionListener.REPLACED</code> are not thrown with
<code>addSemanticResource</code> contrary to
<code>addResource</code>. But this kind of notifications is more for reloading of resource.
</li>
<li>The deprecated constructor of
<code>DefaultLocalSessionCreationOperation</code> have been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated method
<code>SessionManager.getSession(URI)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated method
<code>SessionFactory.createSession(URI)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>Deprecated class
<code>RefreshRepresentationCommand</code> has been removed. Use the class
<code>RefreshRepresentationsCommand</code> instead.
</li>
<li>Deprecated classes
<code>RevealSiriusElement</code> and
<code>RevealDDiagramElement</code> have been removed. Use the class
<code>RevealDDiagramElements</code> instead.
</li>
<li>The deprecated method
<code>DAnalysisSession.save(Map&lt;?, ?&gt;)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated method
<code>MappingTableEntry.getImporter()</code> has been updated. It now returns an optional (
<code>org.eclipse.sirius.common.tools.api.util.Option</code>) of
<code>MappingTableEntry</code>.
</li>
<li>The deprecated class
<code>IEMFCommandFactory</code> has been removed. It is not used in Sirius code anymore.
</li>
<li>The deprecated method
<code>IDiagramCommandFactory.buildCreateDiagramFromDescription(DiagramDescription, EObject)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated methods
<code>dispose()</code> and
<code>disposeInterpreterRegistry(EObject)</code> have been removed from
<code>InterpreterRegistry</code>. They corresponded to dead code.
</li>
<li>The deprecated method
<code>InterpreterRegistry.prepareImportsFromModelElement(IInterpreter, EObject)</code> has been removed. Use
<code>InterpreterRegistry.prepareImportsFromSession(IInterpreter, Session)</code> instead. To get
<code>Session</code> from
<code>EObject</code>, you can use
<code>SessionManager.INSTANCE.getSession(EObject)</code>.
</li>
<li>The deprecated method
<code>SiriusHelper.createDAnalysis()</code> has been removed. Use
<code>ViewpointFactory.eINSTANCE.createDAnalysis()</code> instead.
</li>
<li>The deprecated method
<code>SessionFactory.createSession(DAnalysis)</code> has been removed. It is not intended to be used, but it can be replaced by
<code>SessionFactory.INSTANCE.createSession(analysis.eResource().getURI(), new NullProgressMonitor())</code>.
</li>
<li>The method
<code>buildDoExecuteDetailsOperation(DSemanticDecorator, RepresentationCreationDescription, String) has been pull up from @ITableCommandFactory</code>,
<code>ITreeCommandFactory</code> and
<code>IDiagramCommandFactory</code> to
<code>ICommandFactory</code>.
</li>
<li>The method
<code>getUserInterfaceCallBack()</code> has been pull up from
<code>ITableCommandFactory</code> and
<code>ITreeCommandFactory</code> to
<code>ICommandFactory</code>. And
<code>AbstractCommandFactory</code> now implements this method.
</li>
<li>The unused reference
<code>allActivatedEdgeMappings</code> from
<code>Layer</code> and
<code>DiagramDescription</code> has been removed from the viewpoint.ecore meta-model. This reference always returns empty list.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram3">Changes in
<code>org.eclipse.sirius.diagram</code>
</h4>
<ul>
<li>The deprecated methods
<code>IDiagramEdgeEditPart.refreshPath()</code> and
<code>AbstractDiagramEdgeEditPart.refreshPath()</code> have been removed. It is not called in Sirius code anymore
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ecore.extender">Changes in
<code>org.eclipse.sirius.ecore.extender</code>
</h4>
<ul>
<li>The deprecated methods
<code>IMetamodelExtender.eDelete(EObject)</code>,
<code>CompositeMetamodelExtender.eDelete(EObject)</code> and
<code>ModelAccessor.eDelete(EObject)</code> have been removed. Use the variants which takes an additional
<code>ECrossReferenceAdapter</code> instead. This
<code>ECrossReferenceAdapter</code> can be null.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui4">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li>All deprecated methods in
<code>ModelingProjectManager</code> have been removed. Use the corresponding versions which take an additional
<code>IProgressMonitor</code> parameter instead.
</li>
<li>All deprecated methods in
<code>ViewpointSelection</code> have been removed. Use the corresponding versions which take an additional
<code>IProgressMonitor</code> parameter instead.
</li>
<li>Deprecated class
<code>org.eclipse.sirius.ui.business.api.control.SiriusControlCommand</code> has been removed. Use the class
<code>org.eclipse.sirius.business.api.control.SiriusControlCommand</code> instead (same constructor but with an additional
<code>IProgressMonitor</code> parameter).
<ul>
<li>Ditto for
<code>SiriusUnControlCommand</code>
</li>
</ul>
</li>
<li>The deprecated method
<code>DialectUIServices.openEditor(Session, DRepresentation)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated method
<code>SessionHelper.openStartupRepresentations(Session)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated method
<code>SiriusControlHandler.performControl(Shell, EObject)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>The deprecated method
<code>SiriusUncontrolHandler.performUncontrol(Shell, EObject)</code> has been removed. Use the variant which takes an additional
<code>IProgressMonitor</code> instead.
</li>
<li>New class
<code>AbstractCreateRepresentationFromRepresentationCreationDescription</code>: Generalization of all
<code>CreateRepresentationFromRepresentationCreationDescription</code> classes (iof plug-ins sirius.diagram, sirius.table.ui, sirius.tree.ui).
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.table3">Changes in
<code>org.eclipse.sirius.table</code>
</h4>
<ul>
<li>The deprecated method
<code>TableHelper.getCell(DLine, String)</code> has been removed. Use the variant which take a DLine and a DColumn as parameters.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tree2">Changes in
<code>org.eclipse.sirius.tree</code>
</h4>
<ul>
<li>The deprecated method
<code>DTreeUserInteraction.refreshContent()</code> has been removed. Use the variant which take an additional
<code>IProgressMonitor</code> parameter instead.
</li>
</ul>
<h2 id="sirius0.9">Changes in Sirius 0.9.0</h2>
<p>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 &#171;Other API Changes&#187;, &#171;Specifier-Visible Changes&#187; and &#171;User-Visible Changes&#187; 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.</p>
<h3 id="MigratingfromObeoDesignerorViewpointtoSirius">Migrating from Obeo Designer or Viewpoint to Sirius</h3>
<p>If you have existing projects which used this technology before it became Eclipse Sirius and want to migrate to Sirius, you must:</p>
<ol>
<li>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);</li>
<li>then migrate those to Sirius 0.9.</li>
</ol>
<p>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.</p>
<p>If you were using Obeo Designer, you must thus first migrate your projects and models to Obeo Designer 6.2, and then consult the
<a href="release_notes_vp.html">release notes for Viewpoint 6.9 and 6.10</a>, which lists the API changes from Viewpoint 6.8 to 6.10.
</p>
<p>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 (
<code>*.aird</code>).
</p>
<h4 id="MigratingViewpointSpecificationProjects">Migrating Viewpoint Specification Projects</h4>
<ul>
<li>Any plug-in dependencies towards Viewpoint plug-ins must be updated to the corresponding Sirius plug-in and version number. See the correspondence table below for the plug-in names to use.</li>
<li>If your plug-ins used any of the extension points defined in Viewpoint, you will need to update your
<code>plugin.xml</code> files to reference the correct extension points identifiers. In particular, all Viewpoint Specification Projects created using Viewpoint use the
<code>fr.obeo.dsl.viewpoint.componentization</code> in their
<code>plugin.xml</code> to register the VSMs they define. This should be changed to use the equivalent
<code>org.eclipse.sirius.componentization</code> extension point id. The identifier changes for the other extension points follow the same rules as the name changes of the plug-ins they are defined in.
</li>
<li>The migration of your VSMs (
<code>*.odesign</code> files) is automatic: simply open your files once in the VSM editor, perform some no-op change to make the editor &#171;dirty&#187; and save it. The saved version will have been migrated to Sirius.
</li>
<li>If you had Java code which used the Viewpoint APIs, you will need to update it to use the Sirius APIs. A simple &#171;Source &gt; Organize Imports&#187; on your source folders should find most classes you used in their new namespace. The Viewpoint code base and APIs used the term &#171;Viewpoint&#187; 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 were changed to use &#171;Sirius&#187; instead, so you may need to adjust some names in your code beyond just updating the imports (for example,
<code>ViewpointControlCommand</code> is now
<code>SiriusControlCommand</code>).
</li>
</ul>
<p>Note that if you used Obeo Designer, you may have used the legacy Acceleo 2.x language for the computed expressions inside the
<code>*.odesign</code> files (if your expressions are of the form
<code>&lt;%something%&gt;</code> 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 (
<code>var:</code>,
<code>feature:</code> and
<code>service:</code>, see the documentation).
</p>
<h4 id="MigratingModelingProjectsandRepresentationFiles">Migrating Modeling Projects and Representation Files</h4>
<ul>
<li>First migrate any modeler definitions used by your modeling projects and representation files (see the section above).</li>
<li>Modeling projects created using Viewpoint will not be recognized directly by Sirius, because the nature identfier has changed. You must use the &#171;Configure/Convert to Modeling Project&#187; action in the project&#8217;s context menu to make it a Sirius-compatible modeling project (see the section below for the technical details of the change).</li>
<li>The migration of you representation files (
<code>*.aird</code>) is performed automatically when they are loaded in memory. It will become permanent the first time you save it (you can force this by opening a representation, making some arbitrary change and saving the session).
</li>
</ul>
<h3 id="Pluginsversionnumbers.">Plug-ins version numbers.</h3>
<p>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
<code>MANIFEST.MF</code> files in addition to the namespaces.
</p>
<h3 id="Majornamespacechanges">Major namespace changes</h3>
<p>In the context of the move as an official Eclipse project named Sirius, all the namespaces used in the code have changed.</p>
<h4 id="Pluginandfeaturesidentifiers">Plug-in and features identifiers</h4>
<p>All identifiers have changed to start with the
<code>org.eclipse.sirius</code> namespace prefix. The tables below give the mapping between the Viewpoint plug-in and features identifiers and their Sirius equivalent.
</p>
<table>
<tr>
<th>Viewpoint 6.x plug-in </th>
<th>Sirius 0.9 plug-in </th>
</tr>
<tr>
<td>fr.obeo.dsl.common </td>
<td>org.eclipse.sirius.common </td>
</tr>
<tr>
<td>fr.obeo.dsl.common.acceleo.mtl </td>
<td>org.eclipse.sirius.common.acceleo.mtl </td>
</tr>
<tr>
<td>fr.obeo.dsl.common.acceleo.mtl.ide </td>
<td>org.eclipse.sirius.common.acceleo.mtl.ide </td>
</tr>
<tr>
<td>fr.obeo.dsl.common.ocl </td>
<td>org.eclipse.sirius.common.ocl </td>
</tr>
<tr>
<td>fr.obeo.dsl.common.ui </td>
<td>org.eclipse.sirius.common.ui </td>
</tr>
<tr>
<td>fr.obeo.dsl.common.xtext </td>
<td>org.eclipse.sirius.common.xtext </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint </td>
<td>org.eclipse.sirius </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.diagram </td>
<td>org.eclipse.sirius.diagram </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.diagram.layoutdata </td>
<td>org.eclipse.sirius.layoutdata </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.diagram.sequence </td>
<td>org.eclipse.sirius.sequence </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.diagram.sequence.edit </td>
<td>org.eclipse.sirius.sequence.edit </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.diagram.sequence.ui </td>
<td>org.eclipse.sirius.sequence.edit.ui </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.doc </td>
<td>org.eclipse.sirius.doc </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.editor </td>
<td>org.eclipse.sirius.editor </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.editor.sequence </td>
<td>org.eclipse.sirius.editor.sequence </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.editor.table </td>
<td>org.eclipse.sirius.editor.table </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.editor.tree </td>
<td>org.eclipse.sirius.editor.tree </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.eef.adapters </td>
<td>org.eclipse.sirius.eef.adapters </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.interpreter </td>
<td>org.eclipse.sirius.interpreter </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.table </td>
<td>org.eclipse.sirius.table </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.table.ui </td>
<td>org.eclipse.sirius.table.ui </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.tree </td>
<td>org.eclipse.sirius.tree </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.tree.ui </td>
<td>org.eclipse.sirius.tree.ui </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.ui </td>
<td>org.eclipse.sirius.ui </td>
</tr>
<tr>
<td>fr.obeo.mda.ecore.extender </td>
<td>org.eclipse.sirius.ecore.extender </td>
</tr>
<tr>
<td>fr.obeo.mda.pim.ecore.design </td>
<td>org.eclipse.sirius.sample.ecore.design </td>
</tr>
<tr>
<td>org.eclipselab.emf.synchronizer </td>
<td>org.eclipse.sirius.synchronizer </td>
</tr>
</table>
<table>
<tr>
<th>Viewpoint 6.x feature </th>
<th>Sirius 0.9 feature </th>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.runtime </td>
<td>org.eclipse.sirius.runtime </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.runtime.acceleo </td>
<td>org.eclipse.sirius.runtime.acceleo </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.runtime.ide.eef </td>
<td>org.eclipse.sirius.runtime.ide.eef </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.runtime.ide.ui </td>
<td>org.eclipse.sirius.runtime.ide.ui </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.runtime.ide.ui.acceleo </td>
<td>org.eclipse.sirius.runtime.ide.ui.acceleo </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.runtime.ide.xtext </td>
<td>org.eclipse.sirius.runtime.ide.xtext </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.runtime.ocl </td>
<td>org.eclipse.sirius.runtime.ocl </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.specifier.ide.ui </td>
<td>org.eclipse.sirius.specifier.ide.ui </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.specifier.ide.ui.acceleo </td>
<td>org.eclipse.sirius.specifier.ide.ui.acceleo </td>
</tr>
<tr>
<td>fr.obeo.dsl.viewpoint.doc.feature </td>
<td>org.eclipse.sirius.doc.feature </td>
</tr>
</table>
<h4 id="JavaPackagesandClassesNames">Java Packages and Classes Names</h4>
<p>The Java package names have changed to start with the identifier of the plug-in they are defined in (which has changed). A simple &#171;Source &gt; Organize Imports&#187; on your source folders should find most classes you used in their new namespace.</p>
<p>The Viewpoint code base and APIs used the term &#171;Viewpoint&#187; 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 &#171;Sirius&#187; instead (for example,
<code>ViewpointControlCommand</code> is now
<code>SiriusControlCommand</code>).
</p>
<h4 id="ModelsnamespaceURIs">Models namespace URIs</h4>
<p>All namespace URIs have also been changed from &#171;http://www.obeo.fr/dsl/viewpoint*&#187; to &#171;http://www.eclipse.org/sirius/&#187;.</p>
<p>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.</p>
<h3 id="NatureID">Nature ID</h3>
<p>The modeling project has a specific nature (
<code>org.eclipse.sirius.nature.modelingproject</code>).
<br/>If you have modeling project created with Viewpoint, you must launch the action &#171;Configure/Convert to Modeling Project&#187; to replace old nature id (
<code>fr.obeo.dsl.viewpoint.nature.modelingproject</code>) by the new one.
<br/>If you have many modeling projects to &#171;migrate&#187;, you can easily make a script to replace
<code>fr.obeo.dsl.viewpoint.nature.modelingproject</code> by
<code>org.eclipse.sirius.nature.modelingproject</code> in all
<code>.project</code> file of each modeling projects.
</p>
<h3 id="OtherAPIChanges">Other API Changes</h3>
<p>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.</p>
<h4 id="APIAdded">API Added</h4>
<ul>
<li>Add
<code>IMigrationParticipant.getPackage()</code> to return the EPackage to use for the given namespace. This change concerns our internal migration framework. This is useful to handle our namespace changes (from Viewpoint to Sirius).
</li>
</ul>
<h4 id="APIRemoval">API Removal</h4>
<ul>
<li>Removed
<code>org.eclipse.sirius.common.tools.api.interpreter.IAcceleoInterpreterVariables</code>: This interface only defined a single constant, which refered to the syntax of an obsolete version of the Acceleo language.
</li>
<li>Removed
<code>org.eclipse.sirius.common.tools.api.resource.IFileContributorExtension</code>: This interface only defined a few constants relative to an extension point which does not exist anymore.
</li>
<li>Removed the
<code>org.eclipse.sirius.reconciler</code> extension point definition (which used to be defined in the
<code>org.eclipse.sirius</code> plug-in): This extension point is not supported anymore (and has not been for a long time).
</li>
<li>Removed all the deprecated methods from
<code>Session</code> and replaced the internal calls with the equivalent versions with
<code>IProgressMonitors</code>. The removed methods are:
</li>
</ul>
<pre>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&lt;Viewpoint&gt; getSelectedViewpoints();
void createView(Viewpoint viewpoint, Collection&lt;EObject&gt; semantics);
void createView(Viewpoint viewpoint, Collection&lt;EObject&gt; semantics, boolean createNewRepresentations);
void addSelectedView(DView view) throws IllegalArgumentException;
void removeSelectedView(DView view);
</pre>
<h3 id="SpecifierVisibleChanges">Specifier-Visible Changes</h3>
<p>New variables are available for
<code>sizeComputationExpression</code> to compute the size of edges on
<code>EdgeStyleDescription</code> and
<code>BracketEdgeStyleDescription</code>:
</p>
<ul>
<li>
<em>diagram</em>: the current
<code>DDiagram</code>
</li>
<li>
<em>view</em>: the current
<code>DEdge</code>
</li>
<li>
<em>sourceView</em>: the source view of the current edge.
</li>
<li>
<em>targetView</em>: the target view of the current edge.
</li>
</ul>
<h3 id="UserVisibleChanges3">User-Visible Changes</h3>
<ul>
<li>The ability to print table representations has been disabled for the 0.9 release due to an external dependency issue (see
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=422223">bug #422223</a> for the details). It should be re-introduced in 1.0.
</li>
</ul>
</body>
</html>