Jump to: navigation, search

Difference between revisions of "Mylyn/Porting Guide"

(Removed Tasks API)
(Replacing page with 'Category:Mylyn = Porting from 1.0 to 2.0 = See the <b>Mylyn Porting Guide 2.0</b> = Porting from 2.0 to 3.0 = See the <b>Mylyn/Porting Guide/3.0</b>')
Line 1: Line 1:
 
[[Category:Mylyn]]  
 
[[Category:Mylyn]]  
 
'''NOTE:''' Mylyn 3.0 changes are currently in progress, and we recommend building against the [http://wiki.eclipse.org/index.php/Mylyn_Contributor_Reference#Checkout Mylyn 2.x stream].  See {{bug|227660}} for the plan and for details.  If interested in API progress, we recommend adding a watch for this page and a CC for that bug.
 
  
 
= Porting from 1.0 to 2.0 =
 
= Porting from 1.0 to 2.0 =
Line 9: Line 7:
 
= Porting from 2.0 to 3.0 =
 
= Porting from 2.0 to 3.0 =
  
'''[https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=%5Bapi%5D&classification=Tools&product=Mylyn&target_milestone=3.0&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&priority=P1&priority=P2&priority=P3&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= Remaining API bugs for 3.0]'''
+
See the <b>[[Mylyn/Porting Guide/3.0]]</b>
 
+
== Migrating Data ==
+
* Migration of LastReadTimeStamp
+
* Migration of date formats when using attribute mappers
+
* Migration of TaskData
+
 
+
== Plug-in Refactorings ==
+
 
+
* <code>org.eclipse.mylyn.web.core</code> is now <code>org.eclipse.mylyn.commons.net</code>
+
* Core classes from <code>org.eclipse.mylyn.monitor.core</code> was split in order to make API not coupled to the Monitor component be reusable independently, now in the new <code>org.eclipse.mylyn.commons.core</code> plug-in.
+
* <code>org.eclipse.mylyn.commons.ui</code> is a new API for common UI components that are not coupled to the rest of Mylyn.
+
 
+
== Changed Extension Points ==
+
 
+
* <code>org.eclipse.mylyn.tasks.ui.editors</code>
+
** <code>hyperLinkDetector</code> has been removed, use <code>org.eclipse.ui.workbench.texteditor.hyperlinkDetectors</code> instead and set <code>targetId</code> to <code>org.eclipse.mylyn.tasks.ui.TaskEditor</code>
+
** <code>editorFactory</code> has been removed, use <code>pageFactory</code> instead
+
 
+
* <code>repositories</code>
+
** <code>taskListFactory</code> has been removed, use <code>taskListMirgrator</code> instead
+
** <code>connectorCore</code>
+
*** <code>userManaged</code> has been removed, override <code>isUserManaged()</code> in <code>AbstractRepositoryConnector</code> instead
+
** <code>connectorUi</code>
+
*** <code>customNotifications</code> has been removed, override <code>isCustomNotification()</code> in <code>AbstractRepositoryConnectorUi</code> instead
+
 
+
== Changed Team API ==
+
 
+
* <code>org.eclipse.mylyn.tasks.core.ILinkedTaskInfo</code> is now <code>org.eclipse.mylyn.team.ui.AbstractTaskReference</code>
+
** <code>getComment()</code> has been renamed to <code>getText()</code>
+
 
+
== New Tasks API ==
+
 
+
* <code>AbstractRenderingEngine</code> has been added for converting Wiki syntax to HTML
+
 
+
* <code>AbstractRepositoryQueryPage</code>
+
** <code>setControlsEnabled(...)</code>: added - override to perform finer grain enablements if necessary
+
 
+
* <code>AbstractRepositoryTaskEditor</code> has been extended to provide HTML preview capabilities for repositories that support Wiki syntax in ticket descriptions and comments
+
 
+
== Removed Tasks API ==
+
 
+
* <code>AbstractAttachmentHandler</code> has been removed, use <code>AbstractTaskAttachmentHandler</code> instead
+
** <code>MESSAGE_ATTACHMENTS_NOT_SUPPORTED</code> has been removed
+
** <code>MYLAR_CONTEXT_DESCRIPTION</code> has been removed
+
** <code>MYLAR_CONTEXT_DESCRIPTION_LEGACY</code> has been removed
+
** <code>MYLAR_CONTEXT_FILENAME</code> has been removed
+
** <code>attachContextAttachments()</code> has been moved to the internal class <code>AttachmentUtil</code>
+
** <code>getContextAttachments()</code> has been moved to the internal class <code>AttachmentUtil</code>
+
** <code>hasRepositoryContext()</code> has been moved to the internal class <code>AttachmentUtil</code>
+
** <code>retrieveContext()</code> has been moved to the internal class <code>AttachmentUtil</code>
+
 
+
* <code>AbstractAttributeFactory</code> has been removed, use <code>TaskAttributeMapper</code> instead
+
 
+
* <code>AbstractDuplicateDetector</code> has been moved to tasks.core
+
 
+
* <code>AbstractEditQueryWizard</code> has been renamed to <code>AbstractRepositoryQueryWizard</code>
+
 
+
* <code>AbstractNewRepositoryTaskEditor</code> has been removed, use <code>AbstractTaskEditorPage</code> instead
+
 
+
* <code>AbstractRepositoryConnector</code>
+
** All methods that used removed types have been moved to the internal class <code>AbstractLegacyRepositoryConnector</code>. Connectors that have not been ported to the new task data architecture may extend this class to continue using old APIs. Support for the old architecture may be '''removed at any time'''.
+
 
+
* <code>AbstractRepositoryConnectorUi</code>
+
** <code>forceSubtaskHierarchy()</code> has been removed, override <code>hasStrictSubtaskHierarchy()</code> instead
+
** <code>getLegendItems()</code> has been renamed to <code>getLegendElements()</code>
+
** <code>getNewTaskWizard(TaskRepository)</code> has been removed, use <code>getNewTaskWizard(TaskRepository, ITaskMapping)</code> instead
+
** <code>getTaskKindLabel(RepositoryTaskData)</code> has been removed
+
** <code>getTaskListElementIcon()</code> has been removed, override <code>getImageDescriptor()</code> instead
+
** <code>isCustomNotificationHandling()</code> has been removed, override <code>hasCustomNotificationHandling()</code> instead
+
** <code>openEditQueryDialog(AbstractRepositoryQuery)</code> has been moved to the internal class <code>TasksUiInternal</code>
+
** <code>openRepositoryTask()</code> has been moved to the internal class <code>TasksUiInternal</code>
+
** <code>setCustomNotificationHandling()</code> has been removed, override <code>hasCustomNotificationHandling()</code> instead
+
** <code>supportsDueDates(AbstractTask)</code> has been removed, override <code>AbstractRepositoryConnector.hasRepositoryDueDate()</code> instead
+
 
+
* <code>AbstractRepositoryQuery</code> has been removed, use <code>IRepositoryQuery</code> instead
+
** <code>getRepositoryKind()</code> has been renamed to <code>getConnectorKind()</code>
+
 
+
* <code>AbstractRepositoryQueryPage</code> has been moved to <code>org.eclipse.mylyn.tasks.ui.wizards</code>
+
 
+
* <code>AbstractRepositoryTaskEditor</code> has been removed, use <code>AbstractTaskEditorPage</code> instead
+
 
+
* <code>AbstractRepositoryQueryWizard</code> has been removed, use <code>RepositoryQueryWizard</code> instead
+
 
+
* <code>AbstractTask</code> has been removed, use <code>ITask</code> instead
+
** <code>hasValidUrl()</code> has been moved to <code>TasksUiInternal.isValidUrl()</code>
+
** <code>setCompleted()</code> has been removed, a non-null completion date indicates a task is complete
+
 
+
* <code>AttributeContainer</code> has been removed, use <code>TaskAttribute</code> instead
+
 
+
* <code>AuthenticatedProxy</code> has been moved to an internal package
+
 
+
* <code>DatePicker</code> has been moved to <code>org.eclipse.mylyn.commons.ui</code>
+
 
+
* <code>DateSelectionDialog</code> has been moved to <code>org.eclipse.mylyn.commons.ui</code>
+
 
+
* <code>FileAttachment</code> has been removed, use <code>AbstractTaskAttachmentSource</code> instead
+
 
+
* <code>GzipGetMethod</code> has been moved to an internal package
+
 
+
* <code>GzipPostMethod</code> has been moved to an internal package
+
 
+
* <code>IStatusHandler</code> has been removed, use <code>AbstractErrorReporter</code> instead
+
 
+
* <code>ITaskCollector</code> has been removed, use <code>TaskDataCollector</code> instead
+
 
+
* <code>ITaskFactory</code> has been removed
+
 
+
* <code>ITaskRepositoryListener</code> has been renamed to <code>IRepositoryListener</code>
+
 
+
* <code>ITaskListChangeListener</code> has been moved to an internal package
+
 
+
* <code>NewTaskEditorInput</code> has been removed, use <code>TaskEditorInput</code> instead
+
 
+
* <code>QueryHitCollector</code> has been removed, use <code>TaskDataCollector</code> instead
+
 
+
* <code>RepositoryAttachment</code> has been removed, use <code>TaskAttachmentMapper</code> instead
+
 
+
* <code>RepositoryOperation</code> has been removed, use <code>TaskOperationMapper</code> instead
+
 
+
* <code>RepositorySearchResult</code> has been moved to an internal package
+
 
+
* <code>RepositoryTaskData</code> has been removed, use <code>TaskData</code> instead
+
 
+
* <code>RepositoryTaskEditorInput</code> has been removed, use <code>TaskEditorInput</code> instead
+
 
+
* <code>SearchHitCollector</code> has been moved to an internal package
+
 
+
* <code>SslProtocolSocketFactory</code> has been moved to an internal package
+
 
+
* <code>StatusHandler</code>
+
** <code>addDefaultStatusHandler(IStatusHandler)</code> has been removed
+
** <code>addStatusHandler(IStatusHandler)</code> has been removed
+
** <code>fail(Throwable,String,boolean)</code> has been removed
+
** <code>fail(Throwable,String,boolean,int)</code> has been removed
+
** <code>getDefaultStatusHandler()</code> has been removed
+
** <code>getStatusHandler()</code> has been removed
+
** <code>log(String,Object)</code> has been removed
+
** <code>log(Throwable,String)</code> has been removed
+
** <code>setDefaultStatusHandler(IStatusHandler)</code> has been removed
+
** <code>removeStatusHandler(IStatusHandler)</code> has been removed
+
 
+
* <code>TaskActivityManager</code>
+
** <code>getInstance()</code> has been removed, use <code>TasksUiPlugin.getTaskActivityManager()</code> instead
+
** <code>init()</code> has been replaced by a public constructor
+
 
+
* <code>TaskFormPage</code>
+
** <code>actionContributor</code> has been removed
+
 
+
* <code>TaskFactory</code> has been removed
+
 
+
* <code>TaskListManager</code> has been moved to an internal package and replaced by <code>ITaskListManager</code>
+
** task activity related methods have been removed (see <code>TaskActivityManager</code>)
+
 
+
* <code>TaskRepositoryManager</code> has been moved to an internal package and replaced by <code>ITaskRepositoryManager</code>
+
 
+
* <code>TaskEditor</code>
+
** <code>configureContextMenuManager(MenuManager,TextViewer)</code> has been removed
+
** <code>getAdapterDelegate()</code> has been removed
+
** <code>getContributor()</code> has been removed
+
** <code>refreshEditorContents()</code> has been renamed to <code>refreshPages()</code>
+
 
+
* <code>TaskList</code> has been moved to an internal package and replaced by <code>ITaskList</code>
+
 
+
* <code>TaskSelection</code> has been removed, use <code>ITaskMapping</code> instead
+
 
+
* <code>TasksUiProxyChangeListener</code> has been removed
+
 
+
* <code>TasksUiUtil</code>
+
** <code>closeEditorInActivePage(ITask,boolean)</code> has been moved to the internal class <code>TasksUiInternal</code>
+
** <code>getActiveRepositoryTaskEditor()</code> has been moved to the internal class <code>TasksUiInternal</code>
+
** <code>isAnimationsEnabled()</code> has been moved to the internal class <code>TasksUiInternal</code>
+
** <code>openEditor(TaskCategory)</code> has been moved to the internal class <code>TasksUiInternal</code>
+
** <code>openEditor(AbstractTask, boolean)</code> has been replaced by <code>openTask(ITask)</code>
+
** <code>openEditor(AbstractTask, boolean, boolean)</code> has been replaced by <code>openTask(ITask)</code>
+
** <code>openEditor(AbstractTask, String)</code> has been replaced by <code>openTask(ITask)</code>
+
** <code>openUrl(String, boolean)</code> has been replaced by <code>openTask(String)</code> and <code>openUrl(String)</code>
+
** <code>refreshAndOpenTaskListElement()</code> has been moved to the internal class <code>TasksUiInternal</code>
+
** <code>showPreferencesPage(String, IPreferencePAge)</code> has been removed
+
 
+
* <code>TrustAllTrustManager</code> has been moved to an internal package
+
 
+
* <code>WebClientLog</code> has been removed
+
 
+
* <code>WebClientUtil</code> has been removed, use <code>WebUtil</code> instead
+
 
+
* <code>WebCorePlugin</code> has been moved to an internal package
+
 
+
* <code>WebHyperlink</code> has been moved to an internal package
+
 
+
== New Context API ==
+
 
+
* <code>AbstractFocusViewAction.updateEnablementWithContextActivation()</code>: override to return false for focus actions that are not related to context activations (e.g. the Task List).
+
 
+
* <code>AbstractFocusViewAction.setLinkingActionEnabled(boolean)</code>: should be overridden if view provides linking
+
 
+
== Removed Context API ==
+
 
+
* <code>ActivityTimerThread</code> has been removed
+
* <code>BrowseFilteredAction</code> has been moved to an internal package
+
* <code>ContextCorePlugin</code> has been moved to an internal package and replaced by <code>ContextCore</code>
+
* <code>ContextUiPlugin</code> has been moved to an internal package and replaced by <code>ContextUi</code>
+
* <code>IActivityTimerListener</code> has been removed
+
* <code>IInteractionContextListener</code> has been renamed to <code>AbstractContextListener</code>
+
* <code>InteractionContextReader</code> has been moved to an internal package
+
* <code>InteractionContextWriter</code> has been moved to an internal package
+
* <code>MonitorUiPlugin</code> has been moved to an internal package and replaced by <code>MonitorUi</code>
+
* <code>ResourcesUiPlugin</code> has been moved to an internal package and replaced by <code>ResourcesUi</code>
+
* The active/auto folding preference has been removed, you can reuse the one from JavaUiBridgePlugin or use your own preference
+
 
+
== New Monitor API ==
+
 
+
* <code>MonitorUiPlugin.getMonitoredWindows()</code>: use insteand of <code>PlatformUI.getWorkbench().getWorkbenchWindows()</code>
+
* <code>MonitorUiPlugin.getLaunchingWorkbenchWindow()</code>: use to get the first active window when the monitor started.
+
 
+
== Removed Monitor API ==
+
 
+
* <code>IMylarMonitorLifecycleListener</code> has been renamed to <code>IMonitorLifecycleListener</code>
+
* <code>ReportGenerator</code> has been moved to an internal package
+
 
+
== Pending Changes ==
+
''This list is stale''.  Also see all source code tags titled "API-3.0"
+
* Refactor <code>TaskActivationHistory</code> into a <code>TaskActivityManager</code> that encapsulates both activity monitoring and activation history
+
* Merge ITaskActivityListener and ITaskActivityListner2
+
* Refactor ITaskActivityListener into ITaskActivationListener
+
* Move timing related methods to ITaskTimingListener
+
* Make <code>IMonitoredWindow</code> API and put alongside <code>IContextAwareEditor</code>
+
* Make API: <code>InteractionContextScaling</code>
+
* Add <code>InteractionContextScaling</code> parameter to <code>IInteractionContextReader.readContext(..)</code>
+
* Make a subset of <code>InteractionContextManager</code> API.
+

Revision as of 02:53, 19 July 2008


Porting from 1.0 to 2.0

See the Mylyn Porting Guide 2.0

Porting from 2.0 to 3.0

See the Mylyn/Porting Guide/3.0