Spring Tool Suite & Groovy-Grails Tool Suite 3.3.0.M1: New and Noteworthy

General Updates

Apache Maven removed

We removed the Apache Maven runtime package from the distribution package of the Spring Tool Suite in order to provide a lighter download. An Apache Maven runtime for internal Eclipse usage is included in the Maven Integration for Eclipse and therefore isn't required. Nevertheless you can configure a different Apache Maven runtim in the tooling via the preferences.

We also removed the outdated Spring IDE OSGi extension from the default distribution. You can still get it from the update repository manually.

All this is part of our overall effort to provide a more lightweight tooling (and distribution) and we might remove more parts from the default distribution in upcoming milestones and releases. If you would like to see certain parts removed (or added), let us know. Feedback is always very welcome and can be provided through the STS JIRA or by posting a comment on the forum.


Spring Development Tools

Support for JavaConfig only Spring projects

One of the major themes of STS 3.3.0 is to provide advanced support for JavaConfig and JavaConfig-only Spring projects. Therefore we added the option to configure @Configuration classes directly as Spring bean configs in the project settings (for those cases where you don't have any Spring XML config files anymore):

This allows you to benefit from the general tooling support for Spring projects without configuring a component-scanning element in a Spring XML config file just to make the tooling happy. You can select @Configuration classes directly from a filtered list of types that are available to your project:

Since Spring XML files and Spring JavaConfig classes are both now first-class citizens of the Spring tooling, you can use both to define your bean config sets to validate against specific scopes and bean profiles:

There is more to come as part of the next milestone (3.3.0.M2, shipping in early June) and the release of the Spring Tool Suite 3.3.0 (shipping in early July). We are very eager to get your feedback and hear about your experiences with the Java Config support in STS (and any new features you would like to see). Feedback can be provided through the STS JIRA or by posting a comment on the forum.


Groovy and Grails Development Tools

Groovy-Eclipse

GGTS 3.3.0.M1 comes with Groovy-Eclipse 2.8.0.M1. In this milestone, we have put significant effort into handling multiple compiler versions and stabilizing our static type checking support. More details are below

Editor templates

The Groovy editor now supports templating similar to the Java editor. For example, when you invoke content assist, and the prefix matches an available template, you will see it in the content assist menu:


After applying the template, you get a chance to tab through the template variables and edit them:


The list of templates are available in Preferences -> Groovy -> Editor -> Groovy Templates:


Here you can edit existing templates or create new ones:

Surround with...

The Groovy editor now supports surround-with templates. This allows you to surround a selection of code with a template (similar functionality exists in the Java editor). To access this functionality, select some text, and press CMD/CTRL+1:


All the surround-with templates appear as quick fixes. This functionality is also available by Right-click -> Surround with. Or by typing CTRL/CMD+ALT+Z:


Selecting the last line to Configure templates... will open up the template preferences page shown above. All templates that use a ${line_selection} variable will appear in the Surround With menu.

Compiler switching

There are some significant changes in the way multiple compilers are handled in the workspace now. The back end implementation for this has been completely rewritten using different OSGi functionality. From a user's perspective, most functionality should be the same, except for the following differences:

Navigation and hovers in binary Groovy files

Navigation to definitions and JavaDoc hovers are now supported in class files compiled from Groovy, when the source is available. You can see this here, when exploring the SwingBuilder class:

@DelegatesTo support

The Groovy 2.1 @DelegatesTo annotation is now supported in Groovy-Eclipse:


In the screenshot above, you can see the Email class and that it is being used as a delegate to the email function. The implementation is snipped, but you can see that when selecting the from field reference inside the closure, its definition is highlighted in the Email class. Also, the hover properly describes where the reference comes from.

Grails IDE

Grails 2.3 support

Grails IDE now includes preliminary support for the yet to be released Grails 2.3. One important note is that 2.3 has currently deprecated the install plugin command, and this means the plugin manager will *not* currently work in GGTS 3.3.0.M1. On attempting to use it you will see an error message indicating the current workaround. In subsequent milestones we will be looking to address this problem.


Issues resolved in this release

Here is a full list of resolved bugs and enhancement requests for the 3.3.0.M1:

STS/GGTS issue tracker

Spring IDE issue tracker

Groovy-Eclipse issue tracker


Useful Links

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

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

STS/GGTS forum: https://forum.spring.io/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.2.0

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