BringingMylynToNetbeans

Contents

Bringing Mylyn to NetBeans

J1 Abstract and Presentation Summary

Presentation

TODO

Demo

Prototype

  • Based on the Mylyn Trac connector.
  • Possible functionality:
    • define a repository - name, url, user credentials
    • a simple query dialog
      • RepositoryConfiguraion values not available so just a few fields based on whats provided by ITask or TaskAttribute.XXX
      • performQuery, list issues in some kind of a simple UI
    • a simple issue dialog
      • RepositoryConfiguration values not available so just a few fields based on whats provided by ITask or TaskAttribute.XXX
      • maybe only in r/o mode ???
      • attaching/downloading files, applying a patch, adding comments, ... should work like the already existing plugins
    • commit hook
      • specify issue on versioning commit
      • close issue eventually
      • create issue comment with relevant commit info and add issue reference to the commit message
    • create patch in the ide and use the patch dialog to specify an issue to which it should be attached

Demo

the question is what the main focus of the demo should be:

  • the osgi based interoperability
  • a working generic swing based connector ui
  • to illustrate the challenges we run into
  • anything else or maybe all of them?

script

more or less based on other demos we made with the NetBeans issue tracking support.

  • want to work with Trac in NetBeans so lets get the connector bundle. Either:
    • point the NetBeans Plugins Manager to a downloaded jar (from the Mylyn download page) or to an Eclipse installation - would underline the fact that the connector is supposed to work in both environments
    • or use the NetBeans Plugins Manager to download the conector from a NetBeans Update Center, if possible then hosted by Mylyn/TaskTop - more user friendly, this is how should work one day
    •  ? some other source
  • NetBeans installs the bundle and the Trac connector becomes available in the Tasks Dashboard (hopefully no restart necessary)
  • create a repository
  • create and run a query
  • there is a P1 issue so lets open it
  • there is a NPE stacktrace in the description so by clicking on it the relevant java file is opened ...
  • fix the bug, add a comment referencing the fixed issue
  • generate patch, specify issue and attach patch ...
  • revert changes in edit file, apply patch from the issue ...
  • invoke commit dialog, type some message, specify issue, commit ...
  • open history view, find the last commit, click on issue reference in commit msg.The same works also from comment in java file and from annotation bar in editor ...
  • anything else ?

Open Issues

A list of more or less acute issues which have to be resolved to get a working NetBeans prototype based on the o.e.m.trac.core connector bundle.


Connector extension point

AbstractRepositoryConnector extensions are available by the Eclipse extension point mechanism, where the extension point is defined in the tasks.core.ui bundle. unfortunately, the runtime environment provided for Mylyn connectors by NetBeans doesn't support any bundles depending on anything related to eclipse.ui. Is there a chance that the connectorCore extension point would be defined in the tasks.core bundle? That way it should be possible for NetBeans to know about the extension point and to find an eventually provided AbstractRepositoryConnector extensions in a connectors xxx.core bundle.

see also issue #386117 at bugs.eclipse.org

Query

  • the current trac connector ui defines a query as an url and passes it over to the core implementation. Some kind of a mechanism to specify a query is necessary. e.g.
query.setAttribute(TaskAttribute.SUMARY, "test")

so in case no url is set, the core implementation would then create the query url from the given attributes. A simple implementation covering the needs of the prototype could be provided by the NetBeans team.

  • no idea how to get the repository metadata to fill lists like e.g. components, milestones, etc. If i remember right AbstractRepositoryQueryPage was pointed out to be a possible entry point to find out, but to be honest, i didn't come far :(
  • poor mans solution - provide only a few fields like summary, description, milestone - aka simple fulltext search

Issue

  • no idea how to get the repository metadata to fill lists like e.g. components, milestones, etc.
    • poor mans solution - provide only some interesting fields. Attaching files and adding comments seems to be possible
  • at the moment not obvious how to resolve an issue, etc.
  • the trac connector shows an issue in the embeded web browser. The question is how to find out that should be the case also in NetBeans
  • task mapping for TrackTaskData doesn't return an url

Repository

  • it is impossible to execute a remote operation until the right version (acces method - Web, XML-RPC) was set on a TaskRepository
    • a method to validate repository settings would be useful. On AbstractRepositoryConnector perhaps?

Date formats

in case of trac its new Date(seconds * 1000l), in case of Bugzilla it is a string representation of a date. There is no contract how exactly the date values should look like

  • see TaskAttributeMapper.getDateValue()
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo