This document contains the release notes for older versions of of Sirius.
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):
org.eclipse.sirius
org.eclipse.sirius.business.api.session.ViewpointSelector
class has been added, with easy-to-use methods to select/deselect viewpoint in a given session.
VIEWPOINT_REGISTRY_INITIAL_SIZE
preference and
VIEWPOINT_REGISTRY_INITIAL_SIZE_DEFAULT_VALUE
default value has been removed from
org.eclipse.sirius.tools.api.preferences.DCorePreferences
.
org.eclipse.sirius.business.api.query.DRepresentationQuery.isDanglingRepresentation()
has been added to introduce the possibility to check if a representation is a dangling representation, ie. if its a DSemanticDecorator, its target is null or does not belong to a session.
org.eclipse.sirius.ecore.extender.business.api.permission.exception.LockedInstanceException
now can take several EObjects in constructor and a method
LockedInstanceException.getLockedElements()
has been added to get all EObjects put in constructor.
org.eclipse.sirius.tools.api.command.InvalidPermissionCommand
now can take several EObjects in constructor to throw a
LockedInstanceException
with several EObjects.
org.eclipse.sirius.business.api.helper.task.AbstractDeleteDRepresentationElementTask
class has been renamed into
DeleteEObjectTask
.
org.eclipse.sirius.tools.api.command.listener.IChangeListener
and all classes related to this mechanism (
ChangeListenerFactory
,
TriggerOperation
) have been removed as this mechanism proves to be inefficient. It can be replaced by a pre/post commit listener or a
org.eclipse.sirius.business.api.session.ModelChangeTrigger
org.eclipse.sirius.tools.api.ui.IExternalAction2
interface has been removed. It was created to disable some
IChangeListener
when the action indicates it will not delete elements.
org.eclipse.sirius.business.api.dialect.DialectServices.refresh(DRepresentation, boolean, IProgressMonitor
has been added to specify if we want partial refresh or not. By default partial refresh is done. full refresh is only implements for tree dialect.
org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices.refresh(DRepresentation, IProgressMonitor)
has been added to call by default
DialectServices.refresh(DRepresentation, false, IProgressMonitor)
to do a partial refresh.
org.eclipse.sirius.business.api.dialect.command.RefreshRepresentationsCommand.RefreshRepresentationsCommand(TransactionalEditingDomain, boolean, IProgressMonitor, DRepresentation...)
and
RefreshRepresentationsCommand(TransactionalEditingDomain, boolean, IProgressMonitor, Collection<DRepresentation>)
constructors has been added to specify a partial refresh or a full refresh.
org.eclipse.sirius.business.api.dialect.DRepresentationNotificationFilter
has been added to have
org.eclipse.sirius.tools.api.profiler.SiriusTasksKey.CHANGE_SWT_LINE_COLAPSE_STATE_KEY
constant has been deprecated in favor of
SiriusTasksKey.CHANGE_SWT_LINE_COLLAPSE_STATE_KEY
to fix a typo.
org.eclipse.sirius.business.api.color.AbstractColorUpdater.DEFAULT_RED_VALUE/DEFAULT_GREEN_VALUE/DEFAULT_BLUE_VALUE
constants have been added to have access to default
RGBValues
's values. This is used during refresh when there isn’t any
ColorDescription
, for example in tree dialect where background color definition is optional.
org.eclipse.sirius.business.api.tool.ToolFilterDescriptionListener.ToolFilterDescriptionListener()
constructor now takes an
IInterpreter
as additional parameter to capture the current interpreter and avoid calls to the
IInterpreterRegistry
for each evaluation of the tool filter expressions.
org.eclipse.sirius.business.api.query.AirdResourceQuery.getAirDCrossReferenceAdapter()
and
org.eclipse.sirius.business.internal.resource.AirdCrossReferencerAdapter
have been removed. The adapter was here to customize GMF’s own
org.eclipse.gmf.runtime.emf.core.util.CrossReferenceAdapter
. However considering the way Sirius uses GMF, this adapter is not needed.
org.eclipse.sirius.ui
org.eclipse.sirius.ui.business.api.session.UserSession
, the methods
selectSirius()
,
selectOnlySirius()
and
findSiriusByName()
have been renamed into
selectViewpoint()
,
selectOnlyViewpoint()
and
findViewpointByName()
to correct a wrong rebranding.
org.eclipse.sirius.common
org.eclipse.sirius.common.tools.api.resource.ResourceSetSync.getResourceSetSync(TransactionalEditingDomain)
has been added to look for a
ResourceSetSync
without creating a new one if no synchronizer currently exists.
org.eclipse.sirius.common.tools.api.util.SmartAdapter
has been removed as this mechanism proves to be inefficient. The only user of this mechanism was the
org.eclipse.sirius.tools.api.command.listener.IChangeListener
which has also been removed.
org.eclipse.sirius.common.tools.api.ecore.WorkspaceEPackageRegistry
has been moved to the
org.eclipse.sirius.editor
plugin.
org.eclipse.sirius.common.tools.DslCommonPlugin.getWorkspaceEPackageRegistry
has been removed. The same method has been added in
org.eclipse.sirius.editor.editorPlugin.SiriusEditorPlugin
.
org.eclipse.sirius.common.tools.api.resource.ResourceMigrationMarker
has been introduced for adopters. This marker can be attached to a Resource in order to indicate that some automatic migration
might have change the structure of the model during the loading (with no isModified flag). Sirius will then use this information to consider saving the file even if there is no logical change.
org.eclipse.sirius.common.ui
org.eclipse.sirius.common.ui.tools.api.util.EclipseUIUtil.addSelectionListener(IWorkbenchPart, ISelectionListener)
has been added to register a new selection listener to the site for the workbench part. This method looks for a
ISelectionService
by calling
IServiceLocator.getService()
on the site.
org.eclipse.sirius.common.ui.tools.api.util.EclipseUIUtil.removeSelectionListener(IWorkbenchPart, ISelectionListener)
has been added to unregister an existing selection listener from site for the workbench part. This method looks for a
ISelectionService
by calling
IServiceLocator.getService()
on the site.
org.eclipse.sirius.diagram
org.eclipse.sirius.diagram.ui.business.api.view.refresh
package and all its content has been move into the
org.eclipse.sirius.diagram
plug-in, under the name
org.eclipse.sirius.diagram.business.api.view.refresh
.
org.eclipse.sirius.diagram.canonicalSynchronizerFactoryOverride
has been defined. Its only intended implementer is the
org.eclipse.sirius.diagram.ui
plug-in. It is used by the diagram dialect’s core to delegate to the UI plug-in the canonical synchronizer logic, which depends on the UI.
org.eclipse.sirius.diagram.business.api.refresh.CanonicalSynchronizer
, a new method
postCreation()
has been added. It is called exactly once, right after a diagram has been created and synchronized the first time.
org.eclipse.sirius.diagram.description.style.EdgeStyleDescription
metamodel class has three more features:
centeredSourceMappings
,
centeredTargetMappings
and
AlwaysCenter
. Those features let the specifier determine for which mappings the edge source/target should be centered or whether the source/target should be systematically centered. The
endsCentering
values are restricted by the new
org.eclipse.sirius.diagram.description.CenteringStyle
enumeration.
org.eclipse.sirius.diagram.EdgeStyle
metamodel class has now an attribute
centered
of type
org.eclipse.sirius.diagram.description.CenteringStyle
, to determine whether the edge target or source ends should be centered.
org.eclipse.sirius.diagram.ui
org.eclipse.sirius.diagram.ui.business.api.view.refresh
package and all its content has been move into the
org.eclipse.sirius.diagram
plug-in, under the name
org.eclipse.sirius.diagram.business.api.view.refresh
.
org.eclipse.sirius.diagram.ui.business.internal.query.DNodeContainerQuery.getDefaultDimension()
has been added to compute the default size of a DNodeContainer.
additionalFiguresForConflictDetection
has been added to several methods of
org.eclipse.sirius.diagram.ui.tools.api.figure.locator.DBorderItemLocator
. This parameter is used in case of simultaneous border nodes moves. This list corresponds to the already known border nodes feedbacks. They are used to detect conflicts with other moved nodes.
org.eclipse.sirius.diagram.ui.business.api.query.ConnectionEditPartQuery
now provides two new methods
isEdgeWithRectilinearRoutingStyle()
and
isEdgeWithObliqueRoutingStyle()
that respectively checks if an edge has a rectilinear routing style or an oblique routing style.
org.eclipse.sirius.diagram.ui.business.api.query.ConnectionQuery
now provides two new methods
getAbsoluteBendpointsConstraint()
and
getRelativeBendpointsConstraint()
that returns an option of list of
Bendpoint
of a connection whether they are respectively
AbsoluteBendpoint
or
RelatveBendpoint
.
org.eclipse.sirius.diagram.ui.business.api.query.EdgeQuery
also provides two new methods
isEdgeWithRectilinearRoutingStyle()
and
isEdgeWithObliqueRoutingStyle()
that respectively checks if an edge has a rectilinear routing style or an oblique routing style.
org.eclipse.sirius.diagram.ui.tools.api.requests.DistributeRequest
: A new
ChangeBoundsRequest
to manage distribution of shapes.
REQ_DISTRIBUTE
has been added in
org.eclipse.sirius.diagram.ui.tools.api.requests.RequestConstants
to identify the new type of request,
DistributeRequest
.
org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds
for the new drop down menu in tabbar and for the four new distribute actions.
org.eclipse.sirius.diagram.ui.tools.api.image.DiagramImagesPath
for the icon path of the four new distribute actions.
org.eclipse.sirius.diagram.ui.business.api.view.SiriusLayoutDataManager
to retrieve the opposite edge layout data of another edge layout data. An edge layout data stored in the incomingEdgeLayoutDatas ref of its parent data can have an opposite edge layout data in the outgoingEdgeLayoutDatas of the other ends.
org.eclipse.sirius.diagram.ui.tools.api.requests.RequestConstants.REQ_RESET_ORIGIN
has been added to identify requests to get the ResetOrigin command.
org.eclipse.sirius.diagram.ui.business.api.query.NodeQuery.isContainer()
has been added to test whether the GMF node visualID corresponds to a ContainerEditPart.
org.eclipse.sirius.tree.ui
org.eclipse.sirius.tree.ui.business.api.helper.TreeUIHelper.toContentHTMl()
has changed of behavior: refresh of
DTree
is now partial, i.e. not done for children of collapsed
DTreeItemContainer
. Consequently code calling
TreeUIHelper.toContentHTMl()
must do a full refresh if children of collapsed
DTreeItemContainer
must be displayed in returned HTML.
org.eclipse.sirius.tree.ui.business.api.helper.TreeUIHelper.toTreeDescriptor()
same as for
TreeUIHelper.toContentHTMl()
org.eclipse.sirius.tree
org.eclipse.sirius.tree.business.api.interaction.DTreeUserInteraction.refreshContent(boolean, IProgressMonitor)
has been added to specify if we want partial refresh or not.
org.eclipse.sirius.tree.business.api.command.DTreeItemExpansionChangeCommand
has been added to execute an expansion/collapse of
DTreeItem
. On expansion a refresh of children is done.
org.eclipse.sirius.synchronizer
org.eclipse.sirius.synchronizer.CreatedOutput.synchronizeChildren()
has been added to allow doing a partial refresh of tree, i.e. to not refresh children of collapsed tree item.
org.eclipse.sirius.synchronizer.ModelToModelSynchronizer.update(CreatedOutput, boolean)
has been added to specify if we want partial refresh or not.
org.eclipse.sirius.ecore.extender
org.eclipse.sirius.ecore.extender.business.api.accessor.IMetamodelExtender.eRemoveInverseCrossReferences(EObject, ECrossReferenceAdapter, EReferencePredicate)
has been added as a way to remove the inverse cross references without removing an
EObject
from its container. For example it can be used to avoid the dangling references to an indirectly detached object without removing it from its already detached container and avoid additional REMOVE notifications. The method has been extracted from and is now used by
IMetamodelExtender.eDelete()
.
org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor.eRemoveCrossReferences(EObject, ECrossReferenceAdapter, EReferencePredicate)
has been added as a way to remove the inverse cross references without removing an
EObject
from its container after a check by the permission authority that all changeable feature to modify can be edited.
org.eclipse.sirius.ext.gmf.runtime
org.eclipse.sirius.ext.gmf.runtime.editparts.GraphicalHelper
:
applyZoomOnPoint(IGraphicalEditPart, Point)
: Apply the current zoom (of
IGraphicalEditPart
's diagram) on the
Point
and return the
Point
for convenience.
applyInverseZoomOnPoint(IGraphicalEditPart, Point)
: Apply the inverse of the current zoom (of
IGraphicalEditPart
's diagram) on the
Point
and return the
Point
for convenience.
appliedZoomOnRelativePoint(IGraphicalEditPart, Point)
is now deprecated. Use
applyZoomOnPoint(IGraphicalEditPart, Point)
instead.
getAnchorPoint(IGraphicalEditPart parent, Anchor anchor)
: Get the
Point
(absolute draw2d coordinates) corresponding to this
Anchor
.
getAnchorPoint(IGraphicalEditPart parent, IdentityAnchor anchor)
: Get the
Point
(absolute draw2d coordinates) corresponding to this
IdentityAnchor
.
getIntersection(Point, Point, IGraphicalEditPart, boolean)
: Get intersection between a line between lineOrigin and lineTerminus, and the rectangle bounds of the
IGraphicalEditPart
. If there are several intersections, the shortest is returned.
getAbsoluteBounds(IGraphicalEditPart)
: Get the absolute bounds of this
IGraphicalEditPart
.
getAbsoluteBoundsIn100Percent(IGraphicalEditPart)
: Get the absolute bounds of this
IGraphicalEditPart
but adapted according to the current zoom level.
isSnapToGridEnabled(EditPart)
: Return true if the snapToGrid is enabled for the diagram containing this edit part, false otherwise.
org.eclipse.sirius.tests.swtbot.support
SWTBotSiriusDiagramEditor.setSnapToGrid(boolean)
has been added. It allows to disable or enable the snapToGrid option for this editor.
SWTBotSiriusDiagramEditor.setSnapToGrid(boolean, double, int)
has been added. It allows to disable or enable the snapToGrid option for this editor. In case of activation, you can also set the grid spacing and the ruler units.
SWTBotSiriusDiagramEditor.disableSnapToGrid()
has been deprecated, use
SWTBotSiriusDiagramEditor.setSnapToGrid(false)
instead.
SWTBotSiriusDiagramEditor.adaptLocationToSnap(Point)
has been added. It allows to adapt location according to SnapToHelper of the current editor.
SWTBotSiriusDiagramEditor.getDiagramEditPart()
has been added. It allows to retrieve the diagram edit part of the current editor.
ViewpointSelectionDialog
, the methods
selectViewpoints(String...)
and
deselectViewpoints(String...)
have been added to allow viewpoints selection and deselection from an array of
String
. These methods are shortcuts to the
selectViewpoints(Set<String>, Set<String>)
method.
changeLayerActivation(String)
on
SWTBotSiriusDiagramEditor
to offer the same service as similar method on
UIDiagramRepresentation
.
org.eclipse.sirius.tests.support
org.eclipse.sirius.test.support.SiriusTestCase
, the methods deactivateSirius(), initSirius() and findSirius() have been renamed into deactivateViewpoint(), initViewpoint() and findViewppoint() to correct a wrong rebranding.
org.eclipse.sirius
org.eclipse.sirius.business.api.control
, the constructors of
SiriusControlCommand
and
SiriusUncontrolCommand
which assume implicitly that the session should be saved as part of the command are now deprecated. Use the alternative constructors (a new one has been added to
SiriusUncontrolCommand
) to say explicitly if the command should save the session. Most code should do the save themselves outside of the command, and thus pass
false
to the
shouldEndBySaving
argument of these constructors.
org.eclipse.sirius.business.api.session
, class
SavingPolicyImpl
(the default session saving policy) now inherits from the new
AbstractSavingPolicy
class. The new abstract class can be used as a base to implement different policies by simply overriding the
computeResourcesToSave()
method.
org.eclipse.sirius.diagram.ui
createLayoutEditPolicy
and
getResizeBorderItemCommand
methods have been extracted from
org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramContainerPart
and placed into
org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramElementContainerEditPart
. The
org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramListEditPart.createLayoutEditPolicy
implementation has been removed.
org.eclipse.sirius.diagram.ui
org.eclipse.sirius.editor.tools.api.menu.AbstractMenuBuilder.getLabel()
visibility has been changed from protected to public.
org.eclipse.sirius.editor.tools.api.menu.CompositeMenuBuilder
has been introduced to avoid duplicated menu. A
CompositeMenuBuilder
is created to encapsulate
AbstractMenuBuilder
with the same label.
feature:eAllContents
which only looks for compatible candidates inside the current element (recursively). The new behavior is more efficient on large models and consistent with what happens for diagrams. The change does not affect existing VSMs which continue to work as before whatever was the expression they used. Users who want the old behavior on specific mappings can simply remove the expression in the properties view.
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.
ViewpointRegistry.getDiagramDescriptionMappingsRegistry()
has been removed. You can now directly call
org.eclipse.sirius.diagram.business.api.componentization.DiagramDescriptionMappingsRegistry.INSTANCE.DialectServices
.
IRepairParticipant
to isolate specific diagram repair steps.
removeElements(DView, TransactionalEditingDomain, IProgressMonitor)
: Removes elements from the
DView
that will be recreated by the refresh (called later).
cleanRepresentations(EList<DRepresentation>)
: Cleans representations (specific representation states like filters) and eventually returns some of them if they need to be removed.
refreshRepresentations(DAnalysis, DView)
: 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.
DialectServices
, with default implementations in
AbstractRepresentationDialectServices
:
createTask(CommandContext, ModelAccessor, ModelOperation, Session, UICallBack)
: Creates a new task corresponding to the ModelOperation. Only needed for ModelOperation specific to one dialect.
handles(RepresentationExtensionDescription)
: Tells if the current dialect handles the given
RepresentationExtensionDescription
.
invalidateMappingCache()
: Allows each dialect to clean and compute again its proper mapping cache.
allowsEStructuralFeatureCustomization(EObject)
: allows dialects to indicate if they allow EStrucuralFeaturesCustomization for the given VSM element. It is currently supported for style descriptions in diagrams only.
DialectUIServices
canHandle(RepresentationDescription)
and
canHandle(RepresentationExtensionDescription)
: tell whether the dialect is able to handle the given representation description or extension description.
completeToolTipText(String, EObject)
allows the dialect to customize the tooltip displayed in a property section of a given VSM element.
DialectUIManager
canExport(DRepresentation, ExportFormat)
: New method returning true if at least one dialect is able to export this representation to this format, false otherwise.
IDiagramDescriptionProvider
completeToolTipText(String, EObject)
allows the diagram type to customize the tooltip displayed in a property section of a given VSM element.
SequenceDiagramTypeProvider
implements this method to mention some Sequence specific variable available in core and diagram tool preconditions in the context of a Sequence diagram.
SiriusHelper
concerning diagrams have been moved to
org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramHelper
.
SiriusUtil
concerning diagrams have been moved to
org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramUtil
.
org.eclipse.sirius.business.api.query.EObjectQuery
concerning diagrams have been moved to
org.eclipse.sirius.diagram.business.api.query.EObjectQuery
.
org.eclipse.sirius.diagram.ui.tools.api.draw2d.ui.figures.FigureUtilities
have been moved in
org.eclipse.sirius.ext.draw2d.figure.FigureUtilities
fr.obeo.dsl.viewpoint.diagram.ui.tools.api.layout.GraphicalHelper
has been moved to
org.eclipse.sirius.ext.gmf.runtime.editparts.GraphicalHelper
.
org.eclipse.sirius.diagram.part.SiriusDiagramEditorPlugin
has been renamed into
org.eclipse.sirius.diagram.DiagramPlugin
. This plugin is not a UI plugin any more,
org.eclipse.sirius.diagram.ui.provider.DiagramUIPlugin.getPlugin()
should be used instead for UI related aspects. For example
DiagramUIPlugin.getPlugin().getPreferenceStore()
should be used instead of
DiagramPlugin.getDefault().getPreferenceStore()
or
SiriusDiagramEditorPlugin.getInstance().getPreferenceStore()
.
DeleteFromDiagramContributionItem
and
SetStyleToWorkspaceImageContributionItem
have been merged into
SiriusActionBarActionContributionItem
org.eclipse.sirius.diagram
have been moved to
org.eclipse.sirius.diagram.ui
. In your code, you should replace
SiriusDiagramEditorPlugin.getInstance().getImage()
and
DiagramPlugin.getInstance().getImage()
by
DiagramUIPlugin.getPlugin().getImage()
. That is the case for all methods concerning images in
DiagramPlugin
(previously named
SiriusDiagramEditorPlugin
).
org.eclipse.sirius.ui
have been moved to
org.eclipse.sirius.diagram.ui
, the corresponding constants in
org.eclipse.sirius.ui.tools.api.image.ImagesPath
have been moved in
org.eclipse.sirius.diagram.ui.tools.api.image.DiagramImagesPath
.
static void refreshSelection(DiagramElementMapping)
from
org.eclipse.sirius.editor.tools.api.menu.AbstractEObjectRefactoringAction
is not available anymore.
org.eclipse.sirius.business.api.preferences.SiriusPreferencesKeys.PREF_AUTO_PIN_ON_CREATE
has been moved to
org.eclipse.sirius.diagram.tools.api.preferences.SiriusDiagramPreferencesKeys
.
org.eclipse.sirius.diagram.ui.part.SiriusDiagramEditorID
org.eclipse.sirius.diagram.ui
. This id has to be changed in plugins providing additional property sections to the Sirius diagram editor (created with EEF for example).
Several extension points have been moved:
org.eclipse.sirius
to
org.eclipse.sirius.diagram
. You should change the id of the following extension point in your plugin.xml (
org.eclipse.sirius.xxxx
replaced by
org.eclipse.sirius.diagram.xxxx
):
org.eclipse.sirius.diagram
to
org.eclipse.sirius.diagram.ui
. You should change the id of the following extension points in your plugin.xml (
org.eclipse.sirius.diagram.xxxx
replaced by
org.eclipse.sirius.diagram.ui.xxxx
):
org.eclipse.sirius.common
org.eclipse.sirius.common.tools.api.util.EclipseUtil
, the method
getExtensionPlugins(Class<T>, String, String, String, Predicate<String>)
has been removed from API to avoid exposing a Guava-specific
Predicate
. Instead, use the new method
getExtensionPluginsByKey()
which returns all the extensions organized by the specified key, and filter the result according to whatever critera the
Predicate
tested on the key.
org.eclipse.sirius
org.eclipse.sirius.business.api.query.URIQuery.isSiriusEnvironmentURI
has been replaced by
isSiriusCoreEnvironmentURI
which checks that the given resource is the Sirius core Environment.xmi file.
isEnvironmentURI
which checks that the given resource has an
environment
uri scheme.
org.eclipse.sirius.business.api.dialect.DialectManager
setRefreshActivatedOnRepresentationOpening(boolean)
has been removed as the refresh on opening should be managed from the corresponding preference
org.eclipse.sirius.ui.business.api.preferences.SiriusUIPreferencesKeys.PREF_REFRESH_ON_REPRESENTATION_OPENING
.
isRefreshActivatedOnRepresentationOpening()
has been moved into
org.eclipse.sirius.ui.business.api.dialect.DialectUIManager
as it refers to an UI behavior.
DRepresentation.createContents()
(both variants) and
DRepresentation.updateContents()
EOperations have been removed. They were not used anywhere.
org.eclipse.sirius.business.api.modelingproject.ModelingProject.MODELING_PROJECT_PREDICATE
constant has been removed to reduce Sirius’s exposure of Guava’specific types. Use the equivalent
ModelingProject.hasModelingProjectNature()
method instead.
org.eclipse.sirius.business.api.query.EObjectQuery.getInverseReferences(Predicate<Setting>)
has been removed from API to avoid exposing a the Guava-specific
Predicate
type.
org.eclipse.sirius.business.api.dialect.description.AbstractInterpretedExpressionQuery
, the protected methods
appendAllLocalVariableDefinitions()
and
appendEditMaskVariables()
now take a
Map<String, Collection<String>>
instead of a Guava-specific
Multimap
. The new protected method
addDefinition()
can be used to make it easier to add entries to the map. Subclasses in Sirius have been updated to match the new signature.
org.eclipse.sirius.business.api.modelingproject.ModelingProject.ZERO_REPRESENTATIONS_FILE_FOUND_IN
has been removed without replacement. It was not really an API constant.
org.eclipse.sirius.business.api.modelingproject.ModelingProject.getMainRepresentationsFileURI()
has changed. It now marks this project as invalid and adds a marker on it, if it is considered as invalid (no or many representations files).
org.eclipse.sirius.business.api.query.IFileQuery
has been added with a method to check if file is handled by an opened session, ie:
EObjectLink
class has been removed from the metamodel. It was not used anywhere.
org.eclipse.sirius.business.api.dialect.description.IInterpretedExpressionTargetSwitch
, the
getFirstRelevantContainerFinder()
method which returned a Guava
Function<EObject, EObject>
has been replaced with the new method
getFirstRelevantContainer(EObject)
which directly returns the result of applying the previously returned function. All implementers in Sirius itself have been updated.
org.eclipse.sirius.business.api.dialect.description.DefaultInterpretedExpressionTargetSwitch(EStructuralFeature, IInterpretedExpressionTargetSwitch, Function<EObject, EObject>)
has been removed to avoid exposing a the Guava-specific
Predicate
type. Sub-classes which used it with a non-null
Function
should override the
getFirstRelevantContainer(EObject)
method to return the result of that function instead.
org.eclipse.sirius.business.api.helper.task.AbstractDeleteDRepresentationElementTask
constructor which took a Guava
Predicate<EReference>
now takes an equivalent
EReferencePredicate
(from
org.eclipse.sirius.ext.emf
).
DSEMANTICDECORATOR_REFERENCE_TO_IGNORE_PREDICATE
and
NOTATION_VIEW_ELEMENT_REFERENCE_TO_IGNORE_PREDICATE
from
org.eclipse.sirius.business.internal.session.danalysis.DanglingRefRemovalTrigger
are now instances of
EReferencePredicate
instead of Guava’s
Predicate<EReference>
.
org.eclipse.sirius.business.api.session.SessionEventBroker
, the method
addlLocalTrigger()
now takes a
org.eclipse.emf.transaction.NotificationFilter
instead of a Guava-specific
Predicate<Notification>
as first argument.
org.eclipse.sirius.tools.api.ui.RefreshEditorsPrecommitListener.IS_IMPACTING
is now a
NotificationFilter
instead of a
Predicate
, to match the API change in
SessionEventBroker.addLocalTrigger()
.
org.eclipse.sirius.business.api.session.Session
interface has a new
getSavingPolicy()
method which gives access to the currently configured saving policy.
org.eclipse.sirius.diagram
DNode.ownedDetails
and
DDiagramElementContainerImpl.ownedDetails
have been removed from the metamodel, along with the corresponding implementation methods. They were not used in practice.
DDiagramLink
EClass has been removed from the meta-model, along with the corresponding generated Java code. It was not used in practice.
DDiagram.clean()
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:
org.eclipse.sirius.diagram.tools.api.validation.constraint.AbstractDDiagramConstraint.activate()
and
deactivate()
methods.
org.eclipse.sirius.business.api.helper.SiriusHelper.unSetHarmlessDanglingReferences()
method.
org.eclipse.sirius.tools.api.profiler.SiriusTasksKey.CLEANING_NODES_KEY
constant.
DSemanticDiagram.getRootContents()
method (which was deprecated) has been removed.
DDiagram.findDiagramElements()
EOperation has been removed. It was deprecated and always returned an empty list if called.
DDiagram.info
attribute has been removed. It was not used anywhere.
DDiagram.subDiagram
reference has been removed. It was not used anywhere.
DDiagramElement.isFold()
EOperation has been removed. It was deprecated and edge folding has long been implemented using different mechanisms.
ContainerMapping
type, the following EOperations have been removed:
createContainer()
,
updateContainer()
, and
getNodesCandidate()
. Although their usage is highly discouraged, if you really need to you can currently use the corresponding methods in the internal
ContainerMappingHelper
instead (use
SiriusPlugin.getDefault().getInterpreterRegistry().getInterpreter(semanticElement)
to obtain the
IInterpreter
those methods need). As with all internal code, there is no guarantee these methods will still exist in future versions.
AbstractNodeMapping.getDNodesDone()
EOperation has been removed. It was not used anywhere.
NodeMapping
type, the
getBestStyle()
and
createListElement()
EOperations have been removed. Although their usage is highly discouraged, if you really need to you can currently use the corresponding methods in the internal
MappingHelper
instead (use
SiriusPlugin.getDefault().getInterpreterRegistry().getInterpreter(semanticElement)
to obtain the
IInterpreter
these methods need). As with all internal code, there is no guarantee these methods will still exist in future versions.
org.eclipse.sirius.diagram.business.api.diagramtype.IDiagramDescriptionProvider
, the methods
allowsPinUnpin()
,
allowsHideReveal
, and
allowsCopyPasteLayout()
have been modified to take directly the
DDiagramElement
to test (and return a
boolean
) instead of returning a Guava-specific
Predicate
which then had to be invoked.
org.eclipse.sirius.diagram.ui.tools.api.layout.PinHelper
, .the method
allowsPinUnpin()
has been modified to take a
DDiagramElement
directly and return a
boolean
, instead of taking a
DDiagram
and return a Guava-specific
Predicate
which then had to be invoked on actual
DDiagramElements
..
org.eclipse.sirius.diagram.ui.edit.api.part.ISiriusEditPart
has been added and is now part of all the type hierarchy of any EditPart provided by Sirius. This allows a simple
instanceof ISiriusEditPart
to discriminate the edit part instances coming from Sirius.
org.eclipse.sirius.diagram.sequence
org.eclipse.sirius.diagram.sequence.util.SiriusFunctions
class has been removed. It was not used anywhere.
org.eclipse.sirius.diagram.sequence.util.NotificationQuery
class has been removed. It had been exposed by mistake.
org.eclipse.sirius.diagram.sequence.business.internal.util.NotationPredicate
class has been removed from API, to reduce Sirius’s exposure of Guava’specific types.
org.eclipse.sirius.diagram.sequence.util.Range
which returned Guava-specific types (
Function
or
Ordering
) have been removed from API.
org.eclipse.sirius.diagram.sequence.template.AbstractRule
no longer inherits from Guava’s
Function
interface, but from the news ad-hoc
org.eclipse.sirius.diagram.sequence.template.Transformer
interface instead, which is functionally equivalent.
org.eclipse.sirius.ui
org.eclipse.sirius.ui.business.api.preferences.DesignerUIPreferencesKeys
has been renamed into
org.eclipse.sirius.ui.business.api.preferences.SiriusUIPreferencesKeys
getMissingDependencies()
and
getMissingDependenciesErrorMessage()
from
org.eclipse.sirius.ui.business.api.viewpoint.ViewpointSelection
now use
Map<String, Collection<String>>
instead of Guava’s
Multimap
.
org.eclipse.sirius.ui.tools.api.project.ModelingProjectManager.initializeAfterLoad()
method has been removed. There is no replacement for this method documented as “Not intended to be used by client”.
org.eclipse.sirius.ecore.extender
eDelete()
methods which took a
Predicate<EReference>
in types
ModelAccessore
,
IMetamodelExtender
and
CompositeMetamodelExtender
now take an equivalent
EReferencePredicate
(from
org.eclipse.sirius.ext.emf
).
ModelUtils.resolveAll(ResourceSet set, EReferencePredicate)
now takes an
EReferencePredicate
instead of a Guava-specific
Predicate<EReference>
.
org.eclipse.sirius.ext.base
org.eclipse.sirius.ext.base.Options.isSome()
method has been removed to reduce Sirius’s exposure of Guava’specific types. Use
Option.some()
directly instead.
org.eclipse.sirius.ext.base.relations.Relation
no longer inherits from
com.google.common.base.Function
, but keeps the same API otherwise.
org.eclipse.sirius.synchronizer
org.eclipse.sirius.synchronizer.Mapping.IS_CHECK_ONLY
constant has been removed to reduce Sirius’s exposure of Guava’specific types. Use
!Mapping.getCreator().some()
instead.
Maybe
and
MaybeFactory
types have been removed, and all their uses in
org.eclipse.sirius.synchronizer
converted to the equivalent
Option
and
Options
types from
org.eclipse.sirius.ext.base
.
MappingHiearchy.HiearchyIterator
has been removed from API.
org.eclipse.sirius.tests.support
shouldReloadSession
boolean parameter has been removed from
org.eclipse.sirius.tests.support.api.SiriusTestCase.disableUICallBackOnDialectEditor(DialectEditor)
, it was not used and could let the tester think he can change the reload behavior from the dialog factory.
org.eclipse.sirius.tests.swtbot.support.api.AbstractSiriusSwtBotGefTestCase.refreshDiagram()
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)).
org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotDesignerEditor
has been renamed into
SWTBotSiriusDiagramEditor
.
org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotDesignerGefViewer
has been renamed into
SWTBotSiriusGefViewer
.
org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotDesignerHelper
has been renamed into
SWTBotSiriusHelper
.
AbstractSiriusSwtBotGefTestCase.openRepresentation
with
SWTBotDesignerEditor
as returned type have been renamed into
openDiagram
, marked as deprecated and replaced with methods returning a
SWTBotEditor
. You can now use methods
openRepresentation
for DTree or DTable. If the
expectedRepresentationClass
is
DDiagram.class
, the returned type will be a
SWTBotSiriusDiagramEditor
.
org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusHelper.getDesignerEditor(String)
has been renamed into
getSiriusDiagramEditor
.
SWTBotSiriusHelper.getSiriusEditor(String)
to return the
SWTBotEditor
(diagram, tree or table editor) with the given name. The name is the name as displayed on the editor’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
SWTBotSiriusHelper.getSiriusEditor(String, int)
.
org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor.zoom(ZoomLevel)
to directly change the zoom level of the current diagram editor without trying to change it from the zoom combo in the tabbar.
org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor.zoomFromToolbar(ZoomLevel)
to add possibility to explicitly change the zoom level from the tabbar.
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:
org.eclipse.sirius.tests.support
: support code for JUnit (plug-in) tests using Sirius.
org.eclipse.sirius.tests.swtbot.support
: support code for SWTBot tests using Sirius.
Both plug-ins are only available if you install the new
org.eclipse.sirius.tests
feature.
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:
DDiagramSet
and its corresponding reference from
DRepresentationContainer
: No longer needed
DragAndDropTarget
,
DragAndDropTargetDescription
and
ContainerDropDescription
have been moved to diagram EPackage.
viewpoint/diagram/description/validation
EPackage has been moved to
viewpoint/description/validation
: revert what was done in step 1 by mistake.
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.
org.eclipse.sirius
org.eclipse.sirius.tools.api.command.IDiagramCommandFactory.setAutoRefreshDView()
method was removed. It had no effect, any code which called it can simply be removed.
org.eclipse.sirius.business.api.componentization.ViewpointRegistryListener
has been removed. Use
org.eclipse.sirius.business.api.componentization.ViewpointRegistryListener2
instead.
org.eclipse.sirius.business.api.session.SessionManagerListener2
and
org.eclipse.sirius.business.api.session.SessionManagerListener
have been merged into
org.eclipse.sirius.business.api.session.SessionManagerListener
which is not deprecated any more.
org.eclipse.sirius.business.api.session.SessionManagerListener.notifyUpdatedSession(Session)
has been removed. Use
org.eclipse.sirius.business.api.session.SessionManagerListener.notify(Session, int)
instead.
org.eclipse.sirius.business.api.helper.task.RemoveDanglingReferencesTask
and
org.eclipse.sirius.business.api.helper.task.RemoveSemanticDanglingReferenceTask
and
org.eclipse.sirius.tools.api.command.AbstractCommandFactory.addRemoveDanglingReferencesTask()
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
ModelChangeTrigger
to detect the detachment of
EObject
and remove the dangling references. It is added to the
SessionEventBroker
during the session opening.
org.eclipse.sirius.tools.api.ui.RefreshEditorsPrecommitListener
was a precommit
ResourceSetListener
, it became a
ModelChangeTrigger
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.
org.eclipse.sirius.tools.api.command.semantic.RemoveDanglingReferences
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
removeDanglingReferences(Resource)
to remove dangling references as an entry point.
org.eclipse.sirius.business.api.helper.task.AbstractDeleteDRepresentationElementTask.DSEMANTICDECORATOR_REFERENCE_T0_IGNORE_PREDICATE
has been removed, the internal predicate
DanglingRefRemovalTrigger.DSEMANTICDECORATOR_REFERENCE_T0_IGNORE_PREDICATE
is used instead.
org.eclipse.sirius.business.api.helper.SiriusUtil.findDiagram(EObject)
method has been removed. Use the equivalent
new org.eclipse.sirius.business.api.query.EObjectQuery(element).getParentDiagram()
instead.
org.eclipse.sirius.ui
org.eclipse.sirius.ui.tools.api.perspectives.DesignPerspective
interface has been moved to
org.eclipse.sirius.editor.tools.api.perspectives
package in
org.eclipse.sirius.editor
plugin. This perspective is now provided through the
org.eclipse.sirius.editor
plugin. The perspective ID is kept unchanged for a compatibility reason.
org.eclipse.sirius.ui.tools.api.dialogs.ExportRepresentationsAsImagesDialog
has been removed. Use
org.eclipse.sirius.ui.tools.api.dialogs.ExportSeveralRepresentationsAsImagesDialog
instead.
org.eclipse.sirius.diagram
org.sirius.diagram.graphical.edit.policies.AirNoteAttachmentEditPolicy
has been removed, with the new dangling reference management, it became identical to its superclass, use
org.eclipse.gmf.runtime.diagram.ui.internal.editpolicies.ConnectionEditPolicy
instead. Its provider
org.sirius.diagram.graphicalou .edit.policies.AirNoteAttachmentEditPolicyProvider
and declaration in plugin.xml have been removed too.
org.eclipse.sirius.table
org.eclipse.sirius.table.tools.api.command.ITableCommandFactory.setAutoRefreshDTable()
method was removed. It had no effect, any code which called it can simply be removed.
org.eclipse.sirius.tree
org.eclipse.sirius.tree.business.api.command.ITreeCommandFactory.setAutoRefreshDTree()
method was removed. It had no effect, any code which called it can simply be removed.
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:
Import-Package
(recommended) or
Require-Bundle
to depend on the library extension(s) where the code they use now lives;
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 :
viewpoint
: some of its EClasses have been moved to
viewpoint/diagram
viewpoint/description
: some of its EClasses have been moved to
viewpoint/diagram/description
viewpoint/description/style
: some of its EClasses have been moved to
viewpoint/diagram/description/style
viewpoint/description/tool
: some of its EClasses have been moved to
viewpoint/diagram/description/tool
viewpoint/description/filter
: this EPackage has been moved to
viewpoint/diagram/description/filter
viewpoint/description/validation
: this EPackage has been moved to
viewpoint/diagram/description/validation
viewpoint/description/concern
: this EPackage has been moved to
viewpoint/diagram/description/concern
org.eclipse.sirius
org.eclipse.sirius.business.api.migration.resource.StringCouple
class has been removed.
org.eclipse.sirius.business.api.dialect.description.IInterpretedExpressionTargetSwitch.getFirstRelevantContainerFinder
method has been added to let each dialect use its own
Function
to retrieve the first relevant container of a given
EObject
, i.e. the first container from which a domain class can be determined.
org.eclipse.sirius.common.ui
org.eclipse.sirius.common.ui.business.api.interpreter.VariableContentProvider
class has been removed.
org.eclipse.sirius.common.ui.tools.api.util.ISimpleAction
interface has been removed.
org.eclipse.sirius.common.ui.tools.api.dialog.RenameDialog.setText()
has been removed. You can now directly call
org.eclipse.sirius.common.ui.tools.api.dialog.RenameDialog.setDefaultNewName()
which has been added to set the default new name to display. Note that this method must be called before Dialog.create().
org.eclipse.sirius.common.ui.tools.api.dialog.RenameDialog.setTitle()
has been removed. Note that the inherited
setTile()
method is still available but must be called before Dialog.create().
org.eclipse.sirius.table
org.eclipse.sirius.table.business.api.query.DCellQuery.getExportableLabel()
method has been added to compute the label to export when the label is cropped by the
org.eclipse.emf.edit.provider.ItemPropertyDescriptor.ItemDelegator
.
org.eclipse.sirius.table.ui
org.eclipse.sirius.table.ui.business.api.helper.TableUIHelper
now uses
DCellQuery.getExportableLabel()
to compute the cell labels used in HTML export.
org.eclipse.sirius.ui
org.eclipse.sirius.ui.business.api.session.DeprecatedIEditingSession
interface has been removed. Use the corresponding methods from
org.eclipse.sirius.ui.business.api.session.IEditingSession
instead.
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).
org.eclipse.sirius.common
FeatureEditorDialog
. Use the remaining constructor instead, which provides proper behavior for both unique and non-unique features.
IEditingDomainFactory.createEditingDomain()
has been removed. Use the (inherited)
createEditingDomain(ResourceSet)
instead, which ensures correct behavior for all kinds of models (Xtext for example).
org.eclipse.sirius.common.tools.api.listener.Notification.FOLD
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.
getExtensionPlugins()
and
getElementsProvidedByPlugin
from
EcliseUtil
have been removed. If you need this kind of functionality, use the Eclipse APIs directly instead.
COLUMN_SEMANTIC
and
LINE_SEMANTIC
of
IInterpreterSiriusVariables
have been removed. Use the constants of
org.eclipse.sirius.table.tools.api.interpreter.IInterpreterSiriusTableVariables
instead.
org.eclipse.sirius
DialectServices.initRepresentations(Viewpoint, EObject)
has been removed. Use the version which takes an additional
IProgressMonitor
instead.
CreateRepresentationCommand
has been removed. Use the alternative constructor which takes an additional
IProgressMonitor
instead.
RefreshRepresentationCommand
have been removed. Use the alternative constructors which take an additional
IProgressMonitor
instead.
DisplayService.computeVisibility(Session, DDiagram, DDiagramElement)
has been removed. Use the variant
computeVisibility()
which takes a
DiagramMappingsManager
instead of a
Session
.
FilterService
have been removed:
activateCache()
: use
DisplayService.activateCache()
instead.
deactivateCache()
: use
DisplayService.deactivateCache()
instead.
activate()
: use
DisplayService.activate()
instead.
deactivate()
: use
DisplayService.deactivate()
instead.
isActivated()
: use
DisplayServiceManager.INSTANCE.getMode() == DisplayMode.NORMAL
instead.
isCollapse()
: use
isCollapsed()
instead.
isVisibleForFilters()
: use
getAppliedFilters()
instead.
isVisible()
: use
DisplayService.isDisplayed()
instead.
isFiltered()
,
isNotFiltered()
,
isVisibleForActivatedFilters(), @checkFilters()
: use
getAppliedFilters()
and
DDiagram.getActivatedFilters()
instead.
isDirectlyHidden()
and
isIndirectlyHidden()
in
HideFilterHelper
have been removed. Use the corresponding methods in
DDiagramElementQuery
instead.
SavingPolicy.save(Iterable, Map)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
AbstractCommandFactory(TransactionalEditingDomain, ModelAccessor)
has been removed. Use the variant without the
ModelAccessor
argument instead.
CommandContext(EObject)
has been removed. Use the variant which takes an additional
DRepresentation
instead.
activate(TransactionalEditingDomain)
and
deactivate(TransactionalEditingDomain)
in
IChangeListener
have been removed. Use the variants with no argument instead.
AddSemanticResourceCommand(Session, URI)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
RemoveSemanticResourceCommand
have been removed. Use the variants which takes an additional
IProgressMonitor
instead.
CreateDiagramWithInitialOperation
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
SessionManager.addResource(Session, Resource)
has been removed. Use the
Session.addSemanticResource(URI, IProgressMonitor)
instead. In code,
mySessionManager.addResource(mySession, myResource)
should be replaced by
mySession.addSemanticResource(myResource.getURI(), new NullProgressMonitor())
. Notice that this replacement has not the exact same behavior. The notifications
SessionListener.ABOUT_TO_BE_REPLACED
and
SessionListener.REPLACED
are not thrown with
addSemanticResource
contrary to
addResource
. But this kind of notifications is more for reloading of resource.
DefaultLocalSessionCreationOperation
have been removed. Use the variant which takes an additional
IProgressMonitor
instead.
SessionManager.getSession(URI)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
SessionFactory.createSession(URI)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
RefreshRepresentationCommand
has been removed. Use the class
RefreshRepresentationsCommand
instead.
RevealSiriusElement
and
RevealDDiagramElement
have been removed. Use the class
RevealDDiagramElements
instead.
DAnalysisSession.save(Map<?, ?>)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
MappingTableEntry.getImporter()
has been updated. It now returns an optional (
org.eclipse.sirius.common.tools.api.util.Option
) of
MappingTableEntry
.
IEMFCommandFactory
has been removed. It is not used in Sirius code anymore.
IDiagramCommandFactory.buildCreateDiagramFromDescription(DiagramDescription, EObject)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
dispose()
and
disposeInterpreterRegistry(EObject)
have been removed from
InterpreterRegistry
. They corresponded to dead code.
InterpreterRegistry.prepareImportsFromModelElement(IInterpreter, EObject)
has been removed. Use
InterpreterRegistry.prepareImportsFromSession(IInterpreter, Session)
instead. To get
Session
from
EObject
, you can use
SessionManager.INSTANCE.getSession(EObject)
.
SiriusHelper.createDAnalysis()
has been removed. Use
ViewpointFactory.eINSTANCE.createDAnalysis()
instead.
SessionFactory.createSession(DAnalysis)
has been removed. It is not intended to be used, but it can be replaced by
SessionFactory.INSTANCE.createSession(analysis.eResource().getURI(), new NullProgressMonitor())
.
buildDoExecuteDetailsOperation(DSemanticDecorator, RepresentationCreationDescription, String) has been pull up from @ITableCommandFactory
,
ITreeCommandFactory
and
IDiagramCommandFactory
to
ICommandFactory
.
getUserInterfaceCallBack()
has been pull up from
ITableCommandFactory
and
ITreeCommandFactory
to
ICommandFactory
. And
AbstractCommandFactory
now implements this method.
allActivatedEdgeMappings
from
Layer
and
DiagramDescription
has been removed from the viewpoint.ecore meta-model. This reference always returns empty list.
org.eclipse.sirius.diagram
IDiagramEdgeEditPart.refreshPath()
and
AbstractDiagramEdgeEditPart.refreshPath()
have been removed. It is not called in Sirius code anymore
org.eclipse.sirius.ecore.extender
IMetamodelExtender.eDelete(EObject)
,
CompositeMetamodelExtender.eDelete(EObject)
and
ModelAccessor.eDelete(EObject)
have been removed. Use the variants which takes an additional
ECrossReferenceAdapter
instead. This
ECrossReferenceAdapter
can be null.
org.eclipse.sirius.ui
ModelingProjectManager
have been removed. Use the corresponding versions which take an additional
IProgressMonitor
parameter instead.
ViewpointSelection
have been removed. Use the corresponding versions which take an additional
IProgressMonitor
parameter instead.
org.eclipse.sirius.ui.business.api.control.SiriusControlCommand
has been removed. Use the class
org.eclipse.sirius.business.api.control.SiriusControlCommand
instead (same constructor but with an additional
IProgressMonitor
parameter).
SiriusUnControlCommand
DialectUIServices.openEditor(Session, DRepresentation)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
SessionHelper.openStartupRepresentations(Session)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
SiriusControlHandler.performControl(Shell, EObject)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
SiriusUncontrolHandler.performUncontrol(Shell, EObject)
has been removed. Use the variant which takes an additional
IProgressMonitor
instead.
AbstractCreateRepresentationFromRepresentationCreationDescription
: Generalization of all
CreateRepresentationFromRepresentationCreationDescription
classes (iof plug-ins sirius.diagram, sirius.table.ui, sirius.tree.ui).
org.eclipse.sirius.table
TableHelper.getCell(DLine, String)
has been removed. Use the variant which take a DLine and a DColumn as parameters.
org.eclipse.sirius.tree
DTreeUserInteraction.refreshContent()
has been removed. Use the variant which take an additional
IProgressMonitor
parameter instead.
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.
If you have existing projects which used this technology before it became Eclipse Sirius and want to migrate to Sirius, you must:
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
).
plugin.xml
files to reference the correct extension points identifiers. In particular, all Viewpoint Specification Projects created using Viewpoint use the
fr.obeo.dsl.viewpoint.componentization
in their
plugin.xml
to register the VSMs they define. This should be changed to use the equivalent
org.eclipse.sirius.componentization
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.
*.odesign
files) is automatic: simply open your files once in the VSM editor, perform some no-op change to make the editor “dirty” and save it. The saved version will have been migrated to Sirius.
ViewpointControlCommand
is now
SiriusControlCommand
).
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).
*.aird
) 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).
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.
In the context of the move as an official Eclipse project named Sirius, all the namespaces used in the code have changed.
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 |
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
).
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.
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.
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.
IMigrationParticipant.getPackage()
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).
org.eclipse.sirius.common.tools.api.interpreter.IAcceleoInterpreterVariables
: This interface only defined a single constant, which refered to the syntax of an obsolete version of the Acceleo language.
org.eclipse.sirius.common.tools.api.resource.IFileContributorExtension
: This interface only defined a few constants relative to an extension point which does not exist anymore.
org.eclipse.sirius.reconciler
extension point definition (which used to be defined in the
org.eclipse.sirius
plug-in): This extension point is not supported anymore (and has not been for a long time).
Session
and replaced the internal calls with the equivalent versions with
IProgressMonitors
. The removed methods are:
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);
New variables are available for
sizeComputationExpression
to compute the size of edges on
EdgeStyleDescription
and
BracketEdgeStyleDescription
:
DDiagram
DEdge