Difference between revisions of "Mylyn/Porting Guide"

From Eclipsepedia

Jump to: navigation, search
Line 9: Line 9:
 
= Pending API changes in 3.7 =
 
= Pending API changes in 3.7 =
  
None.
+
== Mylyn Commons ==
  
= Notable API changes in 3.6 =
+
* {{bug|305782}} Restructuring of Mylyn Commons features
  
None.
+
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.
  
= Notable API changes in 3.5 =
+
The following bundles were renamed:
  
None.
+
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
  
= Notable API changes in 3.4 =
+
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].
  
[https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=%5Bapi%5D&product=Mylyn&target_milestone=3.4&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=|All API enhancements in 3.4]
+
The following packages were renamed:
  
'''Tasks Framework'''
+
org.eclipse.mylyn.commons.identity    -> org.eclipse.mylyn.commons.identity.core
* {{bug|238006}} <code>TaskAttributeMapper.getDefaultOption()</code> has been deprecated since it is not used.
+
org.eclipse.mylyn.commons.repositories -> org.eclipse.mylyn.commons.repositories.core
* {{bug|216557}} <code>TaskAttachmentPage</code> supports an option for showing a "Replace existing attachment of the same name" checkbox.
+
org.eclipse.mylyn.commons.ui.team      -> org.eclipse.mylyn.commons.repositories.ui
* {{bug|255003}} <code>AbstractRepositorySettingsPage</code> has an option to allow empty passwords.
+
* {{bug|297254}} <code>AbstractRepositoryConnector</code> allows disabling of repository creation for a connector
+
* {{bug|164221}} <code>AbstractRepositoryConnectorUi.findHyperlinks()</code> now has a task parameter.
+
* {{bug|311634}} Connectors can provide an alternate editor input by implementing <code>AbstractRepositoryConnectorUi.getEditorInput()</code>.
+
* {{bug|296963}} Connectors can specify a URL when tasks are opened or task details are copied to supply authentication details.
+
* {{bug|304086}} The dependency from <code>org.eclpise.mylyn.tasks.ui</code> on <code>org.eclipse.search</code> has been extracted to <code>org.eclipse.mylyn.tasks.search</code>.
+
* {{bug|302907}} Connectors can specify categories for task repositories.
+
  
'''Commons'''
+
The following provisional packages were promoted to API (see {{bug|360301}}):
  
* {{bug|298156}} <code>WebUtils.releaseConnection()</code> can be used for canceling HTTP requests without blocking.
+
org.eclipse.mylyn.internal.provisional.commons.core        -> org.eclipse.mylyn.commons.core
* {{bug|304755}} The <code>org.eclipse.mylyn.commons</code> feature provides all <code>org.eclipse.mylyn.commons.*</code> plug-ins.
+
org.eclipse.mylyn.internal.provisional.commons.ui          -> org.eclipse.mylyn.commons.ui
* {{bug|308737}} The <code>org.eclipse.mylyn.xmlrpc</code> provides a generic XML-RPC transport layer.
+
                                                            -> 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
  
'''Integrated Support'''
+
In some cases provisional packages do not map directly to API packages but classes were distributed among several packages.
* {{bug|294957}} The support extension is now public API.
+
  
= Notable API changes in 3.3 =
+
The following extension points have moved:
  
[https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=%5Bapi%5D&product=Mylyn&target_milestone=3.3&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=|All API enhancements in 3.3]
+
org.eclipse.mylyn.commons.team.newWizards -> org.eclipse.mylyn.commons.repositories.ui.newWizards
  
'''Tasks Framework'''
+
The following extension IDs have changed:
* {{bug|268467}} improve support for propagating sync status for connectors that support multi bug retrieval
+
* {{bug|284172}} provide access to progress monitor to allow monitoring synchronization jobs in progress
+
* {{bug|207623}} add support for deleting a task from repository
+
* {{bug|290599}} support partial updating of repository configuration
+
  
= Notable API changes in 3.2 =
+
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
  
[https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=%5Bapi%5D&product=Mylyn&target_milestone=3.2&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=|All API enhancements in 3.2]
+
= Porting from 3.0 to 3.6 =
 
+
'''Context Framework'''
+
* {{bug|274904}} <code>AbstractContextListener</code> uses a single <code>contextChanged(ContextChangeEvent)</code> method instead of separate methods for each event type. The old notification methods have been deprecated.
+
 
