Jump to: navigation, search

Mylyn/User Guide

Introduction

For tutorials and articles on using Mylyn refer to the Get Started page. The role of this document is to document the key Mylyn features and is not intended as a tutorial.

Mylyn is a task-focused interface for Eclipse that makes working with very large workspaces as easy as working with small ones. Mylyn extends Eclipse with mechanisms for keeping track of the tasks that you work on. A task is defined as any unit of work that you want to recall or share with others, such as a bug reported by a user or a note to yourself about improving a feature. You can store tasks locally in your workspace, or they can come from one or more task repositories. To connect to a task repository, you must have a connector that supports that repository. (A task repository is a bug/ticket/issue tracker such as Bugzilla, Trac, JIRA, and others).

Once your tasks are integrated, Mylyn monitors your work activity on those tasks to identify information relevant to the task-at-hand. Mylyn monitors Eclipse and captures your interaction in a task context. System artifacts such as files, types, methods, and fields get assigned a degree-of-interest based on how recently and frequently you interact with them. This results in uninteresting elements being filtered from view within Eclipse, allowing you to focus in on what is important. From this, Mylyn creates a task context, which is the set of all artifacts related to your task. These can include methods you have edited, APIs you have referred to, and documents you have browsed. Mylyn uses this task context to focus the Eclipse UI on interesting information, hide what's uninteresting, and automatically find what's related. Having the information you need to get your work done at your fingertips improves your productivity by reducing the time you spend searching, scrolling, and navigating. By making task context explicit, Mylyn also facilitates multitasking, planning, reusing past efforts, and sharing expertise.


Shortcuts

 Task List view

  • Ctrl+C: copy taks/query URL and description
  • Ctrl+F: find
  • Insert: new personal task
  • F5: synchronize selected
  • When dragging URLs to the Task List: in Mozilla/Firefox just drag, in Internet Explorer Ctrl+drag

 General

  • Alt+click or Alt+RightArrow: show all children of an element in a focused view, then click to select. Hold down alt to keep drilling in, click on whitespace in view to show all root elements.
  • Ctrl+Shift+Alt+RightArrow Quick Context View
  • Ctrl+F9: activate task dialog
  • Ctrl+Shift+F9: deactivate task
  • Ctrl+F12: open task dialog
  • Ctrl+Shift+F12: open repository task dialog

 Interest manipulation

  • Ctrl+Shift+Up: mark as landmark
  • Ctrl+Shift+Down: mark less interesting

 Useful Eclipse shortcuts

  • Alt+Shift+Q, K: show Task List view
  • Ctrl+F10: invoke view menu or ruler menu in editor


Installation

As of writing, Mylyn comes bundled with the main EPP distributions (jee, java, cpp). If you wish to manually install Mylyn there are to methods depending on the version of Eclipse. Method 1 outlines how to install using the Eclipse 3.4 update manager. Method 2 below describes how to install Mylyn into Eclipse 3.3 and below using the Update Manager.

Install Method 1 - Eclispe 3.4

  1. Select Help > Software Updates...
  2. Select Available Software tab
  3. Press the Add Site... button
  4. Enter the desired Mylyn update site url (enter one of the Eclipse 3.4 Mylyn distribution update site url)
  5. After pressing OK the update site will be available in the sites list
  6. Expand the Mylyn update site node and select all components desired
  7. Press the Install... button to install Mylyn

Install Method 2 - Eclipse 3.3 and older

  1. Select Help->Software Updates->Find and Install.
  2. Select Search for new features to install and select Next.
  3. Select New Remote Site.
  4. Enter "Mylyn" for the name and insert the download site given on the Mylyn downloads page. The URL should end up as something similar to http://download.eclipse.org/tools/mylyn/update/eX.Y. where X.Y is the Eclipse release number.
    1. Eclipse 3.2: http://download.eclipse.org/tools/mylyn/update/e3.2
    2. Eclipse 3.3: http://download.eclipse.org/tools/mylyn/update/e3.3
    3. Eclipse 3.4: http://download.eclipse.org/tools/mylyn/update/e3.4 (probably)
  5. Select OK.
  6. Make sure there is a check in the Mylyn box, and select Finish.
  7. Put a check in the box next to Mylyn. If you don't mind downloading some stuff you don't need, go ahead and select Next. Otherwise, expand the Mylyn line (by clicking on the disclosure triangle) and select what you want. We recommend downloading the Task List, the Focused UI, and connectors appropriate to the bug repository that you use -- Bugzilla, Trac, or Jira. (Note that to download Jira, you need both the core and the connector.) You can download Mylyn without a bug repository, but it won't be as interesting an experience. If you download the Focused UI you will want to also choose the Bridge appropraite to the content you work with. Most developers will want to include all bridges provided.
  8. Read the license agreements, accept or decline as appropriate, and either select Next (if you accept) or Cancel (if you do not accept).
  9. You will see a list of features and where to install them. If the default installation directory is fine, select Finish.

