Spring Tool Suite & Groovy-Grails Tool Suite 3.2.0: New and Noteworthy

General Updates

Eclipse Juno (4.2) SR2 and Eclipse Kepler (4.3) Milestone support

STS and GGTS 3.2.0 are now shipping on top of the latest Eclipse Juno SR2 release. In addition to the Eclipse Juno SR2 release, we also updated the following components to their latest versions:

From this release on we provide p2 repositories for the latest Eclipse Kepler 4.3 milestone builds. The p2 repository is located here: http://download.springsource.com/release/TOOLS/update/e4.3

vFabric tc Server Developer Edition updated to 2.8.2

STS and GGTS now ships with the latest vFabric tc Server Developer Edition 2.8.2.


The GGTS distributions now include Grails 2.2.1 and the Groovy 2.0.7 compiler.

Performance Improvements

We are working on improving performance all over the place in STS and GGTS. At the same time, the Eclipse platform team is also working on solving performance issues in the new platform UI implementation, also known as the Eclipse 4.2 platform. STS/GGTS 3.2.0 adopts the latest changes from the Eclipse Juno SR2 release, which contains a lot of fixes from the Eclipse team.

We still recommend using the STS/GGTS builds on top of Eclipse 3.8 in order to achieve maximum performance and stability, but the performance of STS/GGTS on Eclipse 4.2.2 has improved a lot.

Support for Retina displays on OSX

In the same way as Eclipse Juno SR2, STS now supports high-res retina displays on Mac OSX. Enjoy!

New detailed license information

While the Spring Tool Suite and the Groovy/Grails Tool Suite is published as open-source under the Eclipse Public License 1.0, the download bundle also includes tc Server Developer Edition, which is not open-source and therefore cannot be published under the same license. Therefore we have included detailed licensing information for all the parts of the download bundle.

Spring Development Tools

Performance Improvements

We are working on improving performance inside the Spring tooling. This targets two areas:

STS 3.2.0 contains a number of fixes in both areas. We were able to improve performance in certain areas of the additional Spring project builders by a factor of 10. However, there is still more work to do and we will continue working on this within the next release cycle.

For additional information and continuous progress reports, take a look at the JIRA ticket for this: STS-3054 and watch the performance comparison screencast at the SpringSource Developer channel on YouTube (coming soon...)

Code completion and validation for common findBy.. methods in a Spring Data repository class

Code completion is now available for findBy... methods for properties that are defined inside the domain class associated with a Spring Data repository class

Code validation is added to check for consistency between parameter type of a findBy... method and the corresponding property type defined in the associated domain class.

Live Beans Graph

This release introduces a new tree mode for the Live Beans view. Beans are grouped by the resource from which they originate and expanding a bean will list all beans it depends on or is injected into. This display mode can be toggled with the graph mode from the toolbar of the Live Beans view.

For this release, the Live Beans Graph has switched to a horizontal tree layout. We plan to continue to optimize the graph layout as we evolve the Live Beans Graph feature.

A new popup menu has been introduced to allow users to switch between applications that have been loaded in the Live Beans Graph view. We have also added a refresh button to the view's tool bar that will retrieve the latest Spring beans model and redraw the graph.

The Live Beans view menu can be used to switch between "Group by resource" and "Group by context" modes. Also Inner Beans can now be displayed in both modes. They are filtered out by default, but this setting can be changed from the view menu.

The Live Beans Graph feature requires applications to be running Spring Framework 3.2. Applications that do not support this feature will now appear greyed-out in the tc Server Live Beans Graph applications list.

Support for Spring Integration 2.2

The Spring Integration visual editor component of the Spring Config Editor has been updated to support Spring Integration 2.2 and its new adapters. Below is an example that uses the Spring Integration Mongo adapter.

Regular expression support for @RequestMapping validation

We now support regular expressions inside path variables when validating @RequestMapping annotations.

Spring Template project wizards warns in case of missing bundles

In this release we have improved the template project wizard by adding a warning to indicate when a bundle is required for a template project that is about to be created but is not currently installed. You can either proceed with the project creation and install the feature that includes the missing bundle, or cancel the wizard, install the feature and then create the project again to ensure project compiles properly on creation.

In case you use the Spring Tool Suite distribution download, we take care of having everything installed by default for all the available template projects, so you should never see this warning. But in case you have installed the Spring Tool Suite tooling into an existing Eclipse installation, you might not have the Maven Integration for Eclipse already installed, for example. In that case, the warning will point you towards the missing bundle or feature.

