Mylyn/Enriching Task Context with Breakpoints
Mylyn does a great job building a context for our tasks. Yet, it is currently focused on files and resources that are used while accomplishing a task. However, nowadays the IDE has access to far more artifacts and activities that can be mapped to a task - for example: builds, reviews or commits. I propose to extend the Mylyn context model in order to allow for adding all different kinds of artifacts. Further, I propose to use this new functionality in order to add Breakpoint information to the context.
It is hardly possible to find development-related information that cannot be displayed and managed from within Eclipse. Plugins allow the platform to manage all kind of connections to remote systems - like SCM-systems, build-server or database-server. All of these additional plugins might contain task-related information that would be a nice addition to Mylyn's task context. As an example, think of team provider that contribute SCM paths to the Mylyn context and thus allow adopters of the context to check out the resources required to solve the task with one click.
However, Mylyn currently does not provide APIs to allow third-party plugins to publish additional information to the context and there are a lot of things to be considered before this step might be possible. The backwards compatibility of context information should for example be secured. Also, if a third-party plugin adds additional information to the context, developers should still be able to use the context without the requirement to install the third-party plugin.
The main goal of this Google Summer of Code project is to come up with a concept and implementation to make the Mylyn context more flexible in the described way. Then, I am going to provide a reference implementation that adds breakpoints to the Mylyn context.
Breakpoint Support for Mylyn is an often discussed and requested feature and should be a straightforward example for the new APIs. See for example the ongoing discussion on Bug #155333.
First, I am going to deliver new Mylyn APIs that enable third-party plugins to contribute task-relevant information to the context. Then, I will provide an example implementation for those APIs, which adds breakpoint information to the context.