Jump to: navigation, search

Difference between revisions of "Mylyn/Porting Guide"

(Pending Changes)
(Porting from 2.0 to 3.0)
Line 15: Line 15:
 
* Migration of date formats when using attribute mappers
 
* Migration of date formats when using attribute mappers
 
* Migration of TaskData
 
* Migration of TaskData
 
== 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.
 
  
 
== Plug-in Refactorings ==
 
== Plug-in Refactorings ==
Line 33: Line 22:
 
* <code>org.eclipse.mylyn.commons.ui</code> is a new API for common UI components that are not coupled to the rest of Mylyn.
 
* <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 Team API ==
+
== Changed Extension Points ==
 
+
* <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
+
 
+
== Changes to Extension Points ==
+
  
 
* <code>org.eclipse.mylyn.tasks.ui.editors</code>
 
* <code>org.eclipse.mylyn.tasks.ui.editors</code>
Line 58: Line 34:
 
** <code>connectorUi</code>
 
** <code>connectorUi</code>
 
*** <code>customNotifications</code> has been removed, override <code>isCustomNotification()</code> in <code>AbstractRepositoryConnectorUi</code> instead
 
*** <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 ==
 
== Removed Tasks API ==
Line 86: Line 76:
 
** <code>getTaskKindLabel(RepositoryTaskData)</code> has been removed, use <code>getTaskKindLabel(AbstractTask)</code> instead
 
** <code>getTaskKindLabel(RepositoryTaskData)</code> has been removed, use <code>getTaskKindLabel(AbstractTask)</code> instead
 
** <code>openEditQueryDialog(AbstractRepositoryQuery)</code> has been moved to the internal class <code>TasksUiInternal</code>
 
** <code>openEditQueryDialog(AbstractRepositoryQuery)</code> has been moved to the internal class <code>TasksUiInternal</code>
** <code>setCustomNotificationHandling()</code> has been deprecated, override <code>isCustomNotificationHandling()</code> instead
+
** <code>setCustomNotificationHandling()</code> has been removed, override <code>isCustomNotificationHandling()</code> instead
 +
** <code>supportsDueDates(AbstractTask)</code> has been removed, override <code>AbstractRepositoryConnector.hasRepositoryDueDate()</code> instead
  
 
* <code>AbstractRepositoryQuery</code> has been deprecated, use <code>IRepositoryQuery</code> instead
 
* <code>AbstractRepositoryQuery</code> has been deprecated, use <code>IRepositoryQuery</code> instead
Line 216: Line 207:
 
* <code>IMylarMonitorLifecycleListener</code> has been renamed to <code>IMonitorLifecycleListener</code>
 
* <code>IMylarMonitorLifecycleListener</code> has been renamed to <code>IMonitorLifecycleListener</code>
 
* <code>ReportGenerator</code> has been moved to an internal package
 
* <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 04:14, 1 June 2008


NOTE: Mylyn 3.0 changes are currently in progress, and we recommend building against the 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

See the Mylyn Porting Guide 2.0

Porting from 2.0 to 3.0

| Remaining API bugs for 3.0

Migrating Data

  • Migration of LastReadTimeStamp
  • Migration of date formats when using attribute mappers
  • Migration of TaskData

Plug-in Refactorings

  • org.eclipse.mylyn.web.core is now org.eclipse.mylyn.commons.net
  • Core classes from org.eclipse.mylyn.monitor.core was split in order to make API not coupled to the Monitor component be reusable independently, now in the new org.eclipse.mylyn.commons.core plug-in.
  • org.eclipse.mylyn.commons.ui is a new API for common UI components that are not coupled to the rest of Mylyn.

Changed Extension Points

  • org.eclipse.mylyn.tasks.ui.editors
    • hyperLinkDetector has been removed, use org.eclipse.ui.workbench.texteditor.hyperlinkDetectors instead and set targetId to org.eclipse.mylyn.tasks.ui.TaskEditor
    • editorFactory has been removed, use pageFactory instead
  • repositories
    • taskListFactory has been removed, use taskListMirgrator instead
    • connectorCore
      • userManaged has been removed, override isUserManaged() in AbstractRepositoryConnector instead
    • connectorUi
      • customNotifications has been removed, override isCustomNotification() in AbstractRepositoryConnectorUi instead