Task List

Feature-Reference-3.0-Task-List-Categorized.png

Use the Task List to view and manage your tasks. If the task list view is not visible, you can open it by navigating to Window -> Show View -> Other... -> Mylyn -> Task List. The Task List contains both "Local Tasks" and shared "repository tasks" that are stored in a task repository such as Bugzilla or Jira. See how to create new tasks. Local tasks are typically contained in categories, which you can create by right-clicking on the task list and selecting new -> category. Repository tasks are contained in special categories that represent queries.

At the top of the Task List, you will find the following buttons and features:

  • New Task - Create a new local or repository task.
  • Synchronize - Update repository tasks with changes from the server.
  • Task Presentation - Toggle between Scheduled and Categorized presentations.
  • Focus on Workweek - See only tasks scheduled for this week.
  • Find - search for a task by typing in words from the task summary
  • Working set indicator - Indicates the currently active working set. Use the black arrow on the left to change the working set.
  • Current task indicator - Indicates the currently active task. Use the black arrow on the left to re-activate a recently active task.

Task List Presentation

The task list supports several ways to present tasks. You can toggle between the following modes by using the "Task Presentation" button in the toolbar.

  • Categorized - View tasks grouped by their category
  • Scheduled - View tasks grouped by the "scheduled date"

Feature-Reference-3.0-Task-List-Presentation-Select.png

In either presentation, you can toggle the "Focus on Workweek" button. In this mode, only the following tasks will be visible:

  • Tasks scheduled for this week.
  • Overdue tasks.
  • Tasks with unread changes from your task repository.

Icon Legend and Color Coding

See the legend below to interpret the icons and color coding in the task list. You can view this legend by selecting "Show UI Legend" from the menu that appears when you click the white down arrow next to the minimize button in the top right corner of the Task List view.

Feature-Reference-3.0-UI-Legend.png

Scheduling

Two kinds of dates for scheduling are provided.

Scheduled Date

  • A soft date used for personal scheduling that can be easily deferred as priorities change. The scheduled date is the date you plan to start working on the task.
  • When a task reaches its scheduled date it will turn blue, indicating that the task should be activated and worked on today.
  • Scheduled dates are private to your local workspace

Due Date

  • A hard date when the task must be completed. This is often related to external constraints such as deadlines.
  • If you are using a shared task repository, due dates become an attribute of the shared task and will be visible to other team members.
  • A task with a due date has a small clock overlay that is blue before the due date and red after.

Synchronization

Repository tasks and queries are synchronized to reflect the latest changes on the server. Tasks are synchronized the following ways:

  • Automatic Synchronization. By default, tasks will be synchronized with the repository every 20 minutes. Automatic synchronization can be disabled via the Synchronize Automatically option in the view menu (e.g. when working with intermittently available connectivity). The synchronization interval can be changed via Preferences -> Mylyn -> Task List.
  • On Task Open. Tasks are synchronized automatically in the background when a task editor is opened.
  • Manually. Individual tasks and queries can be synchronized manually by right-clicking on them in the Task List and selecting "Synchronize", or via the toolbar button. Clicking the toolbar button will synchronize all queries in your task list.


Disconnected Mode
A task repository can be put into Disconnected mode via the right-click menu in the Task Repositories view. This can be useful if the task repository is not currently in use (e.g. you are no longer engaged with the project, or the repository is no longer available). The offline support will ensure that you can still access tasks that you have worked with via their offline copies, and the Disconnected mode will ensure that synchronization warnings do not appear. Note that it is not necessary to turn off synchronization or work in Disconnected Mode when working offline.

Incoming Changes

A blue arrow to the left of a task indicates that the task has changed in the shared repository. Double-click the task to view it in the task editor. Changes to the task will be highlighted in blue.

To quickly review the differences since the task was last read, hover over the task in the Task List to view a summary in a tooltip. You can also press F4 to display a tooltip. You may also wish to view the task list in "Focus on Workweek" mode, which will filter out tasks without incoming changes that are not scheduled or due this week. You can toggle "Focus on Workweek" using a button in the Task List's toolbar.

