Release Notes

1. Changes in Collab 15.3.0 (from Collab 15.1.0)

1.1. User-Visible Changes

JRE17 is required to use Collab.

1.1.1. Tools Credentials Application

The Tools Credentials Application now handle the -eclipse.password <file path> option, which can be used with -eclipse.keyring to use the content of the specified file as the default password instead of saving the password in the secure storage.

1.1.2. REST Admin Server

A new endpoint has been added to the REST Admin Server to add the capability to export the commit history of a repository. It is available on /api/v1.0/repositories/history/{repositoryId} with the following optional query parameters:

  • from

  • to: the timestamp specifying the latest commit used to import metadata. The timestamp should use the following format yyyy-MM-ddThh:mm:ss.SSS or the time since epoch in milliseconds.. For example, for the date 03/08/2017 14h28m453ms use the timestamp 2017-08-03T10:14:28.453. The framework selects the closest commit preceding this date. If omitted, exports to the last commit of the repository. This option is meaningful only if -importType is one of ALL, COMMIT_HISTORY_ONLY, PROJECT_AND_COMMIT_HISTORY.

  • squashCommitHistory: Squash consecutive commits done by the same user with same description (default: true)

  • includeChanges: Add partial changes details for each commit: compute the number of newObjects/modifiedObjects/deletedObjects properties. The Importer CLI application can be used to get the commit history detailed changes for each commit. (default: false)

New endpoints have been added to monitor the server health, this introduces the possibility to get monitoring info served by the REST Admin server, they are available on

  • /monitoring/health

  • /monitoring/info

  • /monitoring/metrics

The REST Admin Server is now able to able to manage static repositories for the following services:

  • Repositories:

  • start/stop

  • list : authenticationType of static repositories is now retrieved and part of the response

  • Users: list/add/update/delete services are now able to handle static repositories. The behavior and result depends on the authentication type of each repository.

1.2. API Changes

Compatibility with Sirius 7.4.1, Eclipse 2023-03 and Jetty 10.0.20

Compatibility with Java17. (runtime and compilation)

Compatibility with CDO 4.22 (forked by Obeo).

1.2.1. Changes in fr.obeo.dsl.viewpoint.collab

fr.obeo.dsl.viewpoint.collab.api.activity.CDOCommitMetadataExporter has been moved from fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.CDOCommitMetadataExporter in plugin fr.obeo.dsl.viewpoint.collab.activity.model.

fr.obeo.dsl.viewpoint.collab.api.UnresolvedProxyExceptSemanticCrossReferencer.getInvalidURIs() method has been added to allow to get URIs of objects detected has invalid and improve error feedbacks in diagnostics or proxy checks step of importers.

fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter<T extends org.eclipse.emf.cdo.view.CDOView> has become a generic class in order to ease management of subclasses using either org.eclipse.emf.cdo.transaction.CDOTransaction or org.eclipse.emf.cdo.view.CDOView. Several methods and fields have been renamed in order to have view instead of transaction in their names. fr.obeo.dsl.viewpoint.collab.api.CDOExport can now be used with a org.eclipse.emf.cdo.transaction.CDOTransaction or a org.eclipse.emf.cdo.view.CDOView by subclasses to extract data from a CDO repository. fr.obeo.dsl.viewpoint.collab.api.CDOImporter continues to use org.eclipse.emf.cdo.transaction.CDOTransaction has it sends data to a CDO repository.

Several methods of fr.obeo.dsl.viewpoint.collab.api.image.RemoteImageRegistryService have been modified to be able to take org.eclipse.emf.cdo.view.CDOView instead of org.eclipse.emf.cdo.transaction.CDOTransaction as parameter: getExistingRemoteImageRegistry(CDOView), downloadImage(IFile, CDOView), downloadImage(IFile, String, CDOView),hasImage(String, CDOView).

1.2.2. Changes in fr.obeo.dsl.viewpoint.collab.ui

fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectSessionSettingsPage.getSiriusPreferencesSaver() and fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectSessionSettingsPage.SiriusPreferencesSaver have been added to delay and perform the session preference save once the session is created without passing the wizard page. This also allows to avoid some NullPointException or InvalidThreadAccess which used to occur in previous versions in case of invalid license or legacy model detection.

fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectRemoteResourceAndLocalProjectNamePage.setHasAdditionalErrors(boolean) can be used that isPageComplete() or computeLocalProjectComplete() must not override it.

1.2.3. Changes in fr.obeo.dsl.viewpoint.collab.tools

fr.obeo.dsl.viewpoint.collab.tools.api.helper.AdminServerArgumentHelper.parseArgumentAtIndex(String, String) is now able to mark -eclipse.password as ignored argument as already done for -eclipse.keyring. It allows the CLI applications which use this helper to identify those secure storage management arguments and let the platform manage them.

1.2.4. Changes in fr.obeo.dsl.viewpoint.collab.importer

Arguments of the Importer CLI application have been modified. They are defined as constants in fr.obeo.dsl.viewpoint.collab.importer.api.ImporterConstants:

  • -checkout,-squashCommitHistory `, `-importFilePath, -importImages have been added.

  • -exportCommitHistory and -XMLImportFilePath have been deprecated.

  • the ImportType enumeration has been modified with two new types: COMMIT_HISTORY_ONLY and PROJECT_AND_COMMIT_HISTORY.

fr.obeo.dsl.viewpoint.collab.importer.api.ImporterCDOExporter has been modified to be able to open a org.eclipse.emf.cdo.view.CDOView on the wanted timestamp instead of a org.eclipse.emf.cdo.transaction.CDOTransaction and to modify the repository head. Code duplication has also been reduced to remove all code already defined in fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter<CDOView>.

plugins/fr.obeo.dsl.viewpoint.collab.importer/src/fr/obeo/dsl/viewpoint/collab/importer/api/ImporterConstants.java

1.2.5. Changes in fr.obeo.dsl.viewpoint.activity.model

fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.AbstractCDOCommitMetadataExporter has been extracted from fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.CDOCommitMetadataExporter to allow creation of client-side CDO commit exporter in plugin fr.obeo.dsl.viewpoint.collab and server-side CDO commit exporter in plugin fr.obeo.dsl.viewpoint.collab.server.admin.

Several additions have been done in fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.CommitMetadataExporter:

  • A new export method with an additional parameter to allow impacted representation computation as presented in the Commit History view.

  • The constant ZONED_DATE_FORMAT has been added to share a common date formatter to parse and serialize CDO commit timestamps. The chosen format is "yyyy-MM-dd’T’HH:mm:ss.SSSZ".

  • parseDateTime(String) method has been added to share a common behavior for commit metadata exporters used in REST Admin and Importer CLI). It parses a String into a date. The argument can be in yyyy-MM-ddThh:mm:ss.SSS or yyyy-MM-ddThh:mm:ss.SSS±hhmm format or time in ms since Instant.EPOCH(1970-01-01T00:00:00Z). If HEAD or 0 is used, it will be interpreted as the last commit on the repository.

  • getHeadInstant(CDOCommitInfoManager, CDOBranch) computes the {@link Instant} corresponding to the last commit of the given branch.

  • getSafeInstant(Instant, Instant, Instant) checks the given instant and returns a value inside [repoCreation, lastCommit] bounds. It also handles the HEAD special case for which it returns the timestamp of the last commit.

fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.CDOCommitMetadataExporter has been moved to plugin fr.obeo.dsl.viewpoint.collab and renamed into fr.obeo.dsl.viewpoint.collab.api.activity.CDOCommitMetadataExporter.

fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.GsonActivityMetadataSerializer has been removed: fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.ActivityMetadataToJsonTransformer has been reworked to use the POJO objects for JSON serialization of the commit history.

1.2.6. Changes in fr.obeo.dsl.viewpoint.collab.common

The system property fr.obeo.dsl.viewpoint.collab.common.commit.description.max.length has been created to be able to change from the default 255 character limit. This limit is due to the default org.eclipse.net4j.db.h2.H2Adapter that considers the commit comment as a VARCHAR. Increasing the value of this property requires a db adapter that handles that DBField with a type for longer text (like CLOB). If the commit description is longer than the accepted max length, it will be truncated before commit to match the max length in core wizards, actions and session save operations. For components extending the collaborative layer, if they directly call setCommitComment() and commit() methods on the CDO transaction, they can use fr.obeo.dsl.viewpoint.collab.common.internal.commit.CommitCommentUtil.fitCommitDescriptionLength(String) to fit their commit comment. -1 can be used to remove the limitation. Otherwise only values greater than or equals to 10 are accepted. "Xxxxxxxxxx" will become "Xxxx […​]". The commit description dialog displayed on "Save with description" has also been modified to take this property into account. If the property value if -1, it will take the system dependent SWT widget Text.LIMIT length. fr.obeo.dsl.viewpoint.collab.ui.api.dialogs.CommitDescriptionDialog will use the value to configure the maximum number of characters of is text widget.

1.2.7. Changes in fr.obeo.dsl.viewpoint.collab.server.admin

HealthEndpoint, InfoEndpoint and MetricsEndpoint have been added in package fr.obeo.dsl.viewpoint.collab.server.admin.api.monitoring. They are registered on /monitoring/health, /monitoring/info, /monitoring/metrics and introduce the possibility to get monitoring info served by the REST Admin server. The corresponding responses classes HealthResponse, InfoResponse and MetricsResponse have been added in package fr.obeo.dsl.viewpoint.collab.server.admin.api.monitoring.io.

fr.obeo.dsl.viewpoint.collab.server.admin.api.repository.operation.HistoryRepositoryResource is a new servlet able to return the commit history of a repository. Its response fr.obeo.dsl.viewpoint.collab.server.admin.api.repository.operation.RepositoryHistoryResponse is created by fr.obeo.dsl.viewpoint.collab.server.admin.api.io.ResponseFactory.createRepositoryHistoryResponse(Repository, ActivityMetadataExport).