Changed Team API

  • org.eclipse.mylyn.tasks.core.ILinkedTaskInfo is now org.eclipse.mylyn.team.ui.AbstractTaskReference
    • getComment() has been renamed to getText()

New Tasks API

  • AbstractRenderingEngine has been added for converting Wiki syntax to HTML
  • AbstractRepositoryQueryPage
    • setControlsEnabled(...): added - override to perform finer grain enablements if necessary
  • AbstractRepositoryTaskEditor has been extended to provide HTML preview capabilities for repositories that support Wiki syntax in ticket descriptions and comments

Removed Tasks API

  • AbstractAttachmentHandler has been deprecated, use AbstractTaskAttachmentHandler instead
    • MESSAGE_ATTACHMENTS_NOT_SUPPORTED has been removed
    • MYLAR_CONTEXT_DESCRIPTION has been removed
    • MYLAR_CONTEXT_DESCRIPTION_LEGACY has been removed
    • MYLAR_CONTEXT_FILENAME has been removed
    • attachContextAttachments() has been moved to the internal class AttachmentUtil
    • getContextAttachments() has been moved to the internal class AttachmentUtil
    • hasRepositoryContext() has been moved to the internal class AttachmentUtil
    • retrieveContext() has been moved to the internal class AttachmentUtil
  • AbstractAttributeFactory has been deprecated, use TaskAttributeMapper instead
  • AbstractDuplicateDetector has been moved to tasks.core
  • AbstractEditQueryWizard has been renamed to AbstractRepositoryQueryWizard
  • AbstractNewRepositoryTaskEditor has been deprecated, use AbstractTaskEditorPage instead
  • AbstractRepositoryConnector
    • All methods that used deprecated types have been moved to the internal class AbstractLegacyRepositoryConnector. 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.
  • AbstractRepositoryConnectorUi
    • getNewTaskWizard(TaskRepository) has been removed, use getNewTaskWizard(TaskRepository, ITaskMapping) instead
    • getTaskKindLabel(RepositoryTaskData) has been removed, use getTaskKindLabel(AbstractTask) instead
    • openEditQueryDialog(AbstractRepositoryQuery) has been moved to the internal class TasksUiInternal
    • setCustomNotificationHandling() has been removed, override isCustomNotificationHandling() instead
    • supportsDueDates(AbstractTask) has been removed, override AbstractRepositoryConnector.hasRepositoryDueDate() instead
  • AbstractRepositoryQuery has been deprecated, use IRepositoryQuery instead
    • getRepositoryKind() has been renamed to getConnectorKind()
  • AbstractRepositoryQueryPage has been moved to org.eclipse.mylyn.tasks.ui.wizards
  • AbstractRepositoryTaskEditor has been deprecated, use AbstractTaskEditorPage instead
  • AbstractRepositoryQueryWizard has been removed, use RepositoryQueryWizard instead
  • AbstractTask has been deprecated, use ITask instead
    • hasValidUrl() has been moved to TasksUiInternal.isValidUrl()
    • setCompleted() has been removed, a non-null completion date indicates a task is complete
  • AttributeContainer has been deprecated, use TaskAttribute instead
  • DatePicker has been moved to org.eclipse.mylyn.commons.ui
  • DateSelectionDialog has been moved to org.eclipse.mylyn.commons.ui
  • FileAttachment has been deprecated, use AbstractTaskAttachmentSource instead
  • GzipGetMethod has been moved to an internal package
  • GzipPostMethod has been moved to an internal package
  • IStatusHandler has been removed, use AbstractErrorReporter instead
  • ITaskCollector has been deprecated, use TaskDataCollector instead
  • ITaskFactory has been deprecated
  • NewTaskEditorInput has been deprecated, use TaskEditorInput instead
  • QueryHitCollector has been deprecated, use TaskDataCollector instead
  • RepositoryAttachment has been deprecated, use TaskAttachmentMapper instead
  • RepositoryOperation has been deprecated, use TaskOperationMapper instead
  • RepositorySearchResult has been moved to an internal package
  • RepositoryTaskData has been deprecated, use TaskData instead
  • RepositoryTaskEditorInput has been deprecated, use TaskEditorInput instead
  • SearchHitCollector has been moved to an internal package
  • SslProtocolSocketFactory has been moved to an internal package
  • StatusHandler
    • addDefaultStatusHandler(IStatusHandler) has been removed
    • addStatusHandler(IStatusHandler) has been removed
    • fail(Throwable,String,boolean) has been removed
    • fail(Throwable,String,boolean,int) has been removed
    • getDefaultStatusHandler() has been removed
    • getStatusHandler() has been removed
    • log(String,Object) has been removed
    • log(Throwable,String) has been removed
    • setDefaultStatusHandler(IStatusHandler) has been removed
    • removeStatusHandler(IStatusHandler) has been removed
  • TaskActivityManager
    • getInstance() has been removed, use TasksUiPlugin.getTaskActivityManager() instead
    • init() has been replaced by a public constructor
  • TaskFormPage
    • actionContributor has been removed
  • TaskFactory has been deprecated
  • TaskListManager has been moved to an internal package and replaced by ITaskListManager
    • task activity related methods have been removed (see TaskActivityManager)
  • TaskRepositoryManager has been moved to an internal package and replaced by ITaskRepositoryManager
  • TaskEditor
    • configureContextMenuManager(MenuManager,TextViewer) has been removed
    • getAdapterDelegate() has been removed
    • getContributor() has been removed
  • TaskList has been moved to an internal package and replaced by ITaskList
  • TaskSelection has been deprecated, use ITaskMapping instead
  • TasksUiProxyChangeListener has been removed
  • TasksUiUtil
    • closeEditorInActivePage(ITask,boolean) has been moved to the internal class TasksUiInternal
    • getActiveRepositoryTaskEditor() has been moved to the internal class TasksUiInternal
    • isAnimationsEnabled() has been moved to the internal class TasksUiInternal
    • openEditor(TaskCategory) has been moved to the internal class TasksUiInternal
    • openEditor(AbstractTask, boolean) has been replaced by openTask(ITask)
    • openEditor(AbstractTask, boolean, boolean) has been replaced by openTask(ITask)
    • openEditor(AbstractTask, String) has been replaced by openTask(ITask)
    • openUrl(String, boolean) has been replaced by openTask(String) and openUrl(String)
    • refreshAndOpenTaskListElement() has been moved to the internal class TasksUiInternal
    • showPreferencesPage(String, IPreferencePAge) has been removed
  • TrustAllTrustManager has been moved to an internal package
  • WebCorePlugin has been moved to an internal package

