{"id":283,"date":"2008-01-19T21:16:42","date_gmt":"2008-01-20T02:16:42","guid":{"rendered":"http:\/\/unitstep.net\/blog\/2008\/01\/19\/using-assemblas-trac-with-eclipse-mylyn-xml-rpc-access\/"},"modified":"2009-01-25T14:33:31","modified_gmt":"2009-01-25T19:33:31","slug":"using-assemblas-trac-with-eclipse-mylyn-xml-rpc-access","status":"publish","type":"post","link":"https:\/\/unitstep.net\/blog\/2008\/01\/19\/using-assemblas-trac-with-eclipse-mylyn-xml-rpc-access\/","title":{"rendered":"Using Assembla’s Trac with Eclipse Mylyn XML-RPC access"},"content":{"rendered":"

I recently found out about Assembla<\/a>, an awesome service for managing software development projects. It provides free SVN hosting (like other sites such as SourceForge<\/a> and Google Code<\/a>) but also provides tools like Trac<\/a>, a Wiki, Scrum reporting, public or private access and up to 500 MB of disk space. (Additional features\/space are available for a cost) For many, setting up services like Trac can be notoriously difficult<\/a>, so with free<\/em> services like this, it’s hard to find any nits to pick. <\/p>\n

I won’t go into too much detail about the features<\/a> since I wanted to talk about integrating the Eclipse plugin Mylyn with a Trac setup on Assembla. There can be some issues getting things to work so I’ve outlined what I did to get everything running nicely.<\/p>\n

\nAssembla has come out with what appears to be their own Mylyn connector for Eclipse<\/a>, which simplifies a lot of the configuration required. It’s available at their site along with a great tutorial on how to use it<\/a>.\n<\/div>\n

<\/p>\n

Background: Mylyn<\/h3>\n

Mylyn<\/a> is an excellent task-management plugin for the ultimate IDE, Eclipse. I have been trying it out for a variety of things, since I was trying to find something better than just text files for managing various tasks lists. However, Mylyn does much more than just task management<\/a> as it helps to streamline your work environment with “context”. I haven’t started using these advanced features though, but what really caught my eye was the integration Mylyn offers with various issue-tracking services such as Bugzilla and the aforementioned Trac. This is accomplished by various “connectors”, with each connector being specific to one of the issue-tracking systems. <\/p>\n

The Problem: XML<\/acronym><\/a>-RPC Integration<\/h3>\n

Integration of Mylyn with Trac allows you to view, create and edit tickets in a Trac repository from within Eclipse. To accomplish this, there are two levels of integration, the first being simple web-based access. This is the more primitive of the two and has been around for longer. Basically, items are still edited from a web browser; the only difference is the web browser is spawned within Eclipse. This isn’t really ideal and doesn’t offer a real integration.<\/p>\n

The second uses an XML<\/acronym><\/a>-RPC interface to send\/receive data and thus offers proper integration with the Eclipse environment. However, when trying to connect to my Trac setup on Assembla with this choice, I ran into a lot of intermittent 404 (not found) errors. Basically, synchronization was very flaky and by no means usable. <\/p>\n

The Fix<\/h3>\n

I did some searching and found this page<\/a> on the Assembla site where other users had experienced the same problem. Scrolling through the comments brought me to this nice fellow’s explanation<\/a> of the problem, where a screencast was provided showing how it had been fixed.<\/p>\n

Basically, these are the steps I did to get Mylyn XML<\/acronym><\/a>-RPC integration with Trac working.<\/p>\n

    \n
  1. \n

    Enable the XML<\/acronym><\/a>-RPC plugin<\/h4>\n

    Go to your Trac site, then click on Admin. On the left sidebar go to General > Plugins<\/strong>. There should be a section called TracXMLRPC<\/strong>; click to expand it. You might as well enable RPC access for all of the options provided, though I’m not sure if this is necessary. Here’s a screenshot.<\/p>\n

    \nEnable the XML-RPC plugin<\/a><\/p>\n<\/li>\n

  2. \n

    Enable XML<\/acronym><\/a>-RPC permissions<\/h4>\n

    After that, you need to enable permissions for XML<\/acronym><\/a>-RPC access. Go to General > Permissions<\/strong> on the sidebar. In the “Grant Permissions<\/strong>” area, add a permission for “XML_RPC<\/strong>” for “@editors<\/strong>“. Using “@managers” for the subject might also work\/be needed if you’ve setup access for those users. This is the basically what it should be:<\/p>\n

    \nEnable XML-RPC permissions<\/a><\/p>\n<\/li>\n

  3. \n

    Ensure there is at least one ticket in the system<\/h4>\n

    For some reason, I had weird errors when trying to synchronize\/connect to a Trac repository with no tickets. This was corroborated by the fellow who originally found the solution<\/a> to this problem. It’s a minor issue though, just click “New Ticket” and create a placeholder.\n<\/li>\n

  4. \n

    Add Trac to Mylyn<\/h4>\n

    This step’s simply enough; though some suggestions recommended using http:\/\/<domain_name_to_assembla_trac>\/<space_url_name>\/login\/xmlrpc<\/code> as the URL<\/acronym>, I simply used http:\/\/<domain_name_to_assembla_trac>\/<space_url_name><\/code><\/strong> and it worked fine. Remember to use XML<\/acronym><\/a>-RPC as your access type or you won’t get proper integration.<\/p>\n

    \nSetting up Mylyn to work with Trac<\/a>\n<\/p>\n<\/li>\n<\/ol>\n

    After that, you should be able to properly connect to your Trac repository using the XML<\/acronym><\/a>-RPC option of Mylyn. Then, you can finally enjoy proper Trac integration in Eclipse!<\/p>","protected":false},"excerpt":{"rendered":"

    I recently found out about Assembla, an awesome service for managing software development projects. It provides free SVN hosting (like other sites such as SourceForge and Google Code) but also provides tools like Trac, a Wiki, Scrum reporting, public or private access and up to 500 MB of disk space. (Additional features\/space are available for […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[203,200,64,201,137,202],"tags":[],"_links":{"self":[{"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/posts\/283"}],"collection":[{"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/comments?post=283"}],"version-history":[{"count":2,"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/posts\/283\/revisions"}],"predecessor-version":[{"id":674,"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/posts\/283\/revisions\/674"}],"wp:attachment":[{"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/media?parent=283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/categories?post=283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unitstep.net\/wp-json\/wp\/v2\/tags?post=283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}