fr.obeo.dsl.viewpoint.collab.server.admin.api.AdminServerCommonConstants and fr.obeo.dsl.viewpoint.collab.server.admin.api.LDAPUtil have been modified to complete the LDAP and OpendID Connect support in dynamic repositories with the same capabilities and parameters than static repositories.

fr.obeo.dsl.viewpoint.collab.server.admin.api.project.SharedModelingProjectResource is now able to use the checkout parameter if passed in the HTTP request to perform its operations for the given timestamp in the CDO repository.

Several changes have been done in fr.obeo.dsl.viewpoint.collab.server.admin.api.RepositoryManager:

  • createUser/deleteUser now takes the repository name as parameter instead of a fr.obeo.dsl.viewpoint.collab.server.admin.api.repository.RepositoryData.

  • canHandleAuthenticationType(org.eclipse.emf.cdo.server.IRepository) has been added to check if the authentication type of the given repository is managed by a repository manager.

Several changes have been done in fr.obeo.dsl.viewpoint.collab.server.admin.api.AbstractRepositoryManager:

  • getAllUsers(String repositoryNAme) is now able to return the list of users from any repository (static or dynamic) instead of returning an empty list by default.

  • addition of a default implementation of canHandleAuthenticationType(IRepository). It returns false.

1.2.8. Changes in fr.obeo.dsl.viewpoint.server.usermgmt

fr.obeo.dsl.viewpoint.collab.server.usermgmt.api.manager.CollabFileUserManager.getUserIds() has been added to provide the capability to callers to get the list of user ids.

2. Changes in Collab 15.1.0 (from Collab 15.0.0)

2.1. User-Visible Changes

2.2. API Changes

Compatibility with Sirius 7.1.0.

2.2.1. Changes in fr.obeo.dsl.viewpoint.collab.ui

fr.obeo.dsl.viewpoint.collab.ui.api.views.CommitInfosProvider has been extracted from fr.obeo.dsl.viewpoint.collab.ui.api.views.CommitInfosView.

2.2.2. Changes in fr.obeo.dsl.viewpoint.collab

The methods getAllDependencies and getDirectDependencies have been added in fr.obeo.dsl.viewpoint.collab.api.remotesession.CollaborativeSessionQuery to have information about project dependencies.

The method fr.obeo.dsl.viewpoint.collab.api.CDORepositoryManager.getOrCreateTransaction(ResourceSet, Optional<String>, Map<String, Object>) visibility has been changed from private to public to allow to pass options on creation from other components. It was already called by the other getOrCreateTransaction public methods.

The method fr.obeo.dsl.viewpoint.collab.server.admin.api.AbstractRepositoryManager.canHandleAuthenticationType(IRepository) has been added to add the capability for each fr.obeo.dsl.viewpoint.collab.server.admin.api.IRepositoryManager to indicate if it can handle the given org.eclipse.emf.cdo.server.IRepository. This allows to retrieve the authentication type of a repository whether it is static or dynamic.

The fr.obeo.dsl.viewpoint.collab.server.admin.api.user.UsersResource, ` fr.obeo.dsl.viewpoint.collab.server.admin.api.repository.RepositoryResource`, fr.obeo.dsl.viewpoint.collab.server.admin.api.AdminServletValidator, fr.obeo.dsl.viewpoint.collab.server.admin.api.AdminServerCommonConstants have been modified to be able to handle static repositories: start/stop/list capabilities for the repositories related endpoints and add/update/delete/list capabilities for the users related endpoints. fr.obeo.dsl.viewpoint.collab.server.admin.api.AbstractRepositoryManager.canHandleAuthenticationType(IRepository) has been added to add the capability for each fr.obeo.dsl.viewpoint.collab.server.admin.api.IRepositoryManager to indicate if it can handle the given org.eclipse.emf.cdo.server.IRepository. This allows to retrieve the authentication type of a repository whether it is static or dynamic.

The REST admin specific authenticator, users manager and security manager have been removed: their specific capabilities have been moved in core Collab authenticators, users manager and security manager. In case of manual migration of dynamic repositories, the following replacements need to be done in their .xml description files: * userManager: replace type="collab_web_services" with type="collab_file" * securityManager: replace type="collab_web_services" with type="collab" * authenticator: replace type="special_user_ldap" with type="ldap" or replace type="special_user_openidconnect" with type="openidconnect".

2.2.3. Changes in fr.obeo.dsl.viewpoint.collab.server.usermgmt

fr.obeo.dsl.viewpoint.collab.user.profile.manager.CollabUserProfileManager.setSpecialUserAuthenticator(BiFunction<String, char[], Boolean>) has been added to provide the capability to register a special user authenticator function. It is used by the REST Admin component to register and handle the server-side WEB_ADMIN user. It is also set on the delegated authenticator if present. The authenticate method use it to handle the special user.

2.2.4. Changes in fr.obeo.dsl.viewpoint.collab.server.user.profile

The method fr.obeo.dsl.viewpoint.collab.user.profile.manager.CollabUserProfileManager.setSpecialUserAuthenticator(BiFunction<String, char[], Boolean>) has been added to provide the capability to register a special user authenticator function. It is used by the REST Admin component to register and handle the server-side WEB_ADMIN user. It is also set on the delegated authenticator if present. The authenticate method use it to handle the special user.

3. Changes in Collab 15.0.0 (from Collab 14.2.0)

3.1. User-Visible Changes

3.1.1. Image management

A new dialog has been added to ease the selection of images when setting a style to workspace image to a node. The display of this dialog allows to access the images of the repository in «Gallery» mode to have a preview of the available images. The dialog also provides features to modify, delete or add new images to the repository.

Images on server can also be managed via the pop-up menu on the «*.aird» file or on the shared project > Manage Images from Remote Server.

3.1.2. Import/Export wizards

Export wizard: Already used images are now always considered to be exported. Moreover, a new wizard page has been added when exporting a project to the server to allow the user to choose which workspace images to consider to export to the server. The considered images will NOT be exported only if override=false and the image already exists on the server.

Import wizard: The checkbox «Export images to remote repository» has been removed and replaced by a new page in the import wizard. It is possible to either import all images from the repository or import only used images or not import any image.

Export wizard: The checkbox «Override workspace images» in the export wizard has been removed since a new feature is now used to select images for export. Images referenced by representations are now always exported by default.

3.1.3. Exporter application

Addition of the Exporter application. This application allows to trigger the export of local given projects with representation on CDO repository. More informations about this application can be found in the documentation

3.1.4. REST Admin Server