+
'''Tasks Framework'''
+
* {{bug|269407}} <code>TaskDataModel.getChangedOldAttributes()</code> has been implemented and the list of changed attributes is now passed to <code>AbstractTaskDataHandler.postTaskData()</code> to support incremental updates to tasks.
+
* {{bug|278298}} To make use of the private section in the editor <code>setNeedsPrivateSection(true)</code> needs to be invoked in the constructor of classes extending <code>AbstractTaskEditorPage</code>. To suppress the planning page <code>AbstractTaskEditorPageFactory.getConflictingIds()</code> needs to return <code>new String[] { ITasksUiConstants.ID_PAGE_PLANNING }</code>.
+
* {{bug|274790}} To enable the submit button in the header toolbar of the Task Editor <code>setNeedsSubmitButton(true)</code> needs to be invoked in the constructor of classes extending <code>AbstractTaskEditorPage</code>.
+
* {{bug|278708}} Classes extending <code>AbstractTaskEditorPage</code> that do not support submission are encouraged to invoke <code>setNeedsSubmit(false)</code> in their constructor. This flag may be used in the future to hide submit button contributions and to disable key-bindings for submitting.
+
* {{bug|276651}} Severity and version have been added to the common task schema. Connectors are encouraged to map <code>TaskAttribute.SEVERITY</code> and <code>TaskAttribute.VERSION</code> in <code>TaskAttributeMapper.mapToRepositoryKey()</code>.
+
 
+
'''Integrated Support'''
+
* {{bug|150278}} The org.eclipse.mylyn.tasks.bugs plug-in specifies an extension point for contributing a mapping from plug-in ids to task repositories or custom support handlers.
+
 
+
== WikiText 1.1 ==
+
 
+
WikiText 1.1 was released as part of Mylyn 3.2.  WikiText 1.1 has several new API additions which can be found in the source by searching for <tt>@since 1.1</tt>.  All API additions are non-breaking changes unless your project subclasses WikiText classes.  When porting to WikiText 1.1 care should be taken to review these additions where subclassing is used.
+
 
+
The following changes should be noted when porting, as they may cause warnings in your projects:
+
 
+
* Several methods in WikiText have been marked as @noreference.  These methods were previously marked as <em>Not API</em> in the javadoc, however @noreference is more explicit and works well with the PDT API tools.  More information about these changes can be found on {{bug|280614}}
+
** <code>org.eclipse.mylyn.wikitext.ui.viewer.HtmlViewer.getStylesheet()</code>
+
** <code>org.eclipse.mylyn.wikitext.ui.viewer.HtmlViewer.setStylesheet(Stylesheet)</code>
+
** <code>org.eclipse.mylyn.wikitext.ui.viewer.HtmlViewerConfiguration.createAnnotationHyperlinkDetector()</code>
+
** <code>org.eclipse.mylyn.wikitext.tasks.ui.editor.MarkupTaskEditorExtension.TaskMarkupViewerConfiguration.createAnnotationHyperlinkDetector()</code>
+
 
+
 
+
= Notable API changes in 3.1 =
+
 
+
[https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=%5Bapi%5D&product=Mylyn&target_milestone=3.1&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=|All API enhancements in 3.1]
+
 
+
'''Commons'''
+
* {{bug|240446}} To ensure proper closing of idle connection the use of the shared connection manager provided by <code>WebUtil.getConnectionManager()</code> is encouraged when creating instances of <code>HttpClient</code>.
+
 
+
'''Context Framework'''
+
* {{bug|250072}} <code>IUserAttentionListener.userAttentionGained()</code> is now only fired once when user activity has been detected.
+
 
+
'''Tasks Framework'''
+
* {{bug|167941}} Implementations of <code>AbstractRepositoryConnectorUi.findHyperlinks()</code> should now return all detected hyperlinks to support proper highlighting in the Task Editor. This also applies to custom hyperlink detectors that are contributed to the Task Editor. It is recommended to extend <code>AbstractTaskHyperlinkDetector</code> for that purpose.
+
* {{bug|244653}} Additional sections can now be contributed to <code>AbstractRepositorySettingsPage</code> through an extension point.
+
* <code>AbstractRepositoryConnectorUi.getAddExistingTaskWizard()</code> now returns null.
+
* <code>AbstractTaskEditorPage.getEditor()</code> now returns <code>TaskEditor</code> and should be used instead of <code>AbstractTaskEditorPage.getTaskEditor()</code>
+
* <code>AttributeEditorFactory</code> needs to be constructed with an instance of <code>IServiceLocator<code> to enable the WikiText task editor extensions.
+
* If an association between a resource and repository is cleared <code>AbstractTaskRepositoryLinkProvider.setTaskRepository()</code> is invoked with the repository set to <code>null</code>.
+
 
+
== Breaking changes ==
+
 
+
* The label constants in <code>AbstractRepositorySettingsPage</code> have changed to support internationalization.
+
  
 +
See the <b>[[Mylyn/Porting Guide/3.x]]</b>
  
 
= Porting from 2.0 to 3.0 =
 
= Porting from 2.0 to 3.0 =

Revision as of 13:23, 17 December 2011


Contents

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.

Pending API changes in 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