
Here we will list all changes between Papyrus 4.8.0 (Eclipse 2020-06) and Papyrus 5.0.0 (Eclipse 2020-12).

==Plugin dependencies==
To ease Papyrus developement, we remove all reexported dependencies from the Manifest file.

==Changes==
Here the list of API changes for each plugin.

===org.eclipse.papyrus.infra.architecture===
*bug 565361
**'''MergedArchitectureDescriptionLanguage'''
***new method '''getTreeViewerConfigurations()'''

===org.eclipse.papyrus.infra.core.architecture===
*bug 565361
**new abstract class in the ''architecture'' ecore model: '''TreeViewerConfiguration'''
*** concret implementation can be found in the new plugin '''org.eclipse.papyrus.emf.facet.architecture''', see class '''EMFFacetTreeViewerConfiguration'''
**'''ArchitectureDescriptionLanguage''': new field '''treeViewerConfiguration'''

===org.eclipse.papyrus.infra.nattable===
*bug 517617 and bug 532452 (ensure the selection don't change after some user actions)
We change the storage of the current selection, but we keep the algorithm provided by '''TableSelectionProvider''', but we change the manipulation and the storages of the informations. 

**'''TableSelectionProvider'''
***new method '''setActive(boolean)''' to allow to listen or not the selection changes
**'''TableSelectionWrapper'''
***new constructor '''TableSelectionWrapper(final INattableModelManager manager, final SelectionLayer selectionLayer, final Collection<PositionCoordinate> selectionCells)''', 
all others are deprecated and will be removed.
***new methods '''updatePositions''', to update position of referenced elements (rows/columns/cells) after a refresh
***new methods '''buildSingleCellSelection''', '''getSelectedElements''', '''getSingleSelectedCells''', '''addSelectedRow''', '''addSelectedColumn''', '''removeSelectedRow''', '''removeSelectedColumn''', '''copyRowsSelection''', '''copyColumnsSelection'''
***methods '''getFullySelectedRows''' and '''getFullySelectedColumns''' changed without breaking API: before the returned map used the row index as key, and now this same map use the row position as key. To obtain the row index, you must call '''selectionLayer.getRowIndexByPosition'''

*bug 486733
**'''PapyrusNatTableComparatorChooser'''
***change visibility from protected to public for method '''rebuildComparator'''

===org.eclipse.papyrus.infra.ui.emf===
*bug 565361
**'''Activator'''
***remove public field '''CUSTOMIZATION_MANAGER_SECTION''' -> now defined in the new class '''WorspaceCustomizationUpdater''' as protected
***method '''restoreDefaultCustomizationManager''' has been renamed into '''resetToDefaultCustomizations'''

==Behavior changes==
*bug 565361:
**The EMFFacet Customizations applied in the ModelExplorer are now defined in an ArchitectureDescriptionLanguage (Architecture file). If not, we continue to apply them using their plugin.xml declaration.
**When the user changes the customizations to apply (using the ModelExplorer action), this change is now associated to the current edited model
**As we define EMFFacet customizations in Architecture File and we associate user changes to an Papyrus model, the list of applied Customizations is now updated each time the user edit a new model.
**The applied Customizations are also updated when the user change the ArchitectureDescriptionLanguage to use it is model, to be consistent with the current language.
**A button to reset the applied Customization to the initial definition has been added to the ModelExplorer toolbar.