Keyboard Shortcuts

You can use the following hot keys to quickly access frequently used functionality.


F2 rename
F4 show tooltip
F5 synchronize
Alt + Down go to next unread
Alt + Up go to previous unread
Alt + Shift + R mark as read
Alt + Shift + U mark as unread
Esc hide tooltip
Enter open task
Insert new local task
Ctrl+C Copy details
Ctrl+F Find

Reviewing Tasks

The task list has been carefully designed to support quickly reviewing tasks. Task reviewing is best done by configuring a query to show the tasks that you want to review. Once the tasks are displayed in the Task List they can be reviewed one at a time by scrolling through them using the keyboard up/down arrows. The task tooltip should provide enough detail to do a review and will display information relevant to the currently selected task.

To edit the selected task press the enter key, use Ctrl+Enter to open the task in the background. To quickly jump to the next unread task hold down the Alt-key when pressing up or down. To mark a task as read while navigating use Alt+shift+up/down. When reviewing tasks in this way, it is best to avoid mouse-based and gesture-based scrolling.


Feature-Reference-3.0-Task-List-Tooltip.png

Task Progress Indicators

Weekly progress
When in Focus on Workweek mode (right-most toolbar button), the Task List will show a progress bar that indicates progress on the tasks scheduled for the current week. Each task that is scheduled for the week but not yet completed adds to the bar. A task completed by you adds to the green progress in the bar. Deferring a task to a future week will also add to the apparent progress because it will remove the task from the current week. Mousing over the bar will indicate details about your progress, such as the number of tasks and hours completed. To avoid the need for manual estimation by default every task is estimated for 1 hour, but if you have longer or shorter running tasks that week you can adjust the estimate in the task editor's Planning page to ensure that the progress bar is accurate.

Note that when in Focus on Workweek mode the Task List will show each of the tasks scheduled for this week. However, overdue tasks and those with incoming changes will also show, making the number of tasks visible not be a reliable indicator of progress on the tasks planned for the week.

Feature-Reference-3.0-Weekly-Progress.png


Category Progress
You can hover over categories in the task list to display a tooltip that displays a summary of complete and incomplete tasks.

Feature-Reference-3.0-Category-Progress.png

Task List Settings and Operations

Click the small white arrow in the top left of the task list to access the following settings:

  • Go Up to Root - Return to the normal presentation after previously selecting "Go Into" to see only the tasks in a particular category.
  • Sort - Open a dialog to set the sort order for the task list. This option is only availabe when the task list is not in "Focus on Workweek" mode.
  • Filter priority lower than - Hide tasks with a priority less than the priority you select. This option is only availabe when the task list is not in "Focus on Workweek" mode.
  • Filter completed tasks - Hide local and repository tasks that are in a completed state.
  • Search Repository - Opens a dialog to search for repository tasks. Search results will appear in a separate search results view.
  • Restore Tasks from History - Opens a dialog for restoring lost tasks.
  • Synchronize Changed - Updates the task list with any changes on the task repository.
  • Print - Prints the task list
  • Synchronize Automatically - When checked, the task list will update from the task repository on an interval specified in Window -> Preferences -> Tasks -> Synchronization
  • Show UI Legend - Displays a legend explaining icons and color-coding.
  • Focus on Workweek - Displays only tasks that are scheduled for this week, overdue, or have unread changes.
  • Link with Editor - Automatically selects the task corresponding to the active task editor.
  • Preferences - Access additional Task List preferences.

Right-clicking in the task list provides access to the following operations

  • New... - Create new categories, queries, and tasks.
  • Open with Browser - Open the task in a web browser tab rather than the rich editor.
  • Schedule for - Set the soft date when you intend to work on the task.
  • Mark as - Mark a task as read or unread as you would an email message.
  • Copy Details - Places the task summary and html link in the clipboard so you can paste it into an email, document, etc.
  • Delete - Deletes local tasks. For repository tasks, the all downloaded data and local task information will be cleared but the task will re-appear if it still matches a query.
  • Rename - Rename a task.
  • Go into - Show only the tasks in the selected category.
  • Import and Export - Access functionality for importing and exporting task data.
  • Repository - Update repository settings
  • Synchronize - Update the selected tasks or queries from the shared task repository
  • Properties - Edit the settings for a repository query

Task Repositories and Editors

Task Repository Integration

Task repositories are easy to add, and can be named via the Task Repositories view. An icon decoration indicates the repository type. A task repository can be associated with a project, enabling it to be used for actions such as resolving bug hyperlinks. Note: you do not need to associate all of your projects with repositories after updating, since you will be prompted to do this when the associate is needed.

