Mylyn-Mantis connector 3.7.0 released

This release features multi-project queries, support for deleting task attachments and support for textarea custom fields.

Multi-project queries

MantisBT allows users to define filters as belonging to ‘All Projects’ . This is very useful for working with large numbers of projects and defining just one filter, e.g. ‘My tasks’ .  You can now use these filters in Eclipse, by selecting filters available under the ‘All Projects’ node:

Deleting task attachments

Task attachments may now be deleted from the attachment’s context menu.

Support for textarea custom fields

The development branch of MantisBT supports textarea custom fields. The plugin also supports them for the development branch.

As a direct consequence, users of TaskTop Dev can add a custom textarea field named task_relations to enable the full functionality of editing task associations.

Display attachment authors

Attachment authors are displayed.

Display the category in collapsed attributes section

When the attributes section is collapsed we now display a ‘project/category’ text hint. Previously only the project was displayed.

Other fixes

  1. More judicious use of the SOAP API, resulting in fewer remote calls and email notifications when updating existing issues;
  2. Fixes in comment hyperlink detection;
  3. Fixed duplication of available queries which would sometimes occur in the query page.

For comments, bugs and support requests, our bug tracker and forums await you.

Mylyn-Mantis connector 3.6.0 released

Mark private comments

Building on support from Mylyn 3.6, private comments are now marked as such in the task editor.

Delete tasks

We now enable deletion of task from the MantisBT repository, not only from the local task list.

Quicker task creation

When creating a new task, selecting a query or a task in the task list before creation short-circuits the project selection page, as the project is inferred from the current selection. If no selection is available, the project selection page appears as usual.

This can be combined with having the task selected and creating a task for a specific repository to bypass the new task wizard completely.

Support direct linking to bug comments

The MantisBT syntax of linking to comments using the ‘~’ prefix is now supported.

Mylyn-Mantis connector 3.5.0 released

Monitoring tasks

Thanks to recent improvements in the MantisBT SOAP API the task monitor list is available and also the ability to add yourself to the monitor list. This functionality is only available for installations running MantisBT 1.2.5 or newer.

Rich text support for comments

Our rich text support is extended to the new comment editor. We are also rendering comments as HTML if the rich text editor preference is enabled.

Tree display of sub-projects

Sub-projects are now displayed in a proper tree. This is more consistent with the Eclipse visual metaphors and fixes a display problem specific to Mac OS X .

Better rich text editor support

Thanks to recent improvements in both the connector and the HtmlText feature from Mylyn we are now able to generate exactly the markup that MantisBT expects . This should greatly improve the experience when using both the web interface and the text editor.

Mylyn-Mantis connector source moved to GitHub

SourceForge.net is a great place for an OpenSource project, taking care behind the scenes of many things so we don’t have to. That being said, GitHub’s way of encouraging contributions is a great incentive for projects to move there, so we bit the bullet and moved the source. The new location is https://github.com/Mylyn-Mantis/mylyn-mantis .

The current repository at SourceForge will remain in read-only while we make sure that the GitHub move is a success. Our other facilities – forums, issues, wiki etc – will remain at SourceForge for the time being.

To wrap up, here’s what you should take away from this posting:

fork, fork, fork

Forks away!

Mylyn-Mantis connector 3.4.1 released

The 3.4.1 release of the connector is primarily a bugfix release concerning the HTML editor.

Open query in browser

Open query in browser is now available for users of MantisBT 1.2.5 or newer. To activate it for an existing query you need to refresh the repository configuration and then reopen the query dialog.

Update site fixes

The update site did not reference the latest available Mylyn version, but we did require it. This prevented users running versions of Mylyn 3.4 or older from installing the connector. Now the installation process is verified to work for old versions as well.

Rich text editor fixes

The rich text editor now blends in more naturally with the other controls:

  1. The editor is now shown for unsubmitted tasks;
  2. The editor is highlighted for incoming changes;
  3. Editors are collapsed if there are no incoming changes.

Some of these changes require a nightly build of Mylyn Docs, which should be available as a released version in the 22nd of June, according to the current Mylyn plan.

Mylyn-Mantis connector 3.4.0 released

This release features an experimental rich text HTML editor, display of real names for comments and minor performance improvements to the task editor.

Rich text editor

The task editor was based on the plain-text contents of the task, which was sub-optimal when the task description contained HTML markup. Now there is an experimental setting in the task repository page which allows you to activate the rich text editor.

