Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Mylyn/SOC/2006/Trac Connector"

< Mylyn‎ | SOC
(fixed urls)
 
(17 intermediate revisions by 6 users not shown)
Line 1: Line 1:
The goal of this [http://code.google.com/soc/ Summer of Code] project is to provide a [https://bugs.eclipse.org/bugs/show_bug.cgi?id=140512 Trac connector plug-in for Mylar]. [http://projects.edgewall.com/trac/ Trac] is a web-based issue tracking system with an integrated wiki.
+
[[Category:Mylyn]]  
  
The Mylar API already supports multiple issue tracking systems, therefore the existing abstraction can be used to implement a Trac connector. Trac issues can be accessed remotely through an query script that outputs tab-delimited text as well as through an [http://trac-hacks.org/wiki/XmlRpcPlugin XML-RPC interface]. The XML-RPC interface has not yet been integrated into the main distribution of Trac but is available as a separate plug-in.
+
The goal of this [http://code.google.com/soc/ Google Summer of Code] project is to provide a [https://bugs.eclipse.org/bugs/show_bug.cgi?id=140512 Trac connector plug-in for Mylyn]. [http://trac.edgewall.com/ Trac] is a web-based issue tracking system with an integrated wiki.
  
The project will be accomplished in two iterations. This goal of the first iteration to make the connector work with existing Trac deployments through the [https://oss.steffenpingel.de/mylar-trac-connector/query custom query script]. The output is available in multiple formats including tab-delimited text ([http://projects.edgewall.com/trac/query?status=new&status=assigned&status=reopened&format=tab&milestone=0.9.6&order=priority sample output]). This information will be used for read-only display in Mylar. A web-browser will be used for editing of tickets.  
+
The Mylyn API already supports multiple issue tracking systems, therefore the existing abstraction is used to implement a Trac connector. Trac issues are accessed remotely through a query script that outputs tab-delimited text as well as through a [http://trac-hacks.org/wiki/XmlRpcPlugin XML-RPC interface]. The XML-RPC interface has not yet been integrated into the main distribution of Trac but is available as a separate plug-in.
  
The second iteration will focus on enhancing the support for Trac's XML-RPC interface. The XML-RPC interface allows full featured access to all ticket information and allows manipulation of tickets. The editing of tickets will be done through Eclipse forms.
+
The project has been accomplished in two iterations. The goal of the first iteration was to make the connector work with existing Trac deployments through Trac's web interface. This retrieved ticket information is used for read-only display in Mylar. Tickets can be edited through a web-browser.
 +
 
 +
The second iteration focused on enhancing the support for Trac's XML-RPC interface. The XML-RPC interface allows full featured access to all ticket information and allows manipulation of tickets. The editing of tickets is done through Eclipse forms based editor.
 +
 
 +
The Trac connector is now maintained in the Mylyn CVS and is shipped with the regular releases.
  
 
== ChangeLog ==
 
== ChangeLog ==
Line 20: Line 24:
 
* Query repository in task list view through Bugzilla like query dialog ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=149386 #149386])
 
* Query repository in task list view through Bugzilla like query dialog ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=149386 #149386])
  
=== '''M2 (in progress):''' ''Full integration based on the Trac XML-RPC plug-in'' ===
+
This milestone is available as part of the Mylar 0.6.1 release.
  
* Digest authentication ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=151077 #151077])''
+
=== '''M2 (completed):''' ''Full integration based on the Trac XML-RPC plug-in'' ===
 +
 
 +
* Digest authentication ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=151077 #151077])
 
* Handle trailing slashes in repository urls ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=150890 #150890])''
 
* Handle trailing slashes in repository urls ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=150890 #150890])''
 
* Update repository attributes from task repository context menu ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=152325 #152325])
 
* Update repository attributes from task repository context menu ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=152325 #152325])
 
* Unescape HTML entities when updating repository attributes ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=153496 #153496], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154098 #154098])
 
* Unescape HTML entities when updating repository attributes ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=153496 #153496], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154098 #154098])
* Query repositories from Eclipse search ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=153539 #153539])
+
* Query repositories from Eclipse search ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=153539 #153539], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154772 #154772])
 
* Remember repository attributes ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=150670 #150670])
 
* Remember repository attributes ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=150670 #150670])
 
* Update repository attributes when query dialog is opened ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=154347 #154347])
 
* Update repository attributes when query dialog is opened ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=154347 #154347])
 
* Attachment support and context uploading and retrieving ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=151900 #151900], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154441 #154441], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154372 #154372])
 
* Attachment support and context uploading and retrieving ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=151900 #151900], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154441 #154441], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154372 #154372])
* ''Authoring of reports within native Eclipse editor ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=151899 #151899], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=146334 #146334], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154377 #154377] )''
+
* Change query urls accordingly when repository url is changed ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=154798 #154798])
* ''Offline editing''
+
* Authoring of reports within native Eclipse editor ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=151899 #151899], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=146334 #146334], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154377 #154377], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=154962 #154962])
* ''Improve query speed''
+
* Fixed notifications for Trac task ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=154379 #154379]
 +
* Check revision of XML-RPC Plugin ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=154931 #154931])
 +
* Properly check for Trac repository during validation ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=154464 #154464])
 +
 
 +
This milestone is available as part of the Mylar 0.6.2 release.
 +
 
 +
=== '''Future planning''' ===
 +
 
 +
Please refer to the [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=Mylar&component=Trac&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&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= Eclipse Bugzilla] for bug reports and feature requests.
  
 
== Download ==
 
== Download ==
  
Releases are available at the [http://www.eclipse.org/mylar/dl.php Mylar dev update site] (Eclipse 3.2 only):
+
Please refer to the [http://www.eclipse.org/mylyn/downloads/ Mylyn download page].
+
download.eclipse.org/technology/mylar/update-site/dev
+
  
 
== Source ==
 
== Source ==
  
The source  is available in the Mylar CVS:
+
Please refer to the [[Mylyn Contributor Reference]] for information about how to obtain and build Mylyn and its connectors.
  
[http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.mylar/ http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.mylar/]
+
The source is available in the Mylyn CVS:
 +
 
 +
[http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mylyn/?root=Tools_Project http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mylyn/?root=Tools_Project]
  
 
Plug-ins:
 
Plug-ins:
  
* [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.mylar/org.eclipse.mylar.trac.tests/ org.eclipse.mylar.trac.tests]
+
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mylyn/org.eclipse.mylyn.trac.core/?root=Tools_Project org.eclipse.mylyn.trac.core]
* [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.mylar/org.eclipse.mylar.trac.trac-feature/ org.eclipse.mylar.trac.trac-feature]
+
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mylyn/org.eclipse.mylyn.trac-feature/?root=Tools_Project org.eclipse.mylyn.trac-feature]
* [http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.mylar/org.eclipse.mylar.trac.ui/ org.eclipse.mylar.trac.ui]
+
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mylyn/org.eclipse.mylyn.trac.tests/?root=Tools_Project org.eclipse.mylyn.trac.tests]
 +
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mylyn/org.eclipse.mylyn.trac.ui/?root=Tools_Project org.eclipse.mylyn.trac.ui]
 +
 
 +
Project Team Set:
 +
 
 +
* [http://www.eclipse.org/mylyn/doc/dev/projects-trac.psf http://www.eclipse.org/mylyn/doc/dev/projects-trac.psf]
  
 
== Architecture ==
 
== Architecture ==
Line 58: Line 77:
 
** (Eclipse independent) model classes that represent Trac data
 
** (Eclipse independent) model classes that represent Trac data
 
* UI: Tasklist classes
 
* UI: Tasklist classes
* Tests: Test for Core and UI
+
* Tests: Tests for Core and UI
 +
 
 +
For the XML-RPC calls [http://ws.apache.org/xmlrpc/ Apache XML-RPC] is used.
 +
 
 +
=== Tickets ===
 +
 
 +
The Trac connector has three different ways to represent tasks:
 +
 
 +
- TracTicket: this is the representations retrieved from the Trac
 +
repository. It is either created from the data received through XML-RPC or
 +
from the web interface. This is part of a generic API for accessing Trac
 +
repositories that does not depend on Mylyn (except for
 +
org.eclipse.mylyn.web.core).
 +
 
 +
- TracTask: represents the task information in the task list. This is kept
 +
in memory at all times and contains information needed by Mylyn to
 +
represent the task in the UI. TracTasks are updated from TracTickets or
 +
from RepositoryTaskData (see TracRepositoryConnector.updateFrom*()).
 +
 
 +
- RepositoryTaskData: used for offline editing and offline storage. Task
 +
data stores all information about a task in RepositoryTaskAttribute
 +
objects. These are used by the editor to create widgets for editing,
 +
determine incoming changes etc. RepositoryTaskData is created in
 +
TracTaskDataHandler from TracTickets.
  
Since Core and Model is only used by UI both are combined in a single plug-in.
+
Attribute factories are used to map Mylyn's data model to a repository connector
 +
specific model. For example Mylyn uses the
 +
RepositoryTaskAttribute.USER_REPORTER key as the id for the attribute that
 +
specifies the reporter of a task which is mapped to the Trac specific key
 +
TracTicket.Key.REPORTER by TracAttributeFactory.
  
For the XML-RPC calls [http://ws.apache.org/xmlrpc/xmlrpc2/ Apache XML-RPC] is used.
+
[[Category:SOC]]

Latest revision as of 15:43, 4 December 2007


The goal of this Google Summer of Code project is to provide a Trac connector plug-in for Mylyn. Trac is a web-based issue tracking system with an integrated wiki.

The Mylyn API already supports multiple issue tracking systems, therefore the existing abstraction is used to implement a Trac connector. Trac issues are accessed remotely through a query script that outputs tab-delimited text as well as through a XML-RPC interface. The XML-RPC interface has not yet been integrated into the main distribution of Trac but is available as a separate plug-in.

The project has been accomplished in two iterations. The goal of the first iteration was to make the connector work with existing Trac deployments through Trac's web interface. This retrieved ticket information is used for read-only display in Mylar. Tickets can be edited through a web-browser.

The second iteration focused on enhancing the support for Trac's XML-RPC interface. The XML-RPC interface allows full featured access to all ticket information and allows manipulation of tickets. The editing of tickets is done through Eclipse forms based editor.

The Trac connector is now maintained in the Mylyn CVS and is shipped with the regular releases.

ChangeLog

M1 (completed): Web linking only repository integration (#148378)

  • Create and edit Trac repositories (#147817, #148378)
    • Templates for common repository locations (#150677)
  • Data model for repository access (#147816)
    • Access through Trac's query script (#148090)
    • Access through the Trac XML-RPC plug-in (#148089)
  • Create new tasks through web-browser (#150699)
  • Add exiting tasks to task list (#149385)
  • Query repository in task list view through Bugzilla like query dialog (#149386)

This milestone is available as part of the Mylar 0.6.1 release.

M2 (completed): Full integration based on the Trac XML-RPC plug-in

  • Digest authentication (#151077)
  • Handle trailing slashes in repository urls (#150890)
  • Update repository attributes from task repository context menu (#152325)
  • Unescape HTML entities when updating repository attributes (#153496, #154098)
  • Query repositories from Eclipse search (#153539, #154772)
  • Remember repository attributes (#150670)
  • Update repository attributes when query dialog is opened (#154347)
  • Attachment support and context uploading and retrieving (#151900, #154441, #154372)
  • Change query urls accordingly when repository url is changed (#154798)
  • Authoring of reports within native Eclipse editor (#151899, #146334, #154377, #154962)
  • Fixed notifications for Trac task (#154379
  • Check revision of XML-RPC Plugin (#154931)
  • Properly check for Trac repository during validation (#154464)

This milestone is available as part of the Mylar 0.6.2 release.

Future planning

Please refer to the Eclipse Bugzilla for bug reports and feature requests.

Download

Please refer to the Mylyn download page.

Source

Please refer to the Mylyn Contributor Reference for information about how to obtain and build Mylyn and its connectors.

The source is available in the Mylyn CVS:

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.mylyn/?root=Tools_Project

Plug-ins:

Project Team Set:

Architecture

  • Core and Model: Provides Java abstraction for repository access
    • Abstraction for query script and XML-RPC access
    • (Eclipse independent) model classes that represent Trac data
  • UI: Tasklist classes
  • Tests: Tests for Core and UI

For the XML-RPC calls Apache XML-RPC is used.

Tickets

The Trac connector has three different ways to represent tasks:

- TracTicket: this is the representations retrieved from the Trac repository. It is either created from the data received through XML-RPC or from the web interface. This is part of a generic API for accessing Trac repositories that does not depend on Mylyn (except for org.eclipse.mylyn.web.core).

- TracTask: represents the task information in the task list. This is kept in memory at all times and contains information needed by Mylyn to represent the task in the UI. TracTasks are updated from TracTickets or from RepositoryTaskData (see TracRepositoryConnector.updateFrom*()).

- RepositoryTaskData: used for offline editing and offline storage. Task data stores all information about a task in RepositoryTaskAttribute objects. These are used by the editor to create widgets for editing, determine incoming changes etc. RepositoryTaskData is created in TracTaskDataHandler from TracTickets.

Attribute factories are used to map Mylyn's data model to a repository connector specific model. For example Mylyn uses the RepositoryTaskAttribute.USER_REPORTER key as the id for the attribute that specifies the reporter of a task which is mapped to the Trac specific key TracTicket.Key.REPORTER by TracAttributeFactory.

Back to the top