Task-repository-integration.gif

After the Task Repository has been setup and associated with a project, you need to create a new query against that repository to pull down the task list.

See Task-focused programming with Mylyn, Part 1, Querying a repository.


Opening a Repository Task

The recommended way to access repository tasks is with Queries. For example, you can add a query for every task assigned to you and every task that you are CC'd on. However, sometimes you may know a particular task key or ID, and want to access it without creating or modifying a query.

The quickest way to do this is to enter the task's key into the Find box in the Task List. You will immediately see whether this task is already in your Task List. If not, click the Search repository for key or or summary, and then simply hit Enter once the Search dialog comes up.

MylynSearchById.png

The Ctrl+Shift+F12 shortcut can also be used to invoke this action, and will additionally inspect the contents of the clipboard to look for a task key/ID to populate the Task Search dialog with (e.g., if you copied they key from an email message). The Ctrl+F12 Open Task dialog also provides a link to the Task Search page. Note that off a task is selected in the active editor or the Task List, the repository in the Search dialog will be now automatically set to the corresponding repository, otherwise the previous repository will be used.

There other common ways of getting a particular repository task into your Task List are:

  • Drag the URL of the task into the Task List. Note that you need to hold down Ctrl if dragging from Internet Explorer.
  • Search for the task and use the popup menu in the Search view or on the task editor after opening. Note that you can also create a Task List query from a search via the Search view.

Synchronization

Repository tasks and queries are synchronized in order to reflect the latest changes. These changes are decorated with an incoming arrow, shown in the tooltip for the task, and highlighted in the task editor when opened. All tasks changed on the server are synchronized, not just those that match queries. Note that Mylyn does not have an explicit offline mode and does not require that you turn off synchronization when working offline.

Tasks are synchronized the following ways:

  • Automatically: by default tasks will be incrementally synchronized with the repository every 20 minutes. Automatic synchronization can be disabled via the Synchronize Automatically option in the view menu (e.g. when working with intermittently available connectivity). The synchronization interval can be changed via Preferences -> Mylyn -> Task List.
  • On open: tasks are synchronized automatically in the background when a task editor is opened.
  • Manually: tasks can be synchronized manually via the Synchronize actions on Task List elements or via the toolbar.

Disconnected mode

A task repository can be put into Disconnected mode via the popup menu in the Task Repositories view. This can be useful if the task repository is not being used any more (e.g. no longer engaged with the project), or is no longer available (e.g. no longer available online). Mylyn's offline support will ensure that you can still access tasks that you have worked with via their offline copies, and the Disconnected mode will ensure that synchronization warnings do not appear.

Synchronizing All Tasks

If properties of a repository change that are not picked up by automatic synchronization, e.g. the user get assigned additional privileges in the repository, it can be desirable to do a manual synchronization. Since Mylyn 2.2 the popup menu in the Task Repositories view has an entry Synchronize All Tasks to refresh cached information for all tasks in the task list for that repository.

Automatic Duplicate Detection

The Search for Duplicates button on the New Repository Task editor encourages and facilitates finding similar bug reports before creating a new one. Potential duplicates are displayed in the Search view which can be used to open a bug and comment or vote if a duplicate is found. The current duplicate detection mechanism uses stack traces, either automatically inserted by the Report as Bug mechanism, or manually pasted into the Description area. All descriptions and comments of bugs on the corresponding repository are included in the search.

Automatic-duplicate-detection.gif

Submitting Contexts

When submitting comments, contexts can be attached by selecting the corresponding check-box in the Actions section.

Submitting-contexts.gif

Repository task attachments

Repository task attachments (supported by the Bugzilla and Trac connectors) can be attached via drag-and-drop from both within the Eclipse workspace and from outside, and from text selections, which will invoke the attachment wizard. Attachments can be opened with a browser or corresponding editor.

Repository-task-attachments.gif

Task-Focused UI

Alt+Click navigation

When a view is in Focused mode, you can Alt+Click a node in order to temporarily show all of it's children.

  • Once an element that was not interesting is selected with the mouse, the uninteresting elements will disappear.
  • Alt+Right Arrow can be used instead of Alt+Click, but still requires a mouse selection of an element in order for the uninteresting elements to disappear.
  • Alt+Click can be held down when drilling down from a top-level element, e.g. navigating from a project element with everything filtered right down to a method declaration.
  • Multiple Alt+Clicks are supported, but as soon as a normal click is made uninteresting elements will disappear.
  • Ctrl+clicks (i.e. disjoint selections, use Command key on Mac) are also supported and will cause each element clicked to become interesting. The first non Ctrl+click will cause uninteresting elements to disappear. Note that Ctrl+clicked element will become interesting (turn from gray to black) but only the most recently-clicked one will be selected while Alt is held down.