New Context API

  • AbstractFocusViewAction.updateEnablementWithContextActivation(): override to return false for focus actions that are not related to context activations (e.g. the Task List).
  • AbstractFocusViewAction.setLinkingActionEnabled(boolean): should be overridden if view provides linking

Removed Context API

  • IInteractionContextListener was renamed to AbstractContextListener
  • BrowseFilteredAction has been moved to an internal package
  • ContextCorePlugin has been moved to an internal package and replaced by ContextCore
  • ContextUiPlugin has been moved to an internal package and replaced by ContextUi
  • InteractionContextReader has been moved to an internal package
  • InteractionContextWriter has been moved to an internal package
  • MonitorUiPlugin has been moved to an internal package and replaced by MonitorUi
  • ResourcesUiPlugin has been moved to an internal package and replaced by ResourcesUi

New Monitor API

  • MonitorUiPlugin.getMonitoredWindows(): use insteand of PlatformUI.getWorkbench().getWorkbenchWindows()
  • MonitorUiPlugin.getLaunchingWorkbenchWindow(): use to get the first active window when the monitor started.

Removed Monitor API

  • IMylarMonitorLifecycleListener has been renamed to IMonitorLifecycleListener
  • ReportGenerator has been moved to an internal package

Pending Changes

This list is stale. Also see all source code tags titled "API-3.0"

  • Refactor TaskActivationHistory into a TaskActivityManager that encapsulates both activity monitoring and activation history
  • Merge ITaskActivityListener and ITaskActivityListner2
  • Refactor ITaskActivityListener into ITaskActivationListener
  • Move timing related methods to ITaskTimingListener
  • Make IMonitoredWindow API and put alongside IContextAwareEditor
  • Make API: InteractionContextScaling
  • Add InteractionContextScaling parameter to IInteractionContextReader.readContext(..)
  • Make a subset of InteractionContextManager API.