Jump to: navigation, search

Mylyn/Porting Guide


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

There is currently no need to port Mylyn from the 2.0 APIs since current Mylyn releases are backwards compatible. Throughout the 2.x release cycle we will be using this wiki to gather changes and suggestions for improving the APIs for 3.0.


Pending Changes for Mylyn 3.0

Also see all tags of "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
  • AbstractTaskListPresentation: make API, remove coupling to TaskListView
  • TaskGroup and TaskCategory: consider for API, refactor or combine
  • consider merging TaskList.removeFromCategory() and TaskList.removeFromQuery()
  • Move TasksUiPlugin.getIncomingNotification(..) and related private classes
  • AbstractTask.setCompleted() needs changing, it has the problematic side effect of setting the completion date to the current time. bug 203875
  • Remove AbstractInterestManipulationAction.isRemove(): deprecated
  • Make IMonitoredWindow API and put alongside IContextAwareEditor
  • Make API: InteractionContextScaling
  • Rename AbstractTask.RepositoryTaskSyncState to AbstractTask.SyncState ("sync" is used commonly enough that we should be able to standardize on it in the API, replacing "synchronization/synchronize" where applicable).
  • Add InteractionContextScaling parameter to IInteractionContextReader.readContext(..)
  • Make a subset of InteractionContextManager API.
  • Make TaskRepository.getUserName(), getHttpUser and getProxyUsername consistent
  • Move highlighters stuff out of ContextUiPlugin
  • Move to using the new public URLTransfer bug 100095
  • Merge IInteractionContextListener and IInteractionContextListener2
  • Move NewTaskFromErrorAction to be available to more EPP distros
  • Delete UiUtil
  • Move JavaStackTraceHyperlinkDetector out of java.ui See bug 217656

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 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 deprecated, override isCustomNotificationHandling() 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
  • 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
    • isAnimationsEnabled() has been moved to the internal class TasksUiInternal
    • openEditor(TaskCategory) has been moved to the internal class TasksUiInternal
  • TrustAllTrustManager has been moved to an internal package
  • WebCorePlugin has been moved to an internal package
  • DatePicker and DateSelectionDialog are now in org.eclipse.mylyn.commons.ui, constructors have changed.

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