Automatically toggle focus on navigator views

For navigator views (Package Explorer, Project Explorer and Navigator) the Apply Mylyn button can be set to automatically toggle on with task activation and off with task deactivation. Note that the context-related preferences (including this one) are in Preferences -> Mylyn -> Context.

Auto-appy-mylar.gif

Working Set integration

When Focus is applied to a navigator view the working sets filter for that navigator view will be disabled, ensuring that you see elements when working on elements that span working sets. In order to force only elements within one working set to show do the following:

  • Set the view to show working sets as top-level elements.
  • Use the Go Into action on the popup menu of the working set node in the view to scope the view down to just the working set.

Focus the Java Browsing Perspective views

The leftmost toolbar button visible in the image below will toggle focus on the Packages, Types and Members views of the Java Browsing Perspective.

Mylar-java-browsing.gif

Open Task dialog

An Open Type style dialog is available for opening tasks (Ctrl+F12) and for activating tasks (Ctrl+F9). The list is initially populated by recently active tasks. The active task can also be deactivated via Ctrl+Shift+F9. This can be used as a keyboard-only alternative for multi-tasking without the Task List view visible. These actions appear in the Navigate menu.

Open-task-dialog.gif

Hyperlinking

In the task editor, comments that include text of the form bug#123 or task#123 or bug 123 will be hyperlinked. In order to support hyperlinks within other text editors such as code or txt files, the project that contains the file must be associated with a particular task repository. To do this, right click on the project > Properties > Task Repository and select the task repository used when working with this project. Then in the editors such as the java source editor or the default text editor, enter a reference such as bug#123. Ctrl+clicking on this text will open the bug in the rich editor.

Report Bugs from Error Log

Bugs can created directly from events in the Error Log view. This will create a new repository task editor with the summary and description populated with the error event's details. If the Connector you are using does not have a rich editor, the event details will be placed into the clipboard so that you can paste them into the web-based editor that will be opened automatically.

Report-bugs-error-log.gif

Team Support

Configuring the Synchronize view for change sets

There are two modes for Eclipse's Change Sets support: the models mode (Eclipse 3.2 and later) and the standard mode. These modes are unrelated to Mylyn and apply to both Mylyn's automated Change Sets and the ones you can created manually in Eclipse. Note that not all tools may support both modes. The instructions below are for the CVS support included with Mylyn. Refer to the Mylyn integration documentation for your source control plug-in for additional instructions for Mylyn change set integration, if available.

The models mode is toggled via Synchronize View -> Preferences -> CVS -> Allow Models to participate in synchronizations. The Eclipse UI for Change Sets is not obvious so consider the following guidelines if you are having problems with it.

  • Subclipse users: note that Subclipse 1.2.3 and later functions as if in the models mode described below, so the additional configuration step is not needed.

If you are using the standard mode, Change Sets toolbar button will only appear if the Synchronize view is in Incoming or Outgoing mode, not in the combined Incoming/Outgoing mode. This button must be pressed in order for change sets to appear. For working with CVS two modes are indistinguishable beyond this limitation. Subclipse only supports the standard mode. If you switch modes you must re-create your synchronization via the Synchronize... button available from the first toolbar button on the Synchronize view.

Mylar-changesets-subclipse.gif

If you are using the models mode, which is recommended if available for your team provider, you will notice that the Mylyn Active Change Sets work show up with a decoration in the lower-right corner, and that you can view both incoming and outgoing change sets at the same time.

  • Note: if you have enabled the models mode, but do not see the overlay icon visible in the screenshot below, it is because you are using an old non-models based synchronization. Old synchronizations are not updated automatically when you switch modes so you must create a new one.

Mylar-changesets-model-based.gif

Automatic change sets

Operations such as committing, updating, and patch creation can all be performed on Mylyn's automatically managed Change Sets. Right+click the change set node to get the corresponding Team menu. Changed resources that are not a part of any task context will appear under the root of the Synchronize view. If needed missing resources can be added to the task context Change Set via the Synchronize View by right+clicking the resource and selecting Add to and then selecting the corresponding task.

Automatic commit messages

