Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Mylyn/Porting Guide"

m (Tasks API)
(169 intermediate revisions by 11 users not shown)
Line 1: Line 1:
[[Category:Mylar]]  
+
[[Category:Mylyn]]  
This document will have Mylar 2.0 specific API changes added to it as we make them.  If interested in keeping up with these changes we '''suggest setting a watch''' for this page.  Note that changes involving classes moving packages are not listed, use ''Organize Imports'' to resolve.
+
  
= Migrating from Mylar to Mylyn =
+
= General =
  
Follow these instructions to migrate your workspace for the Mylar to Mylyn name change.
+
Mylyn follows the Eclipse conventions for [[Version_Numbering|version numbering]] and guarantees [[Evolving_Java-based_APIs|binary backwards compatibility]] for minor releases. Internals are binary backwards compatible between service releases.
  
== Bugzilla ==
+
API enhancements can be tracked by searching the source code for the corresponding @since JavaDoc tags or by querying for bugs that have [api] in their summary.
  
* Open each query that you have, select '''Update Attributes''' and change the product from ''Mylar'' to ''Mylyn''.
+
= Changes in 3.12 =
* Note that <code>mylar-inbox@eclipse.org</code> has been renamed to <code>mylyn-inbox@eclipse.org</code>.
+
* After synchronizing you may see a large number of bugs with incoming changes.  This is due to the product name having changed on those bugs.  If you have too many incomings to read through, we recommend selecting resolved bugs and using '''Mark'''->'''Read''' via the context menu. 
+
  
= Porting from Mylar 1.0 to 2.0 =
+
* The SOAP transport was removed ({{bug|421379}}).
  
== ''Pending Changes'' ==
+
= Changes in 3.11 =
  
The following changes are planned but not yet implemented.  Email mylar-dev if any of these pose a problem.
+
* The SOAP transport was deprecated ({{bug|423964}}).
  
* <code>AbstractRepositoryTaskEditor</code>
+
= Changes in 3.10 =
** creation of the <code>Composite</code> for "Attributes" section moved out of the <code>createAttributeLayout(..)</code> method into <code>createSections()</code>. So, method <code>createAttributeLayout(..)</code> is now takes that composite as parameter and returns <code>void</code>.
+
  
* <code>AbstractRepositoryConnector</code>:
+
None.
** rename <code>createTaskFromExistingKey(..)</code> to <code>addExistingTask(..)</code>
+
** rename getRepositoryType() to getConnectorKind()
+
  
* <code>AbstractRepositoryConnectorUi</code>:
+
= Porting from 3.8 to 3.9 =
** remove hasRichEditor();
+
  
* <code>AbstractRepositoryQuery</code>
+
== Mylyn Reviews ==
** rename to <code>AbstractRepositoryTaskContainer</code> or merge with <code>AbstractTaskContainer</code>
+
  
* <code>AbstractRepositoryTask</code>
+
The Reviews framework has had a major update which resulted in changes to the core model and API. In consequence, the version was updated to 2.0.
** rename getRepositoryKind() to getConnectorKind()
+
** rename setLastSyncDateStamp() to setLastReadTimeStamp()
+
** rename getLastSyncDateStamp() to getLastReadTimeStamp()
+
  
* <code>IRepositoryConstants</code>
+
= Porting from 3.7 to 3.8 =
**rename PROPERTY_KIND to PROPERTY_CONNECTOR_KIND
+
  
* <code>Task</code>
+
No API changes that affect integrators.
** rename getRepositoryKind() to getConnectorKind()
+
** rename getDescription() to getSummary()
+
** rename setKind() to setTaskKind()
+
  
* <code>TaskListManager</code>
+
= Porting from 3.6 to 3.7 =
** task activity methods might move to a new TaskActivityManager class
+
  
* <code>TaskRepository</code>:
+
== Mylyn Commons ==
** rename <code>getKind()</code> to <code>getConnectorKind()</code>
+
** Make class final
+
  
* Bridges:
+
* {{bug|305782}} Restructuring of Mylyn Commons features
** Dtructure bridge: consider changing contentType -> structureKind
+
  
== General ==
+
The Mylyn Commons components were restructured and provisional packages were promoted to API. Several bundle IDs, package names and extension IDs were changed in the process. Classes in provisional packages were kept but marked as deprecated and will be removed in a future release. None of the changes break API backwards compatibility but integrations that consumed internal packages or extensions points may need to be adapted.
  
* '''Mylar to Mylyn project name refactoring''' 
+
The following bundles were renamed:
** Use Search > File Search, enter in "org.eclipse.mylar" as search string and enter file types "*.java, *.xml, *.xsd, *.properties, *.mf" and click on Replace... at bottom of Search dialog. In resulting Replace dialog enter "org.eclipse.mylyn" as the replace text.
+
** Select all projects and execute Source > Organize Imports.
+
** If you get compile errors after Organizing Imports related to HttpClient ensure that the apache commons HttpClient (contained in org.eclipse.mylyn package) has been imported NOT the jvm's version.
+
  
* Library dependencies have moved to <code>org.eclipse.mylar</code>
+
org.eclipse.mylyn.commons.identity      -> org.eclipse.mylyn.commons.identity.core
 
+
org.eclipse.mylyn.commons.notifications -> org.eclipse.mylyn.commons.notifications.ui
* <code>MylarStatusHandler</code> and <code>IStatusHandler</code>
+
org.eclipse.mylyn.commons.repositories  -> org.eclipse.mylyn.commons.repositories.core
** moved from <code>org.eclipse.mylar.context.core</code> to <code>org.eclipse.mylar.core</code>
+
org.eclipse.mylyn.commons.team          -> org.eclipse.mylyn.commons.repositories.ui
  
* <code>MylarStatus</code> (place holder, will improve as we solidify this)
+
A complete list of renamed and added bundles can be found on bug 305782 on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=305782#c13 comment 13].
** <code>MylarStatusHandler.displayStatus(dialog title, IStatus status)</code> - call to display error and information dialogs
+
** When returning <code>CoreException</code> pass in a <code>MylarStatus</code> with appropriate code (see <code>IMylarStatusConstants</code>).
+
** If <code>IMylarStatusConstants.INTERNAL_ERROR</code> is sent to <code>MylarStatusHandler.displayStatus</code> an error dialog will appear and the error will be logged.
+
** <code>IMylarStatusConstants.REPOSITORY_COLLISION</code> used for mid-air collision. Pass repository url and appropriate dialog will be displayed.
+
  
* <code>WebClientUtil</code>
+
The following packages were renamed:
** moved from <code>..mylar.tasks.core</code> to <code>..mylar.core.net</code>
+
  
* Methods that do I/O operations now take an <code>IProgressMonitor</code> parameter ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=143011 #143011])
+
org.eclipse.mylyn.commons.identity    -> org.eclipse.mylyn.commons.identity.core
 +
org.eclipse.mylyn.commons.repositories -> org.eclipse.mylyn.commons.repositories.core
 +
org.eclipse.mylyn.commons.ui.team      -> org.eclipse.mylyn.commons.repositories.ui
  
== Tasks API ==
+
The following provisional packages were promoted to API (see {{bug|360301}}):
  
Sorting is alphabetical.  
+
org.eclipse.mylyn.internal.provisional.commons.core        -> org.eclipse.mylyn.commons.core
 +
org.eclipse.mylyn.internal.provisional.commons.ui          -> org.eclipse.mylyn.commons.ui
 +
                                                            -> org.eclipse.mylyn.commons.workbench
 +
                                                            -> org.eclipse.mylyn.commons.workbench.browser
 +
                                                            -> org.eclipse.mylyn.commons.workbench.editors
 +
                                                            -> org.eclipse.mylyn.commons.workbench.forms
 +
                                                            -> org.eclipse.mylyn.commons.workbench.search
 +
org.eclipse.mylyn.internal.provisional.commons.ui.actions  -> org.eclipse.mylyn.commons.ui
 +
org.eclipse.mylyn.internal.provisional.commons.ui.commands -> org.eclipse.mylyn.commons.workbench.texteditor
 +
org.eclipse.mylyn.internal.provisional.commons.ui.dialogs  -> org.eclipse.mylyn.commons.ui.dialogs
 +
org.eclipse.mylyn.internal.provisional.commons.ui.editor  -> org.eclipse.mylyn.commons.workbench
  
* <code>AbstractQueryHit</code>
+
In some cases provisional packages do not map directly to API packages but classes were distributed among several packages.
** <code>setDescription(..)</code> renamed to <code>setSummary(..)</code>
+
  
* <code>AbstractRepositoryConnector</code>
+
The following extension points have moved:
** <code>getLastSyncTimestamp(TaskRepository repository, Set<AbstractRepositoryTask> changedTasks)</code>: added  (may change as part of [https://bugs.eclipse.org/bugs/show_bug.cgi?id=176934 bug#176934])
+
** <code>getSupportedVersions()</code> has been removed ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=176815 #1768159])
+
** <code>createTaskFromExistingId()</code> is no longer abstract and takes care of task creation
+
** <code>updateTaskFromTaskData(TaskRepository, AbstractRepositoryTask, RepositoryTaskData)</code> added. Must be implemented to handle updating information on the <code>AbstractRepositoryTask</code> with data from the <code>RepositoryTaskData</code>
+
** renamed <code>updateTask</code> to <code>updateTaskFromRepository</code>
+
** <code>createTaskFromExistingKey()</code> renamed to createTaskFromExistingId() and is final
+
** <code>makeTask()</code> added. Connector specific repository task construction
+
** <code>setTaskDataManager()</code> added. Manager set upon connector construction in TasksUiPlugin. If being used headless, will need to manually set for offline support.
+
  
* <code>AbstractRepositoryConnectorUi</code>
+
org.eclipse.mylyn.commons.team.newWizards -> org.eclipse.mylyn.commons.repositories.ui.newWizards
** <code>openRemoteTask(String repositoryUrl, String id)</code>: removed, this method no longer needs to be implemented by the connector. Instead classes can rely on the new <code>openRepositoryTask(..)</code> method, and override it if necessary.
+
** getRepositoryUrl and all ID/URL methods: now final, change via setters
+
** + findHyperlinks(...) override to detect hyperlinks in editors
+
** handlesDueDates() added. Override and return true if connector capable of handling due dates.
+
** getTaskKindLabel(RepositoryTaskData) returns suitable label for task kind (default is 'Task') override to suit
+
  
* <code>AbstractRepositoryQuery</code>
+
The following extension IDs have changed:
** <code>setMaxHits()</code> removed and constrctor no longer takes number of hits. Connectors can use QueryHitCollector.MAX_HITS (currently 5000) when setting max number of hits to return.
+
** <code>updateHits</code> removed (hits/tasks added by sync job via TaskList.addTask(...)
+
** <code>addHit</code> removed
+
** <code>removeHit</code> removed (use methods from parent class AbstractTaskContainer)
+
** <code>findQueryHit</code> removed
+
  
 +
org.eclipse.mylyn.commons.team.navigator.Repositories -> org.eclipse.mylyn.commons.repositories.ui.navigator.Repositories
 +
org.eclipse.mylyn.commons.team.category              -> org.eclipse.mylyn.commons.repositories.ui.category.Team
  
*<code>AbstractRepositorySettingsPage</code> validation changes.
+
= Porting from 3.0 to 3.6 =
**<code>setNeedsValidation(boolean needsValidation)</code>  if true validate button will be visible
+
**<code>getValidator(TaskRepository repository)</code> return an instance of <code>Validator</code>.  
+
  
* <code>AbstractRepositoryTask</code>
+
See the <b>[[Mylyn/Porting Guide/3.x]]</b>
** <code>Task</code>: constructor no longer takes newTask bookean, use setCreationDate(new Date()) for creating a new task instead
+
** constructor now requires taskId (now immutable)
+
** getIdentifyingLabel() -> getTaskKey()
+
** getLastRefreshTimeInMinutes(Date) removed
+
** no more static methods (use RepositoryTaskHandleUtil)
+
** Replace this idiom:
+
    String handleIdentifier = AbstractRepositoryTask.getHandle(repository.getUrl(), taskId);
+
    ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(handle);
+
** with:
+
    ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(repository.getUrl(), taskId);
+
** isDirty() and setDirty() removed
+
** isDownloaded() removed
+
** getTaskData(), setTaskData() removed
+
** isSubmitting(), setSubmitting() added
+
**
+
  
 +
= Porting from 2.0 to 3.0 =
  
* <code>AbstractRepositoryTaskEditor</code>
+
See the <b>[[Mylyn/Porting Guide/3.0]]</b>
** <code>attachContext()</code> Added <code>IProgressMonitor</code> parameter ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=143011 #143011])
+
**<code>attributeChanged()</code> Anything that needs to be saved must be in attribute form and passed to this method. Most if this is all done for you but if you override AbstractRepositoryTaskEditor.createCustomAttributeLayout() then you will want to ensure that attributeChanged is called upon editing. Utility method createTextField() handles this call. 
+
** <code>createLabel()</code> Utility method  added. It will put an '*' at the front of the label if the attribute has been modified. Eventually this will be applied upon editing but currently only happens after re-freshing or re-opening the editor.
+
** <code>createTaskFromExistingId()</code> Added <code>IProgressMonitor</code> parameter ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=143011 #143011])
+
** <code>handleNewBugPost()</code> Added <code>IProgressMonitor</code> parameter ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=143011 #143011])
+
** <code>SECTION_NAME</code> is an enum that holds default titles for the default sections. To override these default titles, set the appropriate (SECTION_NAME, new name) in <code>alternateSectionLabels</code> on <code>AbstractRepositoryTaskEditor</code>.
+
** <code>updateEditor()</code> refreshes editor with new input in-place.
+
** <code>uploadTaskFromRepository()</code> Added <code>IProgressMonitor</code> parameter ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=143011 #143011])
+
** ComboSelectionListener removed  (see createAttributeLayout for exmaple of attribute update lister)
+
** comboListenerMap, removed
+
** changedAttributes now private
+
** setAttachContext() removed
+
** attachContext renamed attachContextEnabled and private (use setAttachContextEnabled())
+
** showAttachments now private, use setShowAttachments()
+
** backgroundIncoming private, use getColorIncoming()
+
** connector private, use getConnector()
+
** HEADER_DATE_FORMAT private, use getCommonDateFormat()
+
** isDisposed() removed, use getManagedForm().getForm().isDisposed()
+
** updateTask() removed, implimentation moved to saveTaskOffline()
+
** select(...) private
+
** checkText() removed
+
** toolkit private, use getManagedForm.getToolkit()
+
** SummaryListener removed
+
** display, VALUE, HEADER, PROPERTY, HYPERLINK_TYPE_TASK, HYPERLINK_TYPE_JAVA, HORZ_INDENT - removed
+
** alternateSectionLabels, removed - overload getSectionLabel() if necessary
+
** currentSelectedText removed
+
** cutAction, pastAction removed
+
** scrollIncrement, scrollVertPageIncrement, scrollHorzPageIncrement were protected now private
+
** commetStyleText, textsindex, removed
+
** createReportHeaderLayout() renamed to createSummaryLayout()
+
  
  
*<code> AttributeContainer</code>
+
= Porting from 1.0 to 2.0 =
**<code>getAttributeFactory()</code> new method
+
  
*<code>AbstractTaskContainer</code>
+
See the <b>[[Mylyn Porting Guide 2.0]]</b>
** constructor no longer takes a TaskList
+
** getChildern() requires taskList parameter
+
 
+
* <code>DateRangeContainer</code>
+
** getChildren() now returns set of underlying task objects (not DateRangeActivityDelegates which will be deprecated)
+
** getDateRangeDelegates() returns the delegate formerly returned by getChildren()
+
 
+
* <code>DelegatingTaskExternalizer</code>
+
** <code>readTaskInfo(..)</code> and <code>readQueryHitInfo(..)</code> are now called automatically and are private.  Use your <code>createTask(..)</code> or <code>createQueryHit(..)</code> methods to customize reading additional attributes.
+
 
+
* <code>DelegatingTaskExternalizer</code>
+
** init() removed
+
** readTaskData() removed
+
 
+
* <code>IAttachmentHandler</code>
+
** <code>downloadAttachment()</code> Added <code>IProgressMonitor</code> parameter ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=143011 #143011]). The data is now written to an <code>OutputStream</code> instead of a <code>File</code> ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=186070 #]186070). A default implementation for this method which uses <code>getAttachmentAsStream()</code> for retrieving the attachment is provided in <code>AbstractAttachmentHandler</code>.
+
** <code>getAttachmentData()</code> has been replaced by <code>getAttachmentAsStream()</code> which now returns an InputStream for reading the attachment data ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=186070 #]186070).
+
** <code>uploadAttachment()</code> Added <code>IProgressMonitor</code> parameter ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=143011 #143011]). Attachment properties are now passed as an object of type <code>ITaskAttachment</code>. This interface provides a <code>createInputStream()</code> method to create a stream for reading the data source ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=186070 #]186070).
+
 
+
* ITask
+
** <code>setDescription(...)</code> renamed to <code>setSummary</code>
+
** <code>addSubTask()</code> removed
+
** <code>removeSubTask()</code> removed
+
 
+
* <code>ITaskDataHandler</code>
+
** <code>getChangedSinceLastSync()</code> method moved to <code>AbstractRepositoryConnector</code>
+
** New comment now held in an attribute: <code>RepositoryTaskAttribute.COMMENT_NEW</code> will need to update handler and factory to produce connector specific attribute
+
** <code>getTaskData()</code> Added <code>IProgressMonitor</code> parameter ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=143011 #143011])
+
** <code>initializeTaskData(TaskRepository repository, RepositoryTaskData data, IProgressMonitor monitor)</code> called by NewTaskWizard to initialize new taskData objects (currently only in use by Trac but will adopt).
+
** <code>getAttributeFactory(String repositoryUrl, String repositoryKind, String taskKind)</code> signature changed
+
** <code>getDateForAttributeType(...)</code> moved to <code>AbstractAttributeFactory</code>
+
** <code>postTaskData()</code> Added <code>IProgressMonitor</code> parameter ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=143011 #143011])
+
 
+
* <code>ITaskListElement</code>: now extends <code>java.lang.Comparable</code>, so Collections support of sorting can be used, since task list elements have a natural ordering. Default implementations are provided for tasks and containers. ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=171590 bug 171590])
+
 
+
* <code>ITaskListExternalizer</code>
+
** <code>readTask(..)</code> renamed to <code>createTask(..)</code>, no longer needs to set taskId, label, or repositoryUrl
+
** <code>createQueryElement(...)</code> requires additional TaskList parameter
+
** <code>getQueryHitTagName()</code> removed
+
** <code>createQueryHitElement()<code> removed (hit read/write now handled by framework)
+
** <code>canReadQueryHit()</code> removed
+
** <code>createQueryHit()</code> removed
+
 
+
* <code>QueryHitCollector</code>
+
** MAX_HITS constant can be used as standard default number of hits handled per query. User notified when >= hits returned.
+
 
+
* <code>RepositorySynchronizationManager</code>
+
** <code>updateOfflineState</code> is now <code>saveIncoming</code> and <code>saveOutgoing</code>.
+
** <code>discardOutgoing</code> discards any pending outgoing changes
+
 
+
* <code>RepositoryTaskAttribute</code>
+
** getID() -> getId()
+
 
+
*<code>RepositoryTaskData</code>
+
**constructor now requires a task kind (string) (i.e. <code>Task.DEFAULT_TASK_KIND</code>)
+
**<code>getTaskKind</code> return the task kind
+
**<code>setNew(boolean)</code> signifies that this is unsubmitted task data. Used by editor factory to determine if existing or new editor to be opened.
+
 
+
* <code>SynchronizeQueryJob</code>
+
** renamed setSynchTasks() to setSynchChangedTasks()
+
 
+
* <code>Task</code>
+
** constructor no longer takes newTask boolean, use setCreationDate(new Date()) for creating a new task instead
+
** <code>dropSubTasks</code>: added, removes all subtasks
+
** <code>getTooltipText()</code>: deleted, not used
+
** Due dates are now supported <code>getDueDate(), setDueDate()</code>
+
** handleIdentifier: now private
+
** get/setUrl are now get/setTaskUrl (to disambiguate with get/setRepositoryUrl())
+
** <code>getElapsedTime()</code>: removed, not used previously, use <code>TaskListManager.getElapsedTime(ITask)</code> instead (note this method might move)
+
** <code>setElapsedTime()</code>: removed, not used
+
** <code>getParent()</code> removed
+
** <code>setParent()</code> removed  (tasks can have multiple parent tasks)
+
** <code>isCategory()</code> removed
+
** <code>setIsCategory()</code> removed
+
** <code>addSubTask(), removeSubTask(), dropSubTasks()</code> removed Task extends AbstractTaskContainer so task containment semantics handled by parent. ''To ADD subtasks use TaskList.addTask(child, parent) getting and dropping of subtasks can be performed via methods on the Task (inherited from AbstractTaskContainer)remove(), clear()''
+
 
+
* <code>TaskContainer</code> and all others extending <code>AbstractTaskContainer</code>
+
** constructor no longer takes tasklist parameter
+
 
+
* <code>TaskEditor</code>
+
** <code>protected void pageChange(intNewPageIndex)</code> method removed (only called super)
+
 
+
* <code>TaskList</code>
+
** <code>getChangeListeners()</code>: returns a <code>Set</code> instead of <code>List</code>
+
** <code>getRootCategory</code> renamed to <code>getUncategorizedCategory</code>
+
**
+
 
+
* <code>TaskListImages</code>
+
** renamed to <code>TasksUiImages</code> (still an internal class, should move to API)
+
 
+
* <code>TaskListManager</code>
+
** <code>setDueDate()</code> used to set due date on a task and cause notification of local info changed.
+
** <code>isDue(ITask)</code> true if task's due date isn't null and date has past
+
 
+
* <code>TaskListWriter</code>
+
** <code>setTaskDataManager()</code>  removed
+
 
+
* <code>TaskRepository</code>
+
**TaskRepository.isAnonymous()
+
**TaskRepository.setAnonymous(boolean)
+
** (-) TaskRepository.getDefaultProxy()  (Renamed and moved to WebClientUtil.getPlatformProxy())
+
 
+
* <code>TasksUiUtil</code>
+
** <code>openUrl(String url)</code>: moved to <code>openUrl(String url, boolean useRichEditor)</code>
+
** <code>getImageDescriptorForPriority(..)</code> moved to TasksUiImages
+
** <code>getImageForPriority(..)</code>moved to TasksUiImages
+
 
+
== Context API ==
+
* <code>AbstractContextUiBridge<code>
+
** removed: <code>restoreEditor(IMylarElement)</code> use <code>open(IMylarElement)</code> instead
+
* <code>AbstractContextStore</code>
+
** <code>notifyContextStoreMoved()</code>: change to <code>contextStoreMoved()</code>
+
* <code>AbstractContextStructureBridge</code>
+
** <code>getDegreesOfSeparation()</code>: moved to <code>AbstractRelationProvider</code>
+
** <code>getRelationshipProviders()</code>: moved to extensions point, e.g.:
+
 
+
  <extension point="org.eclipse.mylar.context.core.bridges">
+
    <relationProvider
+
          class="org.eclipse.mylar.internal.java.search.JavaImplementorsProvider"
+
          contentType="java"/>
+
  </extension>
+
 
+
* <code>IMylarContextListener</code>: renamed to <code>IInteractionContextListener</code>
+
** <code>contextCleared(..)</code>: added
+
** <code>presentationSettingsChanging(..)</code>: removed, not used
+
** <code>presentationSettingsChanged(..)</code>: removed, not used
+
** <code>UpdateKind</code>: removed, not used
+
 
+
* <code>IMylarContext</code>: renamed to <code>IInteranctionContext</code>
+
** <code>getHandleIdentifier()</code>: added to facilitate mapping
+
 
+
* <code>IMylarElement</code>: renamed to <code>IInteractionElement</code>
+
* <code>IMylarObject</code>: renamed to <code>IInteractionObject</code>
+
* <code>IMylarRelation</code>: renamed to <code>IInteractionRelation</code>
+
* <code>IContextWriter</code>: renamed to <code>IInteractionContextWriter</code>
+
* <code>IContextReader</code>: renamed to <code>IInteractionContextReader</code>
+
* <code>IMylarContextListener</code>: renamed to <code>IInteractionContextListener</code>
+
* <code>MylarContextManager</code>: renamed to <code>InteractionContextManager</code>
+
 
+
== Monitor API ==
+
 
+
*<code>MylarMonitorUiPlugin</code>: renamed to <code>MonitorUiPlugin</code>
+
** (-) setInactivityTimeout(...)
+
 
+
* <code>org.eclipse.mylar.monitor</code>: split into <code>monitor.core</code> and <code>monitor.ui</code>, organize imports and update extension point IDs
+
* <code>HandleObfuscator</code>
+
** moved to <code>InteractionEventObfuscator</code>
+
 
+
* <code>org.eclipse.mylar.monitor.usage.core</code> and <code>org.eclipse.mylar.monitor.usage.ui</code>
+
** moved to <code>..mylar.monitor.core</code>, <code>..mylar.monitor.usage</code> and <code>..mylar.monitor.usage.internal</code>
+

Revision as of 20:19, 27 June 2014


General

Mylyn follows the Eclipse conventions for version numbering and guarantees binary backwards compatibility for minor releases. Internals are binary backwards compatible between service releases.

API enhancements can be tracked by searching the source code for the corresponding @since JavaDoc tags or by querying for bugs that have [api] in their summary.

Changes in 3.12

Changes in 3.11

Changes in 3.10

None.

Porting from 3.8 to 3.9

Mylyn Reviews

The Reviews framework has had a major update which resulted in changes to the core model and API. In consequence, the version was updated to 2.0.

Porting from 3.7 to 3.8

No API changes that affect integrators.

Porting from 3.6 to 3.7

Mylyn Commons

  • bug 305782 Restructuring of Mylyn Commons features

The Mylyn Commons components were restructured and provisional packages were promoted to API. Several bundle IDs, package names and extension IDs were changed in the process. Classes in provisional packages were kept but marked as deprecated and will be removed in a future release. None of the changes break API backwards compatibility but integrations that consumed internal packages or extensions points may need to be adapted.

The following bundles were renamed:

org.eclipse.mylyn.commons.identity      -> org.eclipse.mylyn.commons.identity.core
org.eclipse.mylyn.commons.notifications -> org.eclipse.mylyn.commons.notifications.ui
org.eclipse.mylyn.commons.repositories  -> org.eclipse.mylyn.commons.repositories.core
org.eclipse.mylyn.commons.team          -> org.eclipse.mylyn.commons.repositories.ui

A complete list of renamed and added bundles can be found on bug 305782 on comment 13.

The following packages were renamed:

org.eclipse.mylyn.commons.identity     -> org.eclipse.mylyn.commons.identity.core
org.eclipse.mylyn.commons.repositories -> org.eclipse.mylyn.commons.repositories.core
org.eclipse.mylyn.commons.ui.team      -> org.eclipse.mylyn.commons.repositories.ui

The following provisional packages were promoted to API (see bug 360301):

org.eclipse.mylyn.internal.provisional.commons.core        -> org.eclipse.mylyn.commons.core
org.eclipse.mylyn.internal.provisional.commons.ui          -> org.eclipse.mylyn.commons.ui
                                                           -> org.eclipse.mylyn.commons.workbench
                                                           -> org.eclipse.mylyn.commons.workbench.browser
                                                           -> org.eclipse.mylyn.commons.workbench.editors
                                                           -> org.eclipse.mylyn.commons.workbench.forms
                                                           -> org.eclipse.mylyn.commons.workbench.search
org.eclipse.mylyn.internal.provisional.commons.ui.actions  -> org.eclipse.mylyn.commons.ui
org.eclipse.mylyn.internal.provisional.commons.ui.commands -> org.eclipse.mylyn.commons.workbench.texteditor
org.eclipse.mylyn.internal.provisional.commons.ui.dialogs  -> org.eclipse.mylyn.commons.ui.dialogs
org.eclipse.mylyn.internal.provisional.commons.ui.editor   -> org.eclipse.mylyn.commons.workbench

In some cases provisional packages do not map directly to API packages but classes were distributed among several packages.

The following extension points have moved:

org.eclipse.mylyn.commons.team.newWizards -> org.eclipse.mylyn.commons.repositories.ui.newWizards

The following extension IDs have changed:

org.eclipse.mylyn.commons.team.navigator.Repositories -> org.eclipse.mylyn.commons.repositories.ui.navigator.Repositories
org.eclipse.mylyn.commons.team.category               -> org.eclipse.mylyn.commons.repositories.ui.category.Team

Porting from 3.0 to 3.6

See the Mylyn/Porting Guide/3.x

Porting from 2.0 to 3.0

See the Mylyn/Porting Guide/3.0


Porting from 1.0 to 2.0

See the Mylyn Porting Guide 2.0

Back to the top