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
andPROJECT_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 aString
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 sinceInstant.EPOCH
(1970-01-01T00:00:00Z). IfHEAD
or0
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 afr.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 returnsfalse
.
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.
-
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 fromexecute()
. It is called at the end of theexecute
method and does all the model copy and transformation. -
void loadAllRepresentations(ResourceSet sourceResourceSet)
has been extracted fromloadResourcesUsedAsSources
and is now called just after this method inexecute
.
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 inCDOExporter
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 overrideCDOSiriusPreferenceKeys.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 ofRuntimeException
to avoid encapsulate this first exception by the second one when aRepositoryConnectionException
can occurs and we need to dispatch it to give feedback to end-user. -
The methods
CDORepositoryManagerRegistry.getRepositoryManager()
can throwRepositoryConnectionException
andLifecycleException
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 methodisPasswordToStore()
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 implementfr.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 indispose
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 acceptsCDOUpdatable
, i.e.CDOView
andCDOTransaction
to wait that specifiedCDOUpdatable
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 offr.obeo.dsl.viewpoint.collab.api.remotesession.CollaborativeSession.addRemoteRepresentationsSet(String)
method becauseConnectToRemoteSessionCommand
is no more useful and should not be used since we now have aTransactionalEditingDomain
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 renamedorg.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 ofCDOUtil.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 onfr.obeo.dsl.viewpoint.collab.api.CDOImporter.importLocalFilesIntoRepository
andfr.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, usefr.obeo.dsl.viewpoint.collab.api.CDOExporter
andfr.obeo.dsl.viewpoint.collab.api.CDOImporter
. -
The parameter
updateXmiIdsResource
has been added tofr.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 ofCDORepositoryManager.getId()/setId()
to have better named methods as a id of aCDORepositoryManager
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 overloaddoImportLocalFilesOnRepository
-
fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ExportSemanticResourceToRemoteWizard
. Method to overloaddoImportSemanticResourcesOnRepository
-
fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ImportModelFromRemoteWizard
. Method to overloaddoExportRepositoryResourcesFromRepository
-
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 ofICollabTooltipProvider
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 methodcanFinish()
has been overridden. -
In
fr.obeo.dsl.viewpoint.collab.ui.api.wizards.ImportModelFromRemoteWizard
the methodcanFinish()
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 methodscheckAnyTypes()
,checkProxies()
andgetRepresentationsResources()
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 targetTransactionalEditingDomain
is not disposed at the end of import process. By default the targetTransactionalEditingDomain
, obtained throughEditingDomainFactoryService.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 theDAnalysis
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 theDAnalysis
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 tofr.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 providesIProgressMonitor
support. -
The deprecated method
Collection<CDOResource> saveRemoteResources(Set<CDOResource>, Map<?, ?>)
have been removed fromCollaborativeSavingPolicy
. Use theCollection<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)
andloadResourcesUsedAsSources(Set<URI>, CDORepositoryManager, ResourceSet, Collection<Resource>)
have been removed from theAbstractImporterExporter
and its 2 subclasses (CDOImporter
andCDOExporter
). Use the version usingIProgressMonitor
instead. -
The
SiriusCloseSessionExceptionHandler
have been deleted, and replaced by theISiriusRemoteExceptionHandler
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 ownISiriusRemoteExceptionHandler
to react to remote exceptions. -
The
CDORepositoryManager.getRemoteExceptionHandler()
has been added to get theISiriusRemoteExceptionHandler
used by the currentCDORepositoryManager
. -
The
DefaultSiriusRemoteExceptionHandler
class provides a default implementation of theISiriusRemoteExceptionHanlder
and may be overridden.
24.1.2. Changes in fr.obeo.dsl.viewpoint.collab.ui
-
The deprecated method
postSessionCreation(String)
has been removed fromImportModelFromRemoteWizard
. Use the version usingIProgressMonitor
instead. -
The 2 deprecated methods
addRemoteRepresentationSet(CDOTransaction, CollaborativeSession)
andCollaborativeSession createLocalSession(String)
have been removed fromConnectToRemoteWizard
. Use the versions usingIProgressMonitor
instead. -
The 2 deprecated methods
postSessionCreation(Session)
andensureLocalProjectExists(String)
have been removed fromAbstractCreateLocalProjectRemoteWizard
. Use the versions usingIProgressMonitor
instead.