Mylyn will automatically generate commit messages for you when you use its Change Set support. To modify the template go to Window -> Preferences -> Mylyn -> Team -> Commit Comment Templates.

Mylar-commit-tempates.gif

Working with patches

When applying patches, the preferred scenario is to have a task context attached to the task along with the patch. Since this is not always feasible, Mylyn provides an action in the popup menu of the Synchronize view that supports adding changed elements to the task context.

  1. Activate the task containing the patch.
  2. Apply the patch. If yo uare using automatic change sets, this will cause the change set created by Mylyn to contain the outoing changes. If it doesn't you can use the Add to action on the popup menu to add the elements to the corresponding change set.
  3. Invoke the Add to Task Context action on the change set node, causing all of the changed files to be added to the task context. You can also invoke this action on a selection one or more elements (e.g. files) in the view.

Synchronize-view-add.gif

Task Repository Connectors

Mylyn allows you to collaborate on tasks via a shared task repository, also known as bug tracking systems. In order to collaborate, you need to have a Connector to your particular repository.

Presently Bugzilla, JIRA, and Trac are supported. To connect to unsupported repositories, see Generic Web Repository Connectors. Also, be sure to vote for your favourite Connector to see it supported earlier, or create a new bug if your issue tracker is not listed.

Bugzilla Connector

Once Mylyn is installed there are a few steps involved to get up and running.

  • To access tasks (reports/issues) on a repository such as Bugzilla you must first set up a Task Repository
    • Navigate to Window -> Show View -> Other -> Mylyn -> Task Repositories to open the Task Repositories view. Task Repositories view can also be launched via the Task List view menu.
    • Launch the add repository wizard by pressing the add repository button located in the view's toolbar Mylar-add-repository.png.
    • The first page of this wizard asks for the type of repository you wish to connect to (if you have installed multiple connectors). Select Bugzilla for example and press the Next button.
    • On the second page you can enter the repository's address and your login credentials. After filling in these details, press the Validate button to ensure the repository exists and your login credentials are valid. Once the settings validate you can finish the wizard. The repository you added will be shown in the Task Repositories view.

Repository Configuration

  • Once the repository has been created, you may add queries to the Task List.
    • In the Task List view right click anywhere in the list pane and select New Query from the context menu.
    • Choose the repository you added in the previous steps.
    • Enter query title and search criteria and then press Finish.
    • A query with the title you gave will appear in the Task List and will synchronize with the remote repository. If the query has hits they will appear within the query folder you've created.
    • Double click to open a hit. Double click on the query to edit the query parameters.
    • Click on the lightly shaded button (left of task icon) in the Task List to activate the task. Click again to deactivate.

See also Bugzilla Connector Troubleshooting.


Bugzilla Tasks

  • If the Bugzilla task's severity is "major", "blocker", or "critical", the task icon in the Task List will be decorated with a red dot.
  • If the Bugzilla task's severity is "enhancement" the task icon in the Task List will be decorated with a green triangle.
  • Tasks will be colored green in the task list if they were resolved today and are owned by you. Unfortuantely Bugzilla does not have a notion of a completion date so we simply check the last comment timestamp and assume it to be the completion date (see bug 215342).

Tips for server administrators

Mylyn periodically checks config.cgi to retrieve the repository configuration. On Eclipse.org this resulted in heavy CPU Load for the regeneration and a big surge in band width use.

  • This configuration seldom changes so can be cached and served from a file instead of being regenerated every time. While the size of this file tends to be small when hosting less than a dozen projects, it can be large on repositories holding large numbers of projects, e.g. 900K on bugs.eclipse.org.
  • Generated bugzilla output contains a lot of unnecessary whitespace which can be trimmed before caching. For bugs.eclipse.org this reduces the file to about 660K.
  • The remaining file contains a lot of redundancy so can be gzipped for further reduction. On bugs.eclipse.org this leaves about 28K, a considerable saving.

Mylyn has been modified to accept gzip encoding on all requests, and will do content negotiation. See bug 205708.

To add caching for your Bugzilla repository:

  • Change the name of config.cgi to config-stock.cgi and get the caching code in a new config.cgi.
  • The current version of this caching config.cgi script is hosted at:
 via CVS: :pserver:anonymous@dev.eclipse.org:/cvsroot/technology/org.eclipse.phoenix/infra-scripts/bugzilla/
 or: http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.phoenix/infra-scripts/bugzilla/?root=Technology_Project
  • Modifications on this script are followed on bug 205416

Trac Connector