The REST Admin Server is no longer flagged as an experimental feature. * The OpenId Connect authentication is now available for dynamic repositories. * The Web socket and web socket secured protocols (ws:// and wss://) are now available as connection types without explicit client-side activation.

The server credentials are no longer stored in the realm.properties in the server configuration folder.

  • The server use the Eclipse secure-storage to keep authorized users credentials. The first time the server is launched, if no credentials exist in the secure storage, the server initializes a default user with «admin» login and generates a token that can be used as password. This token is generated in the same folder that on containing the server properties file.

  • New users or tokens can be added or removed by using the new Tools Credentials Application.

3.1.5. Tools Credentials Application (former Importer Credentials Application)

The Importer Credentials Application has been renamed into Tools Credentials Application. The application id has been renamed from fr.obeo.dsl.viewpoint.collab.importer.credentials to fr.obeo.dsl.viewpoint.collab.tools.credentials.

  • This application still manage the importer credentials (store and clear).

  • In addition, this new application allows to manage the admin WebService authorized users: Add or remove users. Add or revoke users tokens. See the Tools Credentials Application related documentation for more details.

3.2. API Changes

Compatibility with Sirius 7.0.4, Eclipse 2021-06 and Jetty 10.0.6.

Bundle Required Execution Environment (BREE) has been moved from JavaSE-1.8 to JavaSE-11 as done in Sirius 7.0.

3.2.1. Changes in fr.obeo.dsl.viewpoint.collab

fr.obeo.dsl.viewpoint.collab.api.image.RemoteImageRegistryService.deleteImage(String, CDOTransaction) and fr.obeo.dsl.viewpoint.collab.api.image.RemoteImageRegistryService.uploadImage(String, InputStream, CDOTransaction) has been added to improve adding and deleting images on the server using the new image management features. fr.obeo.dsl.viewpoint.collab.api.image.RemoteImageRegistryService.hasImage(String, CDOTransaction) has also been added to know if images exist on the repository, to avoid overwriting them when using the new image export feature. Finally, fr.obeo.dsl.viewpoint.collab.api.image.RemoteImageRegistryService.isImageSizeValid(File) has been added to check that the image file size does not exceed the maximum allowed size.

Enum fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.ImportExportResourceStatus has been added to get the status of all resources managed by the import/export process. fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.computeNotExportedImportedResources(Set<Resource>, Map<String, String>) has also been added to compute all resources that have not been handled by the import/export process and the new method fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.isCandidateResource(String) allow to identify resources that are candidates for the import/export process; this is actually used to identify resources that are not exported or not imported in AbstractImporterExporter.computeNotExportedImportedResources(Set<Resource>, Map<String, String>). Finally, fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.getResourcesPathByStatus(ImportExportResourceStatus) has been added to get all resources associated to an import/export status.

fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.PREF_MAX_KILOBYTES_IMAGE_SIZE has been added to define the maximum file size allowed to upload an image to the server.

Several methods have been updated to better manage the images to import/export. It is now possible to add an additional list of images to import/export and to choose if the images can be overridden on the target location. AbstractImporterExporter.ImportExportMode enum is also part of the method signatures to inform about how the images are copied.

  • fr.obeo.dsl.viewpoint.collab.api.CDOImporter.importLocalFilesIntoRepository(Set<URI>, CDORepositoryManager, boolean, boolean, List<String>, boolean, Map<String, String>, IProgressMonitor). fr.obeo.dsl.viewpoint.collab.api.CDOImporter.importLocalFilesIntoRepository(Set<URI>, CDORepositoryManager, boolean, Map<String, String>, IProgressMonitor) has been added as simplified API to ignore the image management.

  • fr.obeo.dsl.viewpoint.collab.api.CDOExporter.exportResourcesFromRepository(Set<URI>, CDORepositoryManager, boolean, ImportExportImageMode, Map<String, String>, IProgressMonitor)

  • fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.copyModel(CDORepositoryManager, boolean, List<String>, boolean, Map<String, String>, IProgressMonitor, Set<EObject>, Set<Resource>)

  • fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.execute(Set<URI>, CDORepositoryManager, boolean, List<String>, boolean, Map<String, String>, IProgressMonitor)

  • fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.copyWorkspaceImagesAndUpdateStyle(Set<Resource>, Map<String, String>, List<String>, boolean)

Several methods have been updated to use java.util.Optional<T> as parameter or return type instead of org.eclipse.sirius.ext.base.Option<T> which has been deprecated in Eclipse Sirius:

  • fr.obeo.dsl.viewpoint.collab.api.branch.CDOBranchSelectorRegistry.getBranchSelector(CDOSession)

  • fr.obeo.dsl.viewpoint.collab.api.exception.ISiriusRemoteExceptionHandler.handleNetworkBreakdown(CDORepositoryManager, String, Optional<URI>)

  • fr.obeo.dsl.viewpoint.collab.api.exception.DefaultSiriusRemoteExceptionHandler

  • handleNetworkBreakdown(CDORepositoryManager, String, Optional<URI>)

  • informEndUserAboutNetworkBreakdown(CDORepositoryManager, String, Optional<URI>)

3.2.2. Changes in fr.obeo.dsl.viewpoint.collab.ui

fr.obeo.dsl.viewpoint.collab.ui.api.command.AbstractSharedProjectHandler has been added to provide a common abstract handler used to enable popup menus on a valid shared representation file or shared project.

In fr.obeo.dsl.viewpoint.collab.ui.api.IImageKeys, IMG_IMAGE_OBJ, IMG_SHARED_PROJECT, IMG_SHARED_FOLDER and IMG_SHARED_IMAGE_FILE have been added to distinguish remote items from local items in TreeViewers that manage remote images.

The abstract class fr.obeo.dsl.viewpoint.collab.ui.api.dialogs.AbstractSelectImageToUploadDialog has been created to provide access to the dialog instance and to be able to add images to upload through the AbstractSelectImageToUploadDialog.addImagesToUpload(Set<IPath>) method without using the FileDialog which is invoked by the Browse button. This class is mainly used in our SWTBot tests to bypass the issues brought by the FileDialog.

fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectLocalProjectToExportWizardPage.ICONS_INFORMATION constant has been created to get the information icon similarly to fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectLocalProjectToExportWizardPage.ICONS_PREFERENCES_HELP

A new page has been added to the export wizard, with the fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ExportModelToRemoteWizard.imagesToExport field. The class fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectImagesToExportWizardPage has been added to implement this page.

fr.obeo.dsl.viewpoint.collab.ui.api.wizards.AbstractCreateLocalProjectRemoteWizard.createLocalProject(IProject, IProgressMonitor) and fr.obeo.dsl.viewpoint.collab.ui.api.wizards.AbstractCreateLocalProjectRemoteWizard.refreshProject(String) have been added to improve the creation of projects using the Import or Connect to Remote Project wizards.

fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ExportModelToRemoteWizard.doImportLocalFilesOnRepository(Set<URI>, CDORepositoryManager, boolean, boolean, IProgressMonitor) has been replaced by fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ExportModelToRemoteWizard.doImportLocalFilesOnRepository(Set<URI>, CDORepositoryManager, boolean, IProgressMonitor). The parameter boolean exportWorkspaceImages has been removed due to the use of the new export feature.

Several methods have been updated to use java.util.Optional<T> as parameter or return type instead of org.eclipse.sirius.ext.base.Option<T> which has been deprecated in Eclipse Sirius:

  • fr.obeo.dsl.viewpoint.collab.ui.api.actions.editor.AbstractSaveRemoteChangesActionHandler

  • Optional<CDORepositoryManager> getCurrentRepositoryManagerIfAny()

  • Optional<CDORepositoryManager> getCurrentRepositoryManagerIfAny(ISelection selection)

  • Optional<Session> getCurrentSession()

  • Optional<Session> getCurrentSession(ISelection selection)

  • Optional<CDOTransaction> getOrCreateTransaction(ISelection selection) throws RepositoryConnectionException

  • fr.obeo.dsl.viewpoint.collab.ui.api.exception.UISiriusRemoteExceptionHandler.informEndUserAboutNetworkBreakdown(CDORepositoryManager, String, Optional<URI>)

  • fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectLocalProjectToExportWizardPage.getSession(IProject)

The parameter allowWorkspaceImagesImport has been removed from fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectRemoteResourceAndLocalProjectNamePage.SelectRemoteResourceAndLocalProjectNamePage(Session, String, String, String, AbstractCreateLocalProjectRemoteWizard). Now, the options related to the images are managed in fr.obeo.dsl.viewpoint.collab.ui.internal.wizards.remoterepresentations.ImportOptionsPage

fr.obeo.dsl.viewpoint.collab.api.CDOExporter.exportResourcesFromRepository(…​) has been modified to replace the boolean parameter exportImages by exportImageMode which allows fine grained option.

fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectLocalProjectToExportWizardPage.exportWorkspaceImages field has been removed since a new feature is used to export Workspace Images, and referenced images from representations are now always exported. According to the deletion of this field, fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectLocalProjectToExportWizardPage.createWorkspaceImagesButton(Composite) and fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectLocalProjectToExportWizardPage.exportWorkspaceImages() have been removed.

fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.wizards.SelectRemoteUserProfileResourceAndLocalProjectNamePage.SelectRemoteUserProfileResourceAndLocalProjectNamePage(Session, String, String, String, boolean, AbstractCreateLocalProjectRemoteWizard) has been removed.

3.2.3. Changes in fr.obeo.dsl.viewpoint.collab.importer

fr.obeo.dsl.viewpoint.collab.importer.api.ImporterExporterConstants.java has been added to list each common arguments available for the Importer and Exporter application.

fr.obeo.dsl.viewpoint.collab.importer.api.ExporterConstants.java has been added to list each arguments available for the Exporter application.

In order to share arguments between importer and Exporter application, following arguments -importerLogin, -importerPassword and -importerCredentials have been renamed into -repositoryLogin, -repositoryPassword and -repositoryCredentials.

3.2.4. Changes in packaging

The feature fr.obeo.dsl.viewpoint.collab.model has been added to provide all cdo native plugins. It depends on the org.eclipse.sirius.model.feature feature and the org.eclipse.gmf.runtime.notation plugin. The fr.obeo.dsl.viewpoint.runtime.collab feature imports its.

The fr.obeo.dsl.viewpoint.runtime.cdonative and fr.obeo.dsl.viewpoint.runtime.ide.ui.cdonative features have been deleted and replaced by the single feature fr.obeo.dsl.viewpoint.collab.model.

4. Changes in Collab 14.2.0 (from Collab 14.1.0)

4.1. User-Visible Changes

The log information of Importer application has been changed because of a refactoring of the steps order to address a problem with imported images. There is now a first step with import of projects and a second with archiving of projects. The number of projects in «Import to local final status» can be different of the number in «Archiving final status». Indeed, some dependency projects can also be archived.

Addition of a new authentication mode for the CDO server based on OpenID Connect.

4.2. Developer-Visible Changes

Since CDO 4.6, is it possible to release acquired locks at commit time. We can choose either to release all locks by default and provide an exemption list or release only locks provided in the exemption list. We have adopted the following behavior since the 15.0.0 version:

  • All implicit locks (and explicit locks if the option is activated) are now released during the CDO transaction commit.

  • The release of all implicit locks that was done in a second time is now only done if the CDO transaction is not dirty (nothing to commit on the CDO Server).

  • With this new behavior we avoid sending two different messages to the server: one for the commit, a second one for the release of implicit locks.

4.3. API Changes

4.3.1. Changes in fr.obeo.dsl.viewpoint.collab.server.usermgmt

fr.obeo.dsl.viewpoint.collab.server.usermgmt.api.auth.AbstractAuthenticatorDelegateConfig has been created to mutualize code for User profile and user management authenticators.

fr.obeo.dsl.viewpoint.collab.server.usermgmt.api.auth.IAuthenticatorConfig has been created to manage a delegate authenticator from User profile and user management authenticators.

The plugin fr.obeo.dsl.viewpoint.collab.server.openidconnect has been created for handling authentication with the OpenID Connect protocol on the CDO server.

fr.obeo.dsl.viewpoint.collab.common.user.protocol.OpenIDAuthenticationInfo has been created to hold URL information

fr.obeo.dsl.viewpoint.collab.ui.credentials.OpenIDConnectAuthenticationDialog has been created to prompt the user for the OAuth authentication web page

fr.obeo.dsl.viewpoint.collab.ui.credentials.OpenIDConnectCredentialProvider has been created to provide a authentication information from a OpenID web page

5. Changes in Collab 14.1.0 (from Collab 14.0.1)

5.1. User-Visible Changes

A page has been added in the «Shared Project Creation» wizard to allow users to override refresh preferences for the being created shared project. See Sirius documentation and Team Sirius documentation.

The tab «Repository Information» that is available in Properties dialog box on Aird files of shared modeling project has been updated and renamed to «Collaborative Session Details». It displays information about locked elements of this shared project. See documentation of _Collaborative Session Details.

The label of new notes is now aligned at the top. Since Collab 13.0.1/Sirius 6.3.2, the label of the new notes is centered vertically instead of being aligned at the top. A silent migration is also done to repair notes with wrong alignment.

5.2. API Changes

5.2.1. Changes in fr.obeo.dsl.viewpoint.collab

fr.obeo.dsl.viewpoint.collab.api.image.RemoteImageRegistryService.downloadImage(IFile, String, CDOTransaction) and fr.obeo.dsl.viewpoint.collab.api.image.RemoteImageRegistryService.uploadImage(IFile, String, CDOTransaction) have been added to better manage the key used to store the image on the server.

The parameter projectNameReplacement fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.copyWorkspaceImagesAndUpdateStyle(Set<Resource>, Map<String, String> projectNameReplacement) method has been added to have images created in the right path. The CDOImporter and CDOExporter sub-classes have been modified accordingly.

5.2.2. Changes in fr.obeo.dsl.viewpoint.collab.ui

The class fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectSessionSettingsPage has been added. It corresponds to the «Shared Project Creation» wizard page (see User-Visible Changes). By default, the refresh preferences are not overridden for the project. fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.PREF_ENABLE_PROJECT_SPECIFIC_SETTINGS_DEFAULT_VALUE has been added to define the default value to know if the refresh preferences are overridden or not.

The protected method fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ImportModelFromRemoteWizard.getSelectRemoteResourceAndLocalProjectNamePage(Session) has been created in order to be able to override only this page of the wizard instead of having to override the addPages method forcing the developer to duplicate code.

6. Changes in Collab 14.0.1 (from Collab 14.0.0)

Minor release without API changes.

Version tailored for Sirius 6.4.1.

7. Changes in Collab 14.0.0 (from Collab 13.0.1)

7.1. User-Visible Changes

When creating, cloning or moving a representation, the associated semantic target is locked. See documentation. Note that, if the user has only a read only right on the semantic element, he can not create/clone/move a representation on it See documentation.

7.2. API Changes

7.2.1. Changes in fr.obeo.dsl.viewpoint.collab

The protected method fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.flushCommandStack() has been added in order to allow implementation to flush the command stack before closing transaction (to clean DefaultOperationHistory of all operations executed).

The static field fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.copier of type org.eclipse.emf.ecore.util.EcoreUtil.Copier has been removed as it has no reason to be here. This map is always returned by the method fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.fillResources(Map<Resource, List<EObject>>, Set<EObject>, Set<Resource>, IProgressMonitor). The corresponding static method fr.obeo.dsl.viewpoint.collab.api.CDOImporter.getCurrentInitialToCopy() has been removed too.

7.2.2. Changes in fr.obeo.dsl.viewpoint.tests.collab.support

A new waiting condition class is available, fr.obeo.dsl.viewpoint.tests.collab.support.api.asserts.LockCondition. It allows to wait that the permission authority return the expected lock status.

7.2.3. Changes in fr.obeo.dsl.viewpoint.collab.ui

fr.obeo.dsl.viewpoint.collab.ui.filterProviders extension point has been added so that element changed in the commit history view can be filtered. Developer can provide an extension implementing the new fr.obeo.dsl.viewpoint.collab.ui.api.views.ICommitHistoryTreeViewerFiltersProvider API.

The public method fr.obeo.dsl.viewpoint.collab.ui.api.views.CommitInfosView.getCommitInfoViewFilterManager() has been added in order to return the manager responsible for retrieving and applying filters to the Commit History changes tree viewer.

The public method fr.obeo.dsl.viewpoint.collab.ui.api.views.CommitInfosView.openFilterSelectionDialogAndRefreshFilter() has been added to open a dialog allowing to select active filters for elements displayed in the changes tree viewer of the commit history view.

8. Changes in Collab 13.0.1 (from Collab 13.0.0)

8.1. User-Visible Changes

It is now possible to cancel the save from the commit description dialog. When clicking on «Cancel», the user changes are kept unsaved locally and no commit is performed.

The import of data from the server now gets feature extensions stored in the .srm resource back in the resulting .aird.

The export of data to the server now tries to dispatch the feature extensions referencing a representation to the corresponding .srm resource. This behavior can be disabled with the system property fr.obeo.dsl.viewpoint.collab.internal.export.move.feature.extension.srm=false.

8.2. Administrator-Visible Changes

‹Importer Credentials› is a new application that stores or clear credentials for the importer in the Eclipse’s Secure Storage. It is stored in a different entry than the credentials the user can save with the remember me button.

fr.obeo.dsl.viewpoint.collab.user.profile.manager.CollabUserProfileManagerConfig has new accessors method getPermissionSemanticFileExtensions and setPermissionSemanticFileExtensions concerning the new property defining the semantic file extensions that can be automatically added in a new server with user profile as permission for semantic resources.

fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.services.UserProfileModelerServices.isAdministrator(User) has been added in the User Profile VSM services to check if a user is an administrator.

fr.obeo.dsl.viewpoint.collab.user.profile.UserProfileUtil.initializeRoles(Realm, List<String>) has been added in order to initialize a realm with a role «MODIFY_SEMANTIC_ROLE» with a resource permission for each file extension of the string list parameter.

Importer application arguments have been improved for the Offline mode (import from an xml backup of the databse). It can now be used with only the outputfolder and XMLImportFilePath arguments.

8.3. Developer-Visible Changes

The method fr.obeo.dsl.viewpoint.collab.api.CollabCredentialsProvider.getSecureStorageKey() has been added in order to extend this provider and provide a new key for it.

The constant fr.obeo.dsl.viewpoint.collab.importer.api.ImporterConstants.CLEAR_STORED_CREDENTIALS has been added for the ‹Importer Credentials› application in order to have a boolean argument meaning that the stored Importer credentials needs to be cleared.

Four constants have been added to fr.obeo.dsl.viewpoint.collab.server.usermgmt.internal.auth.ldap.LDAPAuthenticatorConfig in order to manage LDAP without anonymous binding: KEY_USER_SEARCH_FILTER, KEY_USER_SEARCH_BASE , KEY_MANAGER_DN and KEY_MANAGER_PASSWORD. The constants are private but they have accessors.

The method fr.obeo.dsl.viewpoint.collab.server.usermgmt.internal.auth.ldap.LDAPAuthenticator.authenticateUsingManager(String, char[]) has been added in order to be able to authenticate using an LDAP that does not allow anonymous bindings.

The fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.getInitializationDefaultValue() has been added to return a default value for each key. This value is used to initialize default preferences (which can be overriden by products or by plugin customization mecanisms), it can also be used if no value has been set for the given key.

The fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.preferences.AdminPermissionPreferenceKeys.getInitializationDefaultValue() has been added to return a default value for each key. This value is used to initialize default preferences (which can be overriden by products or by plugin customization mecanisms), it can also be used if no value has been set for the given key.

The fr.obeo.dsl.viewpoint.collab.ui.api.wizards.SelectRemoteResourcePage.processAirdResource(String, CDOResourceNode) method has been added to let specialized class to provide an additional processing.

The fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.getType() has been removed since no known usage has been found and some type were not properly set.

The fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.preferences.AdminPermissionPreferenceKeys.getType() has been removed since no known usage has been found and some type were not properly set.

9. Changes in Collab 13.0.0 (from Collab 12.0.0)

9.1. User-Visible Changes

  • Aird files of shared modeling project now have an additional properties page (the contextual action, not the properties view page) that displays repository information (location, port, name) and the list of user connected to the repository

  • Addition of the Importer application. This application allows to trigger the import of all projects of a CDO repository. More informations about this application can be found in the documentation.

  • With the introduction of the change id for DRepresentationDescriptor, it is no longer possible to edit items of a table or tree representation concurrently. Any change locks the representation.

9.2. Developer-Visible Changes

The fr.obeo.dsl.viewpoint.collab.api.CDOExporter.CDOExporter(CDOTransaction) constructor has been added. If this constructor is used, it is up to the caller to close the CDOTransaction.

The new fr.obeo.dsl.viewpoint.collab.server.warmup plugin provides an org.eclipse.emf.cdo.spi.server.IAppExtension which reacts to repository start-up and loads all found resources which are direct children of the projects folder (.representation folder and .srm representation resources are excluded). This initializes the revision manager caches at repository start-up and speeds up the session opening of the first connection to each project. This behavior can be disabled with the system property -Dfr.obeo.dsl.viewpoint.collab.server.enabledWarmup=false.

The Importer constant fr.obeo.dsl.viewpoint.collab.importer.api.ImporterConstants.XML_IMPORT_FILE_PATH has been added to launch the importer from an XML extraction of the repository. An XML extraction of the repository can be manually obtained by executing the cdo export command on the server osgi console.

The default saving policy for local files is now consistent with the Sirius behavior. The collaborative session used to instantiate the old internal CDOSavingPolicy by default with a possibility used by several product to select the IsModifiedCDOSavingPolicy with the use of a system property. Now a new internal policy handles the CDOResources and delegates the management of local resources to the saving policy declared to Sirius. The encapsulation is done when setSavingPolicy(SavingPolicy) is called on fr.obeo.dsl.viewpoint.collab.api.remotesession.CollaborativeSession with a policy which does not inherit from fr.obeo.dsl.viewpoint.collab.api.savingpolicy.CollaborativeSavingPolicy otherwise the specific given collaborative saving policy will be used.

9.2.1. Partial support for internationalization

Collab 13.0.0 introduces partial support for internationalization: all literal strings from the runtime part of Collab are now externalized and can be localized by third parties by providing the appropriate «language packs» as OSGi fragments. Note that this does not concern the server components, the user profile component, the importer application, or the parts of the UI inherited from Eclipse/EMF/GEF/GMF/Sirius and other libraries and frameworks used by Collab.

Some API changes were required to enable this. Most breaking changes concern the plug-in/activator classes from each bundle. They are:

fr.obeo.dsl.viewpoint.collab.CDOSiriusActivator is still an OSGi BundleActivator, but now it extends org.eclipse.emf.common.EMFPlugin.EclipsePlugin. It remains the actual bundle activator of the plugin. An internal class CDOSiriusActivator.CDOSiriusPlugin has been added as a subclass of org.eclipse.emf.common.EMFPlugin.

fr.obeo.dsl.viewpoint.collab.ui.api.CDOSiriusUIActivator is still an OSGi BundleActivator, but now it extends fr.obeo.dsl.viewpoint.collab.ui.api.EclipseUIPluginActivator. It remains the actual bundle activator of the plugin. An internal class CDOSiriusUIActivator.CDOSiriusUIPlugin has been added as a subclass of org.eclipse.emf.common.EMFPlugin.

fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.ActivityMetadataActivator has been renamed into fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.ActivityMetadataPlugin and is no longer an OSGi bundle activator (hence the name change, to avoid confusion). Instead it extends org.eclipse.emf.common.EMFPlugin. The actual bundle activator is the new internal class ActivityMetadataPlugin.Implementation.

fr.obeo.dsl.viewpoint.collab.ui.diagram.Activator has been renamed into fr.obeo.dsl.viewpoint.collab.ui.diagram.CollabDiagramUIPlugin and is no longer an OSGi bundle activator (hence the name change, to avoid confusion). Instead it extends org.eclipse.emf.common.EMFPlugin. The actual bundle activator is the new internal class CollabDiagramUIPlugin.Implementation.

fr.obeo.dsl.viewpoint.collab.ui.mylyn.CollabMylynActivator has been renamed into fr.obeo.dsl.viewpoint.collab.ui.mylyn.CollabMylynPlugin and is no longer an OSGi bundle activator (hence the name change, to avoid confusion). Instead it extends org.eclipse.emf.common.EMFPlugin. The actual bundle activator is the new internal class CollabMylynPlugin.Implementation.

Additional non-breaking changes:

The translation keys (and default values) have been added to all the concerned bundles, in their plugin.properties file. These (translated) messages are available at runtime as static fields of new Messages classes, added to all concerned bundles (always in the same package as their plug-in/activator class). The concerned bundles are:

  • fr.obeo.dsl.viewpoint.collab

  • fr.obeo.dsl.viewpoint.collab.ui

  • fr.obeo.dsl.viewpoint.collab.ui.activity

  • fr.obeo.dsl.viewpoint.collab.ui.diagram

  • fr.obeo.dsl.viewpoint.collab.ui.mylyn

  • fr.obeo.dsl.viewpoint.collab.activity.model

9.3. API Changes

9.3.1. Changes in fr.obeo.dsl.viewpoint.collab

fr.obeo.dsl.viewpoint.collab.api.CDORepositoryManager now has a method getNumberOfOtherConnectedUsers that returns the number of connected user (ignoring the system user).

fr.obeo.dsl.viewpoint.collab.api.CDORepositoryManager now has a method getConnectedUsers that returns a message (String) presenting the connected user. If they are identified, then it’s a list of user IDs. Otherwise the message is the number of anonymous users currently connected to the repository.

fr.obeo.dsl.viewpoint.collab.api.CDORepositoryManager now has a method getOrCreateTransaction(Session, Map<String, Object>) that allows to pass options used to initialize CDOTransaction options. This option fr.obeo.dsl.viewpoint.collab.api.CDORepositoryManager.DEACTIVATE_LOCK_MECHANISM has been added to deactivate lock mechanism. There is no more implicit locks taken.

fr.obeo.dsl.viewpoint.collab.api.savingpolicy.CollaborativeSavingPolicy has two new methods addRepresentationToRefreshBeforeCommit and addRepresentationToRefreshBeforeCommit. They allow to indicate that some DRepresentation needs to refreshed before commit. Notice that it will only be refresh representations that have the LOCKED BY ME lock status. Those method already existed in the previous internal implementations of collaborative saving policy.

fr.obeo.dsl.viewpoint.collab.api.image.RemoteImageRegistryService.IMAGES_RESOURCE_NAME is new constant to declare the name of the CDOResource containing shared images at the top level of the repository. It is now used instead of org.eclipse.sirius.diagram.ui.business.api.image.ImageSelector.IMAGES_RESOURCE_NAME.

fr.obeo.dsl.viewpoint.collab.api.util.Couple.clone() has been removed. The constructor fr.obeo.dsl.viewpoint.collab.api.util.Couple.Couple(Couple<K, V>) can now be used instead. This change has been done according to Sonar rule squid:S2975.

9.3.2. Changes in fr.obeo.dsl.viewpoint.collab.activity

The methods to export commit history in the api fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.CommitMetadataExporter have a new boolean parameter to choose if the changes associated to the commit are exported or not. These methods are export(CDOCommitInfo, CDOCommitInfo, boolean), export(final CDOSession, Instant , Instant , boolean), exportToHead(final CDOSession, Instant, boolean), exportAll(final CDOSession, boolean) and exportTo(CDOSession, Instant, boolean). The implementation classes fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.CDOCommitMetadataExporter and fr.obeo.dsl.viewpoint.collab.activity.model.api.activitymetadata.SquashingCdoCommitMetadataExporter are changed consequently.

9.3.3. Changes in fr.obeo.dsl.viewpoint.collab.importer

fr.obeo.dsl.viewpoint.collab.importer.api.ImporterCDOExporter.java has been added to be able to trigger the import of every project of a CDO repository from an application.

fr.obeo.dsl.viewpoint.collab.importer.api.ImporterConstants.java has been added to list each arguments available for the Importer application.

9.3.4. Changes in fr.obeo.dsl.viewpoint.collab.ui

fr.obeo.dsl.viewpoint.collab.ui.api.tester.CollabSessionPropertyTester now has a property SHARED_SESSION_PROP to check if a session is shared.

9.3.5. Changes in fr.obeo.dsl.viewpoint.tests.collab.server

The method

CollabTestServer.start(boolean) has been added. The boolean parameter allows to force the server starting to drop the table of the database or to not drop it regarding its value. It overrides the cleanDB parameter given in the constructor.

9.3.6. Changes in fr.obeo.dsl.viewpoint.tests.collab.support

The method AbstractDiagramCollaborativeTest.restartServer(boolean) has been added and allows to restart the server and to clean the database before or not regarding the parameter value.

The method fr.obeo.dsl.viewpoint.tests.collab.support.api.CollaborativeManager.setInteractiveAuthentication(boolean) has been added and allows to change the interactive authentication status.

10. Changes in Collab 12.0.0 (from Collab 11.0.2)

10.1. User-Visible Changes

  • User profile resource permission now can use a regular expression with spaces. If you used the %20 encoding to bypass this problem, then you must replace it by a standard space to make it work with the new version.

10.1.1. Change Management

  • The Commit History View has been improved to display a commits list related to the selection and also displaying the impacted elements of one or several selected commits. See the user documentation for more details about those changes: Commit History View.

commitHistoryView
  • The commit description dialog box is displayed if there is a warning associated to the commit description. A warning occurs when:

  • the Mylyn choice is checked in preferences and no uncompleted task is selected.

  • the default choice is checked in preferences, the CDO History is used(because no uncompleted task is selected) and the previous commit message was of type Mylyn. The user is then asked to either change the message or reactivate the Mylyn task.

10.2. Developer-Visible Changes

Sirius Collaborative Mode is now based on CDO 4.7 (previous versions are based on CDO 4.6).

A precommit listener is added to the resourceSet of the collaborative Session. It does nothing but manage the undo redo when a srm resource is added or removed in/from the resourceSet. It is necessary because the CDOChangeRecorder does not record that kind of changes. At undo/redo, the precommit listener ensures that the srm resource is correctly added/removed into/from the resourceSet and the owning CDOResourceFolder. By default the srm management is enabled but can be disabled with the system property fr.obeo.dsl.viewpoint.collab.disableSrmResourceManagementInUndoRedo=true

10.3. API Changes

10.3.1. Changes in fr.obeo.dsl.viewpoint.collab

fr.obeo.dsl.viewpoint.collab.api.commit.info.CDOCommitInfoChange has been added to decorate the impacted objects in the changes viewer of the Commit History View.

Two new methods have been added in fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter to ease subclasses to provide their customized behavior:

  • Map<EObject, EObject> copyModel(CDORepositoryManager repositoryManager, boolean replaceExistingOnes, boolean exportWorkspaceImages, Map<String, String> projectNameReplacement,IProgressMonitor monitor, Set<EObject> allRootsToCopy, Set<Resource> resourcesUsedAsSources) has been extracted from execute(). It is called at the end of the execute method and does all the model copy and transformation.

  • void loadAllRepresentations(ResourceSet sourceResourceSet) has been extracted from loadResourcesUsedAsSources and is now called just after this method in execute.

fr.obeo.dsl.viewpoint.collab.api.commit.description.CommitDescriptionParticipant.getNonActivationMessage(CDOTransaction) method has been replaced by getWarningMessage(CDOTransaction, boolean) which handles more general cases.

Several API about importing or exporting modeling project has changed. The boolean that was used to manage the xmiids resource has been removed because this resource does not exist anymore. Instead of storing xmiids of the aird EObjects in the xmiid resource, the aird EObject hold their own uid attribute that is stored in the CDO Database as any other attributes. The following API have been impacted:

  • fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.execute(Set<URI>, CDORepositoryManager, boolean, boolean, Map<String, String>, IProgressMonitor) has lost the boolean updateXmiid parameter.

  • fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.completeProcess(Set<Resource>, CDORepositoryManager, Set<Resource>, Map<EObject, EObject>, boolean, IProgressMonitor)

  • fr.obeo.dsl.viewpoint.collab.api.CDOExporter.completeProcess(Set<Resource>, CDORepositoryManager, Set<Resource>, Map<EObject, EObject>, boolean, IProgressMonitor) has lost the boolean updateXmiid parameter.

  • fr.obeo.dsl.viewpoint.collab.api.CDOExporter.exportResourcesFromRepository(Set<URI>, CDORepositoryManager, boolean, boolean, Map<String, String>, IProgressMonitor) has lost the boolean updateXmiid parameter.

  • fr.obeo.dsl.viewpoint.collab.api.CDOImporter.completeProcess(Set<Resource>, CDORepositoryManager, Set<Resource>, Map<EObject, EObject>, boolean, IProgressMonitor) has lost the boolean updateXmiid parameter.

  • fr.obeo.dsl.viewpoint.collab.api.CDOImporter.importLocalFilesIntoRepository(Set<URI>, CDORepositoryManager, boolean, boolean, Map<String, String>, IProgressMonitor) has lost the boolean updateXmiid parameter.

  • AbstractImporterExporter.handleXmiIds(Set<Resource> , Set<Resource> , Map<EObject, EObject> , boolean ,boolean , IProgressMonitor ) and its implementation in CDOExporter CDOImporter have been removed.

In fr.obeo.dsl.viewpoint.collab.api.commit.description.CommitDescriptionProvider class, getResultFromSelectedParticipant(CDOTransaction , String participantId) has been removed, getCommitDescriptionParticipantUserWarning(CDOTransaction) has been added to get either explicitly selected participant or the first that answers true to canProvide().

In fr.obeo.dsl.viewpoint.collab.api.commit.description.CommitDescriptionResult class, hasWarning(), getWarningMessage() and setWarning(String) have been removed. The warning message is no longer hold by the CommitDescriptionResult but provided to the dialog box.

10.3.2. Changes in fr.obeo.dsl.viewpoint.collab.ui

In fr.obeo.dsl.viewpoint.collab.ui.api.views.CommitInfosView the following methods and classes have been added:

  • forceUpdate(): To force the view update according to the last selected element in the workbench.

  • setSynchronized(boolean): To set whether the Commit History View should be linked with the selection.

  • updateFilter(String): To set the Commit History View text filter for filtering the commit list.

  • setTreeView(boolean): To set whether the Commit History View changes viewer layout should be a tree or flat.

  • CommitInfosProvider: This provider is used by the CommitInfosView to retrieve to commit list.

In fr.obeo.dsl.viewpoint.collab.ui.api.IImageKeys, OVR_DELETED_DECORATOR, OVR_ADDED_DECORATOR and OVR_MODIFIED_DECORATOR have been added to decorate the changed object in the Commit History according to the change kind.

fr.obeo.dsl.viewpoint.collab.ui.api.dialogs.CommitDescriptionDialog constructor has a new string parameter for the warning message content.

10.3.3. Changes in fr.obeo.dsl.viewpoint.tests.collab.support

The enum ResourceToUploadKind has been added to fr.obeo.dsl.viewpoint.tests.collab.support.api.CollaborativeManager. It is used as parameter of the new method uploadResourcesOnRepository(ResourceToUploadKind resourceKind, Map<String, String> projectPathReplacement, String…​ resourcesToUpload) and indicates in which kind of URI the given resourcesToUpload paths should be transformed. The other uploadResourcesOnRepository methods without this parameter use ResourceToUploadKind.PLATFORM_PLUGIN.

The method fr.obeo.dsl.viewpoint.tests.collab.support.api.CollaborativeManager.reInit() has been added to allow tests to close all active transactions and reinit the RepositoryManager, resourceSet, the domain,the active transaction and the remote user.

fr.obeo.dsl.viewpoint.tests.collab.support.api.AbstractDiagramCollaborativeTest now creates its collaborativeManager in the constructor. The new protected method createCollaborativeManager(boolean authenticationActivated, boolean shouldBeInteractive, String userProfilePath, boolean branchingActivated, boolean auditingActivated) allows subclasses to provide their own subclass of fr.obeo.dsl.viewpoint.tests.collab.support.api.CollaborativeManager.

As explained in the Changes in fr.obeo.dsl.viewpoint.collab about xmiids management removal, some methods have been removed:

  • fr.obeo.dsl.viewpoint.tests.collab.support.api.CollaborativeManager.uploadResourcesOnRepository(boolean updateXmiIdsResource, String…​)

  • fr.obeo.dsl.viewpoint.tests.collab.support.api.AbstractDiagramCollaborativeTest.uploadResourcesOnRepository(boolean updateXmiIdsResource, Map<String, String>, String…​)

  • fr.obeo.dsl.viewpoint.tests.collab.utils.AbstractCarsDiagramCollaborativeTest.genericCollaborativeSetUp(final boolean updateXmiIdsResource, Collection<String>)

11. Changes in Collab 11.0.2 (from Collab 11.0.1)

11.1. User-Visible Changes

The export wizard option to override resource now checks if there are no other shared session open on the repository beforehand. The behavior can be disable by using the system property -Dfr.obeo.dsl.viewpoint.collab.api.export.without.check=true

11.2. Developer-Visible Changes

To avoid «Save Failed» errors, the remote aird resource is now locked during save. If this element is locked when save is called, a message dialog is shown to ask the user to retry later. The behavior can be disable by using the system property -Dfr.obeo.dsl.viewpoint.collab.disableSaveProtectionByRemoteAirdLocking=false

11.3. API Changes

11.3.1. Changes in fr.obeo.dsl.viewpoint.collab

The constructor fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.AbstractImporterExporter(CDOTransaction) has been added to provide a CDOTransaction (like the one created on test connection) for the execution of the import/export instead of creating a new one.

The abstract method fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.processChecksBeforeExecution(Set<EObject>, boolean) has been added to have some validations before authorizing an export with resource override.

The method fr.obeo.dsl.viewpoint.collab.api.CDOImporter.processChecksBeforeExecution(Set<EObject>, boolean) has been added to have some validations before authorizing an import with resource override. CDOImporter overrides this method to check if there is no other session connected to the repository before allowing to override resources.

The method fr.obeo.dsl.viewpoint.collab.api.CDOExport.processChecksBeforeExecution(Set<EObject>, boolean) has been added to have some validations before authorizing an export with resource override. There is no additional behavior needed in this scenario.

11.3.2. Changes in fr.obeo.dsl.viewpoint.collab.ui

The method fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ExportModelToRemoteWizard.performPostExportProcesses() has been added to allow inheriting classes to add some post processes after the export action.

The method fr.obeo.dsl.viewpoint.tests.collab.support.api.AbstractDiagramCollaborativeTest.genericCollaborativeSetUp(boolean, Collection<String>, Set<String>) has been added a boolean loadVsmAndActivateViewpointsOnLocalAndRemoteUser allowing to deactivate VSM and their viewpoints activation now occurring in the method by default.

12. Changes in Collab 11.0.1 (from Collab 11.0.0)

12.1. User-Visible Changes

A new mode allowing lazy loading of representations can be activated for shared modeling projects (see how to). It translates into much faster project opening because none of the representation data is loaded. The data of a representation are loaded only when the application requires it. Examples: open representation, copy representation, export representation as image etc…​ _Warning: Passing from one mode to the other requires to clean the database. Indeed, the lazy loading of representations is linked to the fact that the representations are split in many resources in the database. Nevertheless, the application will work properly with a mix of split or not split representations.

The «Add remote resource» wizard has been updated to reuse the page of the «New model» wizard for the aird editor.

12.2. Developer-Visible Changes

  • The mode allowing lazy loading of representations is no more experimental compared to Collab 11.0.0. See more details in Representations Lazy Loading.

13. Changes in Collab 11.0.0 (from Collab 10.0.1)

13.1. User-Visible Changes

A warning is now logged when a stale reference is detected (and a proxy created) concerning a reference that is not expected to be dangling. The message also present to the user, how to solve these unexpected dangling reference.

A warning is now logged when exporting a modeling project containing representations depending on a local VSM. Indeed, there is no guarantee that non-deployed VSM will have no differences between users. Therefore, only representations using an installed VSM (plugin) will be exported to the CDO Repository. The other will be skipped and not uploaded.

It is now possible to pre-fill commit descriptions (for example: from CDO history, from Mylyn active task, …​), see more details in Pre-filled commit description.

The user authentication dialog now forgets the entered password when it is closes. The user can use the «Remember me» checkbox if he wants to store its login/password in the Eclipse Secure storage and avoid the dialog to be displayed for future connections.

13.2. Developer-Visible Changes

  • There is no warranty when working with non CDO Native meta-models. The support of CDO legacy meta-models is now disabled by default. Nevertheless CDOSiriusPreferenceKeys.PREF_SUPPORT_LEGACY_MODE allows to activate support for CDO Legacy meta-models and CDOSiriusPreferenceKeys.PREF_LEGACY_MODEL_DETECTION allows to activate the detection of CDO Legacy models during connection to a remote project. See documentation in Developer Manual/CDO in Collaborative Mode.

  • Sirius Collaborative Mode is now based on CDO 4.6 (previous versions are based on CDO 4.4).

  • The lock state changes are detected by org.eclipse.emf.cdo.common.lock.CDOLockChangeInfo.CDOViewLocksChangedEvent and spread using the CDO API.

  • A new experimental mode allowing lazy loading of representations can be activated for test purpose, see more details in Representations Lazy Loading.

13.3. API Changes

13.3.1. Changes in fr.obeo.dsl.viewpoint.collab

The new preference fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.PREF_SUPPORT_LEGACY_MODE has been added. It is required to activate the support of CDO Legacy mode. Note that the activation of this preference might have an impact on performances for CDO native models. The default value is false.

The methods fr.obeo.dsl.viewpoint.collab.api.util.CDOSiriusUtil.isInCDOResource(EObject) and fr.obeo.dsl.viewpoint.collab.api.util.CDOSiriusUtil.isInCDOResource(CDOObject) have been added to check if an EObject/CDOObjct belongs to a CDOResource in a faster way than checking obj.eResource() instanceof CDOResource: the methods use the CDOState and calls eResource() only when it does not allow to infer if the resource is a CDOResource.

A new exception has been added: fr.obeo.dsl.viewpoint.collab.api.exception.ForbiddenCharacterException is raised when invalid XML 1.0 character is detected.

fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.updateRepresentationTargetResources(Set<Resource>, Set<Resource>, Map<EObject, EObject>) has been added to update the target resource in which the representation will be stored.

fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.PREF_CREATE_SHARED_REP_IN_SEPARATE_RESOURCE preference has been added to indicate whether remote representations should be held in separate resources. By default, this preference is initialized at true.

fr.obeo.dsl.viewpoint.collab/src/fr/obeo/dsl/viewpoint/collab/api/lock/LockOperation.java interface has been added to represent pre/post actions for lock operations such as Acquire lock or Release lock.

fr.obeo.dsl.viewpoint.collab.lockoperation extension point has been added so that pre/post actions for lock operations can be contributed.

In classes fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter and fr.obeo.dsl.viewpoint.collab.api.CDOImporter, the method updateTargetSemanticResourceDescriptors has been renamed to updateTargetResourceDescriptors.

The class fr.obeo.dsl.viewpoint.collab.api.lock.CDOLockListenerJob does not listen to org.eclipse.emf.cdo.session.remote.CDORemoteSessionMessage anymore in favor of org.eclipse.emf.cdo.common.lock.CDOLockChangeInfo.CDOViewLocksChangedEvent instead. The methods fr.obeo.dsl.viewpoint.collab.api.lock.CDOLockListenerJob.addMessage(CDORemoteSessionMessage) and fr.obeo.dsl.viewpoint.collab.api.lock.CDOLockListenerJob.processLockOrUnlockNotification(Collection, CDORemoteSessionMessage) changed to fr.obeo.dsl.viewpoint.collab.api.lock.CDOLockListenerJob.addChangeEvent(CDOViewLocksChangedEvent) and fr.obeo.dsl.viewpoint.collab.api.lock.CDOLockListenerJob.processLockOrUnlockEvent(Collection, CDOViewLocksChangedEvent)

The classes fr.obeo.dsl.viewpoint.collab.api.lock.CDOLockListener and fr.obeo.dsl.viewpoint.collab.api.lock.LockMessageEncoder have been removed in order to use the CDO notifications mechanism.

The preference fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.COLLABORATIVE_MODE_ACTIVATED has been removed. The management of this preference was partially broken with no possibility to use plugin_customization.ini. The value was forced to true during fr.obeo.dsl.viewpoint.collab starting.

13.3.2. Changes in fr.obeo.dsl.viewpoint.collab.ui

Protected method fr.obeo.dsl.viewpoint.collab.ui.api.decorators.AbstractCDODecorator.getObjectKey(Object) has been added to make customizable the way we determine the key used for the image cache.

The preference fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.PREF_LEGACY_MODEL_DETECTION has been added. If true and if CDOSiriusPreferenceKeys.PREF_SUPPORT_LEGACY_MODE=false a check is done to know if a legacy(not CDO Native) semantic model is detected in connect wizard when creating a new shared project. A warning pop up is displayed and a warning is logged in that case. The preference default value is false, that is the detection is disabled.

The fr.obeo.dsl.viewpoint.collab.ui.api.wizards.AbstractCreateLocalProjectRemoteWizard.postSessionCreation(Session, IProgressMonitor, Runnable) signature has changed. The Runnable parameter has been added to execute more code after the session has been saved. It is currently used to close the session in case of legacy model detection.

The code of CDOSiriusUIStarter has been moved in CDOSiriusActivator and the class has been removed to have ISessionViewExtension loaded as early as possible.

13.3.3. Changes in fr.obeo.dsl.viewpoint.tests.collab

Several methods have been added to fr.obeo.dsl.viewpoint.tests.collab.utils.AbstractDiagramCollaborativeTest: getDesignResourcePath() to initialize test environment with custom VSM, and createRemoteRepresentation and getDialectEditorRefresher(DialectEditor) which have been moved from subclasses.

13.3.4. Changes in fr.obeo.dsl.viewpoint.tests.collab.support

The class fr.obeo.dsl.viewpoint.tests.collab.support.utils.TestsUtilCollab has been added with the utility methods:

  • fr.obeo.dsl.viewpoint.tests.collab.support.TestsUtilCollab.isCDONativeModeActive() allowing to know if the runtime calling this method has the CDO native plugins present and loaded.

  • fr.obeo.dsl.viewpoint.tests.collab.support.TestsUtilCollab.waitForScheduledJobs(Object, IProgressMonitor) allowing to wait the specific scheduled jobs to be completed.

  • fr.obeo.dsl.viewpoint.tests.collab.support.utils.TestsUtilCollab.isCreateSharedRepresentationInSeparateResource() allowing to know if the split of remote representations in separate resources is activated (CDOSiriusPreferenceKeys.PREF_CREATE_SHARED_REP_IN_SEPARATE_RESOURCE).

  • fr.obeo.dsl.viewpoint.tests.collab.support.utils.TestsUtilCollab.setCreateSharedRepresentationInSeparateResource(boolean) allowing to override CDOSiriusPreferenceKeys.PREF_CREATE_SHARED_REP_IN_SEPARATE_RESOURCE preference.

fr.obeo.dsl.viewpoint.tests.collab.support.api.remoteuser.AbstractRemoteUserAction.installXRefOnEObjectSRMResource(EObject) has been added to install the cross referencer on the given EObject srm resource if it has not been done.

fr.obeo.dsl.viewpoint.tests.collab.support.api.asserts.MessageReceivedListener has been renamed to fr.obeo.dsl.viewpoint.tests.collab.support.api.asserts.CDOViewLocksChangedEventListener.

fr.obeo.dsl.viewpoint.tests.collab.support.api.remoteuser.RemoteUser uses now fr.obeo.dsl.viewpoint.tests.collab.support.api.asserts.CDOViewLocksChangedEventListener that cause a change in fr.obeo.dsl.viewpoint.tests.collab.support.api.remoteuser.RemoteUser.

14. Changes in Collab 10.0.1 (from Collab 10.0.0)

Minor release without API changes

15. Changes in Collab 10.0 (from Collab 9.0.4)

15.1. User Changes

15.1.1. Secure communication between client and CDO server

Using TLS, it is now possible to encrypt communication between the client and the CDO server. The certificate used on server side have to be created using algorithm compliant with TLS version 1.2. You can find documentation in Administrator Manual/Starting a Collaborative Server/Activate SSL connection.

15.1.2. LDAP authentication

LDAP can now be used to authenticate user. It can be used alone or simultaneously with authenticated server or user profile server.

  • LDAP alone : the user is authenticated with LDAP only

  • LDAP and authenticated server: the user must belong to the authorized users and also be authenticated with LDAP

  • LDAP and user profile server: the user must belong to the user profile model and also be authenticated with LDAP

LDAP Configuration allows filter usage that can be used to limit authentication to a predefined list. You can find documentation in Administrator Manual/Starting a Collaborative Server/Using default Server configurations and Administrator Manual/Starting a Collaborative Server/Configure LDAP authentication on the Server.

15.1.3. Other

  • Resource rename and resource deletion actions have been added in the CDO Sessions view. These actions allow to rename and delete a semantic resource in the CDO database, managing the impacts on representation resource.

  • A new shortcut «Ctrl+Alt+Z» is available to trigger «Discard Remote Changes» action from a selection to shared content («Cmd+Shift+Alt+Z» on Mac OS X as the «Ctrl+Alt+Z» shortcut is already used under Mac OS X).

15.2. API Changes

15.2.1. Changes in fr.obeo.dsl.viewpoint.collab

  • The exception fr.obeo.dsl.viewpoint.collab.api.RepositoryConnectionException now inherit of RuntimeException to avoid encapsulate this first exception by the second one when a RepositoryConnectionException can occurs and we need to dispatch it to give feedback to end-user.

  • The methods CDORepositoryManagerRegistry.getRepositoryManager() can throw RepositoryConnectionException and LifecycleException in case of unsuccessful connection to server, before these exceptions were simply logged.

  • The method fr.obeo.dsl.viewpoint.collab.CDOSiriusActivator.logForDebug(String) has been added to allow debug message with a simple message (without an exception).

  • The new preference fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.PREF_DISPLAY_AUTHENTICATION_REMEMBER_ME indicates whether the ‹remember me› checkbox should be displayed on the authentication dialog. The default value is true.

  • Addition of the interface fr.obeo.dsl.viewpoint.collab.server.usermgmt.api.auth.IAuthenticatorDelegate to declare a delegator of IAuthenticator.

  • Addition of the query fr.obeo.dsl.viewpoint.collab.api.remotesession.CollaborativeSessionQuery with a method isPasswordToStore() used to request information from the server about the authentication password storage.

15.2.2. Changes in fr.obeo.dsl.viewpoint.collab.ui.user.profile.design

  • A new extension point fr.obeo.dsl.viewpoint.collab.ui.user.profile.manager has been added to add a specific user profile manager. This user profile manager allows to override the creation, update and deletion tools of the user profile editor. The class provided for this manager must implement fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.api.extension.IUserProfileManager.

  • fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.wizards.ConnectToUserProfileModelWizard.performFinishClosure() has been removed. The transaction closure is done in dispose method.

15.2.3. Changes in fr.obeo.dsl.viewpoint.collab.server.usermgmt

  • fr.obeo.dsl.viewpoint.collab.server.usermgmt.api.manager.CollabFileUserManager has been added so that it can be extended by client.

  • fr.obeo.dsl.viewpoint.collab.server.usermgmt.api.manager.CollabFileUserManagerFactory has been added so that it can be extended by client.

15.2.4. Changes in fr.obeo.dsl.viewpoint.tests.collab.support

  • fr.obeo.dsl.viewpoint.tests.collab.support.api.remoteuser.IRemoteUser.saveSession() now accepts CDOUpdatable, i.e. CDOView and CDOTransaction to wait that specified CDOUpdatable are invalidated by committed changes.

16. Changes in Collab 9.0.4 (from Collab 9.0.3)

Minor release without API changes.

17. Changes in Collab 9.0.3 (from Collab 9.0.2)

17.1. API Changes

17.1.1. Changes in fr.obeo.dsl.viewpoint.collab

  • The command fr.obeo.dsl.viewpoint.collab.api.commands.ConnectToRemoteSessionCommand has been deprecated in favor of fr.obeo.dsl.viewpoint.collab.api.remotesession.CollaborativeSession.addRemoteRepresentationsSet(String) method because ConnectToRemoteSessionCommand is no more useful and should not be used since we now have a TransactionalEditingDomain by session.

18. Changes in Collab 9.0.2 (from Collab 9.0.1)

18.1. API Changes

18.1.1. Changes in fr.obeo.dsl.viewpoint.collab

  • Add the method fr.obeo.dsl.viewpoint.collab.api.editingdomain.CDOTransactionChangeRecorder.checkActiveTransaction(boolean) to enable or disable the active transaction check about CDODeltaNotification filter. This method is not intended to be used by user code.

19. Changes in Collab 9.0.1 (from Collab 9.0.0)

Minor release without API changes.

20. Changes in Collab 9.0.0 (from Collab 8.0.0)

Warning: If you are using previous version of Collab, a migration is needed (change on RGBValues type in Sirius 3.0.0 is an example of change that needs a migration). To run this migration you must follow these steps:

  • With Collab 8.0.0 (and the corresponding server), import your modeling project locally (menu Import…​ then Sirius/Modeling Project from Remote).

  • With Collab 9.0.0 (and a new database on the corresponding server), open the local Modeling Project. It is automatically migrated during the opening. Export it to the server (menu Export…​ then Sirius/Shared Modeling Project from Local).

Warning: CDO transactions are now created with the detachment notification enabled. The method org.eclipse.emf.cdo.view.CDOView.Options.setDetachmentNotificationEnabled() is called with true as parameter.

20.1. API Changes

20.1.1. Changes in org.eclipse.emf.cdo

  • org.eclipse.emf.cdo.transaction.InvalidCrossReferenceResolver interface from our fork has been renamed org.eclipse.emf.cdo.transaction.CDOStaleReferenceCleaner as the one integrated in CDO 4.4.

20.1.2. Changes in fr.obeo.dsl.viewpoint.collab

  • The new preference fr.obeo.dsl.viewpoint.collab.api.preferences.CDOSiriusPreferenceKeys.PREF_RELEASE_EXPLICIT_LOCK_ON_COMMIT indicates whether all explicit locks should be release on user commit.

  • The method fr.obeo.dsl.viewpoint.collab.api.lock.CDOLockManager.releaseAllExplicitLocksAcquiredByTransaction(CDOTransaction) is added to release all explicit locks acquired the transaction parameter.

  • The method CDOSiriusUtil.getCDOObject() has been removed in favor of CDOUtil.getCDOObject() which is more efficient.

  • The method CDOSiriusUtil.persistRemoteResourceInformations() has been removed as it is not useful.

  • The method CDOSiriusUtil.getRemoteResourceInfosKey() has been removed as it is not useful.

  • The method CDOSiriusUtil.initializeConnector() has been removed as it is not useful.

  • The method CDOSiriusUtil.persistRemoteResourceInformations() has been removed as it is not useful.

  • The method CDOSiriusUtil.updateLocalPackageRegistryFromEObject() has been removed as it is not useful.

  • The parameter updateXmiIdsResource has been added on fr.obeo.dsl.viewpoint.collab.api.CDOImporter.importLocalFilesIntoRepository and fr.obeo.dsl.viewpoint.collab.api.CDOExporter.exportResourcesFromRepository. If false, the xmiIds resource is not updated on CDO server when importing/exporting project from server/local to local/server.

  • The fr.obeo.dsl.viewpoint.collab.api.CDOImportExportManager class has been removed. Instead, use fr.obeo.dsl.viewpoint.collab.api.CDOExporter and fr.obeo.dsl.viewpoint.collab.api.CDOImporter.

  • The parameter updateXmiIdsResource has been added to fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter.handleXmiIds to indicate whether the xmiIds remote resource will be updated or not.

  • Now resource path used with Collab/CDO API must be encoded to manage correctly special characters like space, see URI.createURI(resourcePath, false).

  • fr.obeo.dsl.viewpoint.collab.api.CDORepositoryManager.getAirdResourceId()/setAirdResourceId() methods have been deprecated in favor of CDORepositoryManager.getId()/setId() to have better named methods as a id of a CDORepositoryManager could be another thing than the id of an airdResource.

20.1.3. Changes in fr.obeo.dsl.viewpoint.collab.ui

  • The method fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ConnectToRemoteWizard.performFinishClosure() is not used anymore and is removed.

  • The following import and export wizards don’t update xmiIds resource anymore. If your wizard inherits from Sirius’s, to activate xmiIds resource update, overload the method below.

  • fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ExportModelToRemoteWizard. Method to overload doImportLocalFilesOnRepository

  • fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ExportSemanticResourceToRemoteWizard. Method to overload doImportSemanticResourcesOnRepository

  • fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ImportModelFromRemoteWizard. Method to overload doExportRepositoryResourcesFromRepository

  • The interface fr.obeo.dsl.viewpoint.collab.ui.api.views.ICollabTooltipProvider has been added to be able to customize the tooltip for lock by other decoration.

  • The class fr.obeo.dsl.viewpoint.collab.ui.api.views.CollabTooltipProvider has been added as a default implementation of ICollabTooltipProvider interface to be extended to user API.

21. Changes in Collab 8.0.3 (from Collab 8.0.2)

21.1. API Changes

21.1.1. Changes in fr.obeo.dsl.viewpoint.collab.ui

  • In fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ConnectToRemoteWizard the method canFinish() has been overridden.

  • In fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ImportModelFromRemoteWizard the method canFinish() has been overridden.

22. Changes in Collab 8.0.2 (from Collab 8.0.1)

22.1. Changes in fr.obeo.dsl.viewpoint.collab

  • In fr.obeo.dsl.viewpoint.collab.api.AbstractImporterExporter the methods checkAnyTypes(), checkProxies() and getRepresentationsResources() were private and became protected. This does not break API and is binary compatible.

23. Changes in Collab 8.0.0 (from Collab 7.0.0)

23.1. API Changes

23.1.1. Changes in fr.obeo.dsl.viewpoint.collab

  • fr.obeo.dsl.viewpoint.collab.api.CDOImporter.setDisposeEditingDomainAtEnd(boolean) when called with false in parameter, the target TransactionalEditingDomain is not disposed at the end of import process. By default the target TransactionalEditingDomain, obtained through EditingDomainFactoryService.INSTANCE.getEditingDomainFactory().createEditingDomain() is disposed.

  • fr.obeo.dsl.viewpoint.collab.api.lock.CDOLockManager.LOCK_TIMEOUT is removed. The timeout is about implementation details and should not be used by API user.

  • fr.obeo.dsl.viewpoint.collab.api.remotesession.CollaborativeSession.addRemoteRepresentationsSet(String) now returns the DAnalysis of the added remote representations.

  • fr.obeo.dsl.viewpoint.collab.api.exception.ISiriusRemoteExceptionHandler.handleAuthenticationOnEclipseRestart() added to display feedback to end-users about unresolved authentication on restart with opened shared representation.

23.1.2. Changes in fr.obeo.dsl.viewpoint.collab.ui

  • fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ConnectToRemoteWizard.addRemoteRepresentationSet(CDOTransaction, CollaborativeSession, IProgressMonitor) now returns the DAnalysis of the added remote representations.

23.1.3. Changes in fr.obeo.dsl.viewpoint.collab.ui.user.profile.design

  • fr.obeo.dsl.viewpoint.collab.ui.security.design is renamed to fr.obeo.dsl.viewpoint.collab.ui.user.profile.design

  • The following packages, previously internals, were moved to the plugin API:

    • fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.preferences: contains new Preferences keys (AdminPermissionPreferenceKeys) allowing to control which kind of permissions the administrator will be able to define in the user profile model

    • fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.services: stateless java utility methods for manipulating user profile models

    • fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.wizards: provides wizard to Download, Upload and Connect to Shared User Profiles Projects.

    • fr.obeo.dsl.viewpoint.collab.ui.user.profile.design.design: contains the Activator used as key for preferences

24. Changes in Collab 7.0.0 (from Collab 6.10.0)

24.1. API Changes

Collab 7.0.0 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 Collab have been either removed (if a replacement exists) or marked as non-deprecated (if no replacement exists yet).

24.1.1. Changes in fr.obeo.dsl.viewpoint.collab

  • The deprecated constructor AddRemoteResourceCommand(CollaborativeSession,CDORepositoryManager,URI) has been removed. Use the remaining constructor instead, which provides IProgressMonitor support.

  • The deprecated method Collection<CDOResource> saveRemoteResources(Set<CDOResource>, Map<?, ?>) have been removed from CollaborativeSavingPolicy. Use the Collection<CDOResource> saveRemoteResources(Set<CDOResource>, Map<?, ?>, IProgressMonitor) method instead.

  • The 3 methods Map<EObject, EObject> fillResources(Map<Resource, List<EObject>>, Set<EObject>, Set<Resource>), handleXmiIds(Set<Resource>, Set<Resource>, Map<EObject, EObject>,boolean) and loadResourcesUsedAsSources(Set<URI>, CDORepositoryManager, ResourceSet, Collection<Resource>) have been removed from the AbstractImporterExporter and its 2 subclasses (CDOImporter and CDOExporter). Use the version using IProgressMonitor instead.

  • The SiriusCloseSessionExceptionHandler have been deleted, and replaced by the ISiriusRemoteExceptionHandler mechanism.

  • The ISiriusRemoteExceptionHandler interface has been added to handle remote exceptions (such has network breakdown or invalid credentials).

  • The fr.obeo.dsl.viewpoint.collab.exceptionhandler extension point has been added to provide your own ISiriusRemoteExceptionHandler to react to remote exceptions.

  • The CDORepositoryManager.getRemoteExceptionHandler() has been added to get the ISiriusRemoteExceptionHandler used by the current CDORepositoryManager.

  • The DefaultSiriusRemoteExceptionHandler class provides a default implementation of the ISiriusRemoteExceptionHanlder and may be overridden.

24.1.2. Changes in fr.obeo.dsl.viewpoint.collab.ui

  • The deprecated method postSessionCreation(String) has been removed from ImportModelFromRemoteWizard. Use the version using IProgressMonitor instead.

  • The 2 deprecated methods addRemoteRepresentationSet(CDOTransaction, CollaborativeSession) and CollaborativeSession createLocalSession(String) have been removed from ConnectToRemoteWizard. Use the versions using IProgressMonitor instead.

  • The 2 deprecated methods postSessionCreation(Session) and ensureLocalProjectExists(String) have been removed from AbstractCreateLocalProjectRemoteWizard. Use the versions using IProgressMonitor instead.