Be warned that it still has its kinks, and I’m putting this out for feedback rather than for mass consumption. It is expected that the formatting will not yet completely match the one from Mantis  and that some features such as highlighting incoming changes and dirty tracking are broken or require a nightly build of Mylyn.

That being said, this is a preview of the editor:

It is built on the excellent HtmlText component which arrived fresh with Mylyn 3.5.0 and features the exact HTML controls which are allowed by Mantis itself. I encourage you to report any bugs you find or improvements you need on the Mylyn-Mantis issue tracker. I hope that in a couple of releases this component will be stable enough to leave the experimental state.

Real names displayed for comments

Whenever available, the real names are displayed for comment authors.

Performance improvements

There was one more action which could freeze the task editor while opening, and it has been fixed. It especially affected repositories in offline mode.

Maven Recipe : GWT development profile

It’s no secret that I am a fan of GWT for web development. I believe it to be a superior solution for large-scale Javascript development. However, it does come with some downsides. Verbosity is one of them, but we have a solution for that – see how to cut down GWT’s verbosity. Another one is the long compilation time.  Since GWT generates permutations for multiple browser targets – 6 in version 2.1 – you will wait more than needed if you just need to compile for one browser.

It often is the case that a single-permutation application is deployed for smoke testing, and then a application with all permutations is deployed to Q&A. This is usually achieved by creating a development module which reduces the number of permutations to one. I will show you how to integrate this in a natural way into your Maven build.

I will start with the simplest possible Maven/GWT project, as shown below:

I will not insist over the contents of the project, as it is not important. The project only has one client-side class, and is based on the archetype from the excellent gwt-maven plugin from Codehaus.

In the pom.xml, the module to compile is configured to be the production one:

<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>gwt-maven-plugin</artifactId>
 <version>2.1.0-1</version>
 <!-- contents omitted -->
 <configuration>
  <!-- contents omitted -->
  <module>ro.lmn.maven.recipe.gwtdev.ProfileDemo</module>
 </configuration>
</plugin>

A compiler run currently generates six permutations and takes 23 seconds on my machine. I am lucky to have four cores at my disposal, but usually build server CPU time is scarce, so the effect is amplified.

robert@neghvar:~/git-repos/gwtdev-profile (master)> mvn clean package
...
[INFO] --- gwt-maven-plugin:2.1.0-1:compile (default) @ gwtdev-profile ---
[INFO] Compiling module ro.lmn.maven.recipe.gwtdev.ProfileDemo
[INFO]    Compiling 6 permutations
[INFO]       Compiling permutation 0...
[INFO]       Process output
[INFO]          Compiling
[INFO]             Compiling permutation 1...
[INFO]       Compiling permutation 2...
[INFO]       Compiling permutation 3...
[INFO]       Compiling permutation 4...
[INFO]          Compiling
[INFO]             Compiling permutation 5...
[INFO]    Compile of permutations succeeded
[INFO] Linking into /home/robert/git-repos/gwtdev-profile/target/gwtdev-profile-1.0-SNAPSHOT/ProfileDemo
[INFO]    Link succeeded
[INFO]    Compilation succeeded -- 22.702s
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 29.101s
[INFO] Finished at: Sat Mar 05 23:59:24 EET 2011
[INFO] Final Memory: 12M/142M
[INFO] ------------------------------------------------------------------------

To cut down on compilation time I will use a Dev module which compiles just for recent versions of FireFox:

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to="ProfileDemo">
 <inherits name="ro.lmn.maven.recipe.gwtdev.ProfileDemo" />
 <set-property name="user.agent" value="gecko1_8" />
</module>

To select it in my pom.xml I will create a dev profile, which overwrites some of the configuration entries of the gwt-maven-plugin:

<profiles>
 <profile>
 <id>dev</id>
  <build>
   <plugins>
    <plugin>
     <groupId>org.codehaus.mojo</groupId>
     <artifactId>gwt-maven-plugin</artifactId>
     <configuration>
      <module>ro.lmn.maven.recipe.gwtdev.ProfileDemoDev</module>
      <draftCompile>true</draftCompile>
     </configuration>
    </plugin>
   </plugins>
  </build>
 </profile>
</profiles>

For added speed, I’ve enabled draft compilation, which means that the GWT compiler will spend less effort on trying to optimise the resulting javascript.

Rerunning the build with the -Pdev argument results in just one permutation being generated:

robert@neghvar:~/git-repos/gwtdev-profile (master)> mvn -Pdev clean package
...
[INFO] --- gwt-maven-plugin:2.1.0-1:compile (default) @ gwtdev-profile ---
[INFO] Compiling module ro.lmn.maven.recipe.gwtdev.ProfileDemoDev
[INFO]    Compiling 1 permutation
[INFO]       Compiling permutation 0...
[INFO]    Compile of permutations succeeded
[INFO] Linking into /home/robert/git-repos/gwtdev-profile/target/gwtdev-profile-1.0-SNAPSHOT/ProfileDemo
[INFO]    Link succeeded
[INFO]    Compilation succeeded -- 14.091s
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.939s
[INFO] Finished at: Sun Mar 06 00:08:55 EET 2011
[INFO] Final Memory: 11M/104M
[INFO] ------------------------------------------------------------------------

The speed saving is of 35% and will likely increase as the GWT code increases in size and complexity.

We have reached our goal of creating a GWT development profile. By using a Maven profile we can make minimal modifications to our configuration and even apply different compiler options.

The complete source code for this article is available at https://github.com/rombert/Maven-Recipe—GWT-development-profile. If you have any suggestions or corrections, please comment. Or better yet, fork me.

Mylyn-Mantis connector 3.3.1 released

This version rounds up a number of small fixes and enhancements.

Better search dialog integration

Searching for an nonexistent issue now pops up  an informative dialog, rather than a scary internal error one.

Attachment page enhancements

The attachment description fields is superfluous, and was removed. Comments are now created if specified.

Sub-task creation enhancements

A manual sync was needed to enable the ‘Create Subtask’ action on existing tasks. This requirement has been removed. Also, new sub-tasks have custom fields added before creation.

Increased responsiveness

Previously it was possible for the connector to require a sync when in offline mode, or when rendering the task editor, which resulted in delays in the user interface. This has now been fixed.

Mylyn-Mantis connector 3.3.0 released

The 3.3.0 release focuses on usability issues, aiming to make connector simpler to use and closer to the brower-based MantisBT experience.

Repository dialog improvements

We now recognized when the task repository returns a HTTP redirect, which usually signals that another location should be specified. The user is properly notified, instead of being presented an error dialog.

As you might notice from the above screenshot, we no longer require you to enter the full path to the repository location. Although we support the old setting, we encourage you to enter just the base path to your MantisBT installation.

Moving towards a more automatic style of configuration also means that this is the last version which will support MantisBT installations older than 1.1 . So for the 3.4.0 release we will not support MantisBT 1.0 anymore.

When validating a repository which have know problems which can lead to data loss the user is warned.

Edit task relations for existing tasks

It is now possible to edit relations for tasks which are submitted to the repository. Previously this was only available for unsubmitted tasks.

Much improved progress reporting

The progress dialogs now reflect the correct state when synchronising queries. Previously it would stall at 0%, and not display progress when queries or tasks changes were processed.

Hide ETA and projection when disabled

The ETA and projection fields can be disabled from the MantisBT configuration. If they are, we will not show them anymore.

Mylyn-Mantis connector 3.2.0 released

Version 3.2.0 is a major feature release, comprising of performance enhancements, complete support for localised MantisBT repositories and better support for repository-configured settings.

Performance enhancements

Refreshing the repository configuration is usually slow due to large number of configuration settings that are retrieved. A first step towards making this faster is to implement refreshing the configuration of a single project only. This feature is now implemented and you can refresh only a single project’s attributes using the corresponding task editor button .

Refresh project attributes only

In our tests this cuts down synchronization time from 28 seconds to 6 seconds for a MantisBT installation with 16 projects.

Complete support for localised repositories

We now consider support for localised repositories complete. If it works for an English installation, it should work for any other installation. This includes repository attribute values, mapping priorities and resolutions and task list decorations.

Please note that task attributes will not be properly displayed in certain circumstances, due to a bug in the MantisBT SOAP API – see Troubleshooting: empty attributes in task editor for more details and possible fixes. The good news is that this has already been fixed in MantisBT and will be available in the next stable release.

Better support for repository-configured defaults

All configurable default values for fields ( severity , steps to reproduce etc ) are now preselected when a new task is created. Also, the ‘resolve as’ action preselects the configured status from the repository, rather than defaulting to the current status of the task.

Repository validation enhancements

The unknown error dialog we recently introduces was relatively uncut and appeared in too many circumstances. We know have better detection of predefined error cases and in consequence do not show the dialog that often. In addition, there is a real hyperlink which points to the Mylyn-Mantis troubleshooting page.

We’re confident that this is the best release to date, so download it and give it a spin. If you encounter any issues, let us know through our bugtracker or support forum.