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

General Updates

Updated to Eclipse Kepler 4.3.0.RC2

The 4.x-based distributions of the STS and GGTS are now based on the latest Eclipse Kepler 4.3 release candidates in order to prepare for the 3.3.0 release of STS to be shipped on Eclipse Kepler 4.3. In addition to that we will continue to ship 3.8.2-based distributions of STS and GGTS, but they continue to ship the Java tooling of Eclipse 3.8/4.2 instead of the updated versions of Eclipse 4.3.

vFabric tc Server Developer Edition updated to 2.9.2

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

Quick Search for Eclipse

The new light-weight 'Quick Search' feature provides a simple yet effective text search popup dialog. The dialog was designed to have minimal overhead in terms of mouse-clicks and keypresses needed to open the dialog and jump to an interesting result.

A single keystroke (CTRL+SHIFT+L or CMD+SHIFT+L on Mac) opens the dialog from any context. The text selected in the current editor will be used to kick off the search initially. If the current selection is empty, your previous search will be used instead. Start typing to search for something else.

The search is incremental and updates the query of an ongoing search as you type. It also prioritizes what files to search first, based on what editors are currently open. This results in quick and responsive search experience even though it does not use a text index that needs to be kept up-to-date.

Use the arrow keys to quickly select an interesting result and press enter to open it in an editor.

Performance and Memory Footprint

We continued our work on general performance and memory improvements throughout the distribution.

Spring Development Tools

Ready for Spring 4

STS 3.3.0 now includes and uses the latest Spring 4.0.0.M1 libraries to parse and analyze your projects. This ensures Spring 4 projects work flawlessly in the Spring Tool Suite.

New Spring Project Wizard

New Spring projects and template based projects can now be created from one single wizard. Previous versions of STS featured two separate wizards, one for creating Spring projects from templates, and another from a Java project with additional Spring configuration.

STS 3.3.0.M2 has replaced both of these wizards with just one New Spring Project wizard, which can be opened from either the STS Dashboard, or from the File -> New... menu.

Much like the previous Spring Template wizard, which this new wizard is replacing, a user can create a project by choosing a template, as well as refresh and edit the list of available templates. In addition, a user can display self-hosted projects from the workspace.

The wizard also introduces Simple Projects, which allows users to quickly create a Spring project without any additional configuration aside from a project name. Unlike most templates that require further user input in subsequent pages, simple projects can be created right from the first page of the wizard.

The three types of simple projects are:

1. Simple Java: creates a basic Spring project based on a Java project without a top-level package, and with default Spring configuration. This is very similar to the old Spring Project wizard where a user was able to create a Spring Java project with additional Spring configuration. Although the only requirement is a project name, a user does have the option to navigate to subsequent pages for Simple Java to edit the default Spring configuration values, as well as modify the settings in the Java build page for the project.

2. Simple Spring Maven: creates a basic Spring project using Maven that contains a basic set of non-web Spring libraries. The user has the ability to create a Simple Spring Maven project using a choice of the following: Spring 3.2.3, 3.1.4, or 3.0.7.

3. Simple Spring Web Maven: creates a basic Spring web project using Maven that contains a basic set of Spring web libraries, like spring-web and spring-webmvc. The user has the ability to create a Simple Spring Web Maven project using a choice of the following: Spring 3.2.3, 3.1.4, or 3.0.7.

Finally, the New Spring Project wizard now allows users to select which version of Spring to use when creating and building a project. The options are to use the default Spring version defined in the template or simple project, or to select one of the following: 3.2.3, 3.1.4, 3.0.7.

Spring version support is not supported on all templates and Simple Projects. The drop-down UI for the Spring version selection is only enabled on certain templates and simple projects that support a range of Spring versions.

Support for JavaConfig only Spring projects

3.3.0.M1 introduced the basic support for JavaConfig only Spring projects. This second milestone focussed on fixing remaining bugs in this area and to make sure that validations and additional tooling (like autowire checks, AOP visualization, etc.) work in combination with JavaConfig only projects. Known limitations in this area include the Beans Graph, which is not yet JavaConfig-enabled, as well as additional menu entries and automatic mechanisms to configure JavaConfig projects more easily. We will continue to work on this for the 3.3.0 release (shipping in July 2013).

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.

Improved content-assist for Spring annotations

We have improved content assist for java configuration annotation by adding content assist for package name and class attributes, starting with the @ComponentScan annotation.

AspectJ Development Tools

OSGi-ification and Smaller install size

The AspectJ bundles have been repackaged as proper OSGi bundles. This includes the AspectJ runtime, weaver, and ajde bundles (i.e., the compiler bundles). The AJDT jars (i.e., the Eclipse integration) have always been proper OSGi bundles with proper, separate source bundles. Source and documentation have been extracted from the AspectJ binary bundles and placed into proper source bundles. There is a new feature in the AspectJ update site to install just the AspectJ compiler standalone, without any of the IDE support. With these changes, typical install size has been reduced by about 5 Mb.

Groovy-Eclipse 2.8.0.M2

Memory improvements

Significant memory improvements are now in Groovy-Eclipse. Here are some numbers. We imported the GPars project into an empty workspace of GGTS 3.2.0 (with Groovy-Eclipse 2.7.2) and also into an empty workspace of GGTS 3.3.0.M2 (with Groovy-Eclipse 2.8.0.M2). We also did the same for an empty Grails 2.2.2 project (i.e., run grails create-app and import the results). After a full clean-compile-clean-compile-GC-GC-GC cycle, you will notice a large difference in heap size:

GPars project Empty Grails project
STS 3.2.0
(Groovy-Eclipse 2.7.2)
348 Mb heap used 130 Mb heap used
STS 3.3.0.M2
(Groovy-Eclipse 2.8.0.M2)
133 Mb heap used 108 Mb heap used
Improvement 215 Mb 22 Mb

For compiling GPars, GGTS 3.3.0.M2 has more than 200 Mb smaller footprint. Empty Grails projects show a 22 Mb smaller GGTS footprint. For all the details, see GRECLIPSE-1633. Workspaces that declare enums or annotations in Groovy source will see this dramatic memory improvement. And there are other, smaller tweaks that apply memory improvements to all workspaces.

Better anonymous inner type support

There is now full editor support for anonymous inner types.

The outline view works as expected with the inner type appearing properly named and inside of the method that declares it:

Searching for references to methods declared in anonymous inner types works as expected:

And navigation works as expected. Navigating from a method reference will take you to its declaration and navigating from the super-type of the anonymous type will take you to its declaration.

More precise error locations

Error markers now more precisely cover the error that they are describing, specifically with missing type references. As you can see in Groovy-Eclipse 2.8.0.M2, missing types are fully underlined with red squiggles:

And the same class in Groovy-Eclipse 2.7.2 shows that the red squiggles are improperly placed.:

Smaller install size

We have repackaged the org.codehaus.groovy bundles and removed extraneous jar files. Install size of Groovy-Eclipse has been reduced by about 20 Mb.

Grails Development Tools

GGTS 3.3.0.M2 includes the Grails 2.2.2 release.

Issues resolved in this release

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

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.3.0.M1

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