The Trac connector offers two access methods:

  • Trac 0.9 and later: In this mode the standard Trac web interface is used for repository access. Tickets may be created and edited through a web browser.
  • XML-RPC Plugin (Trac trunk): This requires the latest revision (1175) of the XmlRpcPlugin for Trac to be enabled for the accessed repository. The XmlRpcPlugin provides a remote interface to the Trac repository and is distributed separately from Trac (see #217). Currently, Trac and the XmlRpcPlugin need to be installed from source. See these install instructions for requirements and documentation. See here for additional instructions.

The Trac connector integrates Trac queries into the Task List. If you do not know your Trac repository version use the Automatic setting and click Validate Settings.


New Task Editor

A rich editor for creating new Trac tasks is available for repositories that use XML-RPC (see the FAQ for XML-RPC configuration instructions).

Trac-editor-new.gif


Rich Editor, Attachments and Offline support

The Trac connector supports the rich task editor. Attributes and comments can be viewed and edited offline, synchronization is done in the background, and attachments can be posted and retrieved.

Task Context attachments are supported via the context menu actions in the Task List. This support requires the Trac XML-RPC plug-in to be enabled and the integration will fall back to the web mode if it is not, (see: Trac Connector troubleshooting).

Trac-editor.gif

JIRA Connector

See this page for install instructions and additional screen shots. Note that the Mylyn JIRA connector requires at least JIRA version 3.3.3 and SOAP/RPC services have to be enabled on the server.

Rich Editor

The JIRA connector provides a rich editor, offline editing, and change notifications.

File:Jira-editor.gif

Search Integration

Searching through JIRA repositories is integrated with the Search dialog.

Jira-search.gif

Query

The JIRA query dialog has been streamlined into a single page. Date range queries are now supported.

Jira-query.gif

See also JIRA Connector Troubleshooting.

Generic Web Repository Connector

The generic web repository connector is NOT part of the default Mylyn install. You can install it from a separate extras update site. See Mylyn download page for more details.

The web connector allow to retrieve tasks from repositories that don't have rich connectors, but can show list of tasks on the web UI. Out of the box connector provides configuration templates for the following issue tracking systems:

  • Google Code Hosting (code.google.com)
  • IssueZilla (java.net, dev2dev, tigris.org)
  • GForge (objectweb.org)
  • SourceForge (sf.net), see Using Sourceforge with Mylyn
  • Mantis (www.futureware.biz/mantis)
  • ChangeLogic (changelogic.araneaframework.org)
  • OTRS (otrs.org)
  • phpBB
  • vBulletin

Lists of issues can be extracted from existing web pages using simple parsing configuration. Configuration can be also parametrized to make it easier to customize it for a specific project.

The parameters used for configuring project properties are typically substituted into the URLs used to access the repository. Substitution and matching rules can be edited under the Advanced Configuration section on both the Repository Settings page and the Edit Query page.

See FAQ for the troubleshooting tips.

For example, consider the configuration steps for GlassFish project at java.net:

1. Create new Generic web-based repository (in the Task Repository view). GlassFish is using IssueZilla and has a preconfigured template that can be selected by server url https://glassfish.dev.java.net/issues. You can also specify all fields manually in the Advanced Configuration section. For GlassFish the following settings are required:

  • Task URL: ${serverUrl}/show_bug.cgi?id=
  • New Task URL: ${serverUrl}/enter_bug.cgi?issue_type=DEFECT
  • Query URL: ${serverUrl}/buglist.cgi?component=glassfish&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&order=Issue+Number
  • Query Pattern: <a href="show_bug.cgi\?id\=(.+?)">.+?<span class="summary">(.+?)</span>
Note: Query Pattern field should be a regexp with 1st matching group on Issue ID and 2nd on Issue Description. Alternatively, you could use named matching groups: ({Id}.+?), ({Description}.+?), ({Status}.+?), ({Owner}.+?) and ({Type}.+?), then they can appear in query regexp in an arbitrary order. The second option requires build 2.0.0v20070717 or later.
Note: the above fields are using parameter substitution ${..}. Variables serverUrl, userId and password are substituted from the values of corresponding fields of the repository preference page. In addition you can specify any arbitrary parameters and their values that will be also substituted into the template fields.
Note: the SourceForge template included with connector assume that single repository is used for all projects. User should create multiple queries, and set project parameters at the query level. Because web connector don't support actions like "open repository task" there is really no need to create separate repositories per project and if you think about it that is how it work for connectors for Bugzilla and JIRA. However, it is still possible to setup separate repository per project using repository url like http://sourceforge.net/tracker/?group_id=172199 and accordingly updating derived urls is the advanced repository settings.

For the web repository that require user to login, use advanced configuration in following way. This configuration is for GForge, you might need to change it for other repositories:

  • Login Request URL - an address that form is using to submit login request: ${serverUrl}/account/login.php?return_to=&form_loginname=${userId}&form_pw=${password}&login=Login (POST)
  • Login Form URL - an address where login form is located (only needed if server need a login token in the parameters of the Login Request URL): ${serverUrl}/account/login.php
  • Login Token Pattern - pattern to extract value of the loginToken parameter from the form page (only needed if server need a login token in the parameters of the Login Request URL and Login Form URL is specified): session_ser=(.+?)

2. Create a new query for the GlassFish task repository created above (either from popup context menu in the Task List view or using a "New..." wizard from File -> New... -> Other... menu).

  • Query URL and Query Pattern in the Repository Preferences are used as default query parameters and can be overwritten in Advanced Configuration section in Query Preferences. Custom parameter values can also be overridden here as well as new parameters for substitution into the specific query.
  • In the Advanced Configuration section of the "New Query" dialog, there is a "Preview" button. You can use it to test your query pattern.

Generic-web-repository-settings.gif

XPlanner Connector

The XPlanner connector is currently in the Experimental state. It supports XPlanner version .7.

Query

XPlanner Connector supports creating queries from your XPlanner repository. You can select to create a query for your own in progress tasks (the default), or select projects or iterations or user stories from a list. You can also select ones assigned to you, or all. Currently you can choose to group the results by tasks or user stories. If you group the results by tasks, this will result in a single query with the applicable tasks underneath it. If you choose to group the results by user stories, this will result in multiple queries added to the task list, each one corresponding to a user story, with the applicable tasks underneath it:

XPlannerQuery.jpg

Task Editor

A rich editor for editing XPlanner tasks is available. It currently doesn't support all of the attributes you can change in XPlanner itself, but allows you to modify the basic ones necessary for XP development -- e.g. summary, description, estimated time. The attributes section of the editor displays an XPlanner-like view of the meaningful attributes, some of which are not editable.

XPlannerTaskEditor.gif


User Story Editor

If you open an XPlanner element by id, using the "Open Repository Task by Key/ID" dialog, and that id is a user story id, you will see the read-only user story editor. This editor is just useful for seeing the major details of a user story -- no items in it can be changed, since there is no really good mapping between a user story and a Mylyn task.

XPlannerUserStoryEditor.gif

Integration with other tools

See the Mylyn Extensions page for a listing of integration downloads.

Mylyn relies on Bridges to integrate the context model with the structure and UI features of domain-specific tools. To create a Bridge, see Creating Bridges.

The core set of Bridges supports the Eclipse SDK (i.e. has bridges for Java, JUnit, PDE, Ant and Resources). The Resources Bridge enables a basic level of interoperability with other tools that use files (e.g. .php, .cpp), and enables Mylyn filtering to work for generic views that show those files (i.e. the Project Explorer, Navigator) and any corresponding markers (i.e. the Problems and Tasks views). This is only the most basic context model integration, and does not offer the benefits of a specialized structure bridge, such as making declarations part of the context and providing Active Search facilities. Without a Bridge Mylyn cannot be applied to tool-specific views.

If you would like to see support for a particular tool, first do a search of the open bridge requests and vote for the corresponding bug if your tool is there, or create a new bug. Also consider adding your experiences to the "Integration..." section of the Mylyn FAQ.

Using Mylyn with WTP

Context modeling works at the file level, noting the limitation of bug 144882: interest filter fails on WTP Dynamic Web Project

External builders

If an external builder (e.g. Maven, pydev, or other Ant-based builders) is producing output files that are being automatically added to your context because they are not being marked "derived" as with Eclipse-based builders. You may note that such files are always show as interesting when they are generated or updated and can not be filtered away, since Mylyn expects all files that have changed as part of the task context to have interest.

In this case you can explicitly exclude these files from being added to the task context the Preferences -> Mylyn -> Resources page. For example, if the output folder of the builder is "target", you could set this the following way. Similarly, you could add a filter for "*.pyc" to exclude all files generated with that extension.

Source code generators can be considered analogous since they produce intermediate files. However, if you want to inspect the results of the source code generation after it is done you can avoid setting the exclusion. Note that if a large number of files was generated not all generated files may be unfiltered.

Mylar-resource-exclusion.gif