The future plan for this is to automate the installation of the required feature when the template is used.

vFabric tc Server Integration for Eclipse

Update to support tc Server 2.8.2

Support for the latest vFabric tc Server Developer Edition 2.8.2. has been added.

Improvements to tc Server instance creation wizard

The wizard now allows to use existing instance from any location on your disk. In addition, if you want to create a new instance it lets you choose any location for it.

Improvements to the New Server wizard

When creating a new tc Server instance and selecting a template the wizard will now prompt for missing template properties values. The wizard will also provide default values if defined in the template.

Groovy and Grails Development Tools

Groovy 2.1

Groovy 2.1 is now available as an optional add-on from the GGTS extensions page. To install, open the extensions page, select Groovy 2.1 Compiler for Groovy-Eclipse, and click Install.

Groovy 2.1 @DelegatesTo annotation

There is now support for the new Groovy 2.1 @DelegatesTo annotation. This annotation specifies the delegate type of a closure that is passed as a parameter to a method. Using this annotation will provide Groovy-Eclipse with enough information to populate proper content assist, search, hovers, navigation, and other editor features. For example:

The script in the screenshot above uses @DelegatesTo to indicate that the closure in the doit() method uses an Executor as its delegate type. You can see that in the closure defined at the bottom that Groovy-Eclipse knows that the invocation of the execute() method corresponds to the expected method declaration in Executor.

Groovy 2.1 Static Type Checker DSLs

Groovy 2.1 static type checker extensions are now supported in Groovy-Eclipse. For example, here is a simple static type checker extension using the new DSL provided by Groovy 2.1:

This script says that a robot variable is available in the script and that it has a method called move on it. When this script is used, you can see the hover support showing that the type of robot is correctly inferred to be Robot:

And if the move method is mispelled, you get a proper compile error:

Be aware that static type checker extensions must be available in an output folder or a jar on the classpath as source. This means that if you are working with an extension defined in a project, you must have script folders enabled for that project. You can configure them globally in Preferences -> Groovy -> Compiler, or on a per-project basis by going to your project properties:

Grails 2.2.1 and Groovy 2.0.7 included

GGTS 3.2.0 bundles the Grails 2.2.1 release and this version is also available from the dashboard if you need to install it into a non-GGTS distribution. Grails 2.2.1 requires the Groovy 2.0.7 compiler and so GGTS now also includes that version by default. Groovy 1.8 is still included and it is a simple matter to switch versions in the preferences page if there are projects that require that compiler level. The grails tooling in eclipse is still fully compatible with previous versions of Grails.

Editing support for Grails addTo* and removeFrom* methods

There is now content assist and hover support for the Grails addTo* and removeFrom* methods.

Calculating controller action return types now more precise

Now, calculating the actual return type of a controller action takes into account calls to redirect(). For example, the following controller uses nested redirects in its actions. The show action conditionally redirects to the create action, which conditionally redirects to the update action:

When the controller is referenced (in a unit test, for example), you can see content assist support for all values returned by the action and its transitively redirected other actions:

The return values from show, create, and update are all available through content assist.

Easier way to fix compiler version mismatches

If you have Groovy projects with compiler mismatch errors on them (for example if you switch your workspace between Groovy 1.8 and 2.0), then you will see errors like this:

It is now simpler to fix these problems, by right-clicking on a broken project -> Groovy -> Fix compiler mismatch problems:

The following dialog appears and lets you change the compiler level for an individual project or all of the projects and even lets you change the workspace compiler level:

Gradle Integration

There is now an option to automatically refresh Gradle Dependencies. When the option is enabled, anytime a .gradle file is changed any Gradle Dependencies classpath element of any Gradle Project in the containing Gradle project hierarchy will be refreshed automatically after a configurable delay.


Issues resolved in this release

Here is a full list of resolved bugs and enhancement requests for the 3.2.0:

STS/GGTS issue tracker

Spring IDE issue tracker

Groovy-Eclipse issue tracker

Useful Links

Download STS: http://www.springsource.org/spring-tool-suite-download

Download GGTS: http://grails.org/products/ggts

STS/GGTS forum: http://forum.springsource.org/forumdisplay.php?32-SpringSource-Tool-Suite

STS/GGTS Issue tracker: https://issuetracker.springsource.com/browse/STS

New and Noteworthy for previous releases

STS/GGTS 3.1.0

STS/GGTS 3.0.0

STS 2.9.2

STS 2.8.1

STS 2.7.2

STS 2.7.1.SR1

STS 2.5.2.SR1