Spring Tool Suite & Groovy/Grails Tool Suite 3.5.1: New and Noteworthy

General Updates

Java 8

In addition to the general Java 8 support for the Eclipse Java tooling STS 3.5.1 now also contains the Java8 support patch for Eclipse WTP (for web projects) by default.

Groovy/Grails updates

GGTS now ships with Grails 2.3.8. Groovy 2.3 is available from the dashboard and some preliminary testing has been done to confirm Grails 2.4M2 works with this version of GGTS.

m2e-egit connector included

The EGit connector for the Maven integration is now included by default, so that you can checkout Maven projects from Git repositories right from within the IDE.

Bugfixes

We mostly worked in fixing existing and important issues for this 3.5.1 maintenance release. Please take a look at the list of fixed issues for details:

STS/GGTS issues fixed in 3.5.1

Spring IDE issues fixed in 3.5.1


Spring Tool Suite & Groovy/Grails Tool Suite 3.5.0: New and Noteworthy

General Updates

Java 8

Java 8 has now been officially released. You can grab the JDK here. Although the Eclipse Java8 support is available as a patch for Kepler (information here) we have to decided to include the necessary patches by default in our STS *and* GGTS distributions. This means either distribution supports Java8 development out-of-the-box.


In the case of GGTS it is possible to have groovy code and Java 8 code in the same workspace, but not in the same project. (See known issues below)


Updating an existing STS installation to the 3.5.0 release will *not* automatically install the Java8 support. This has to be done manually afterwards by selecting the Java8 support from the extension install (via the Dashboard -> Manage IDE Extensions). Updating an existing GGTS includes the Java8 support (for technical reasons).

Design updates

We updated the branding of the toolsuite distributions to match the latest style of http://spring.io.



Pivotal tc Server Developer Edition updated to 2.9.5.SR1

STS and GGTS now ship with the latest Pivotal tc Server Developer Edition 2.9.5.SR1.

Grails updated to 2.3.7

GGTS now ships with Grails 2.3.7.

STS startup time improvement

We are continuing our work to improve the performance of STS/GGTS and with this latest version you should find that STS starts a little quicker.

Already available for the upcoming Eclipse Luna release

A new update site is available to install the STS/GGTS components into an early milestone of the upcoming Eclipse Luna release: http://dist.springsource.com/snapshot/TOOLS/nightly/e4.4. This is a nightly update site that contains the latest bits. Full distribution builds that include Eclipse Luna 4.4 are also available from the nightly distribution download page: http://dist.springsource.com/snapshot/STS/nightly-distributions.html. There is a known issue with the Groovy and Grails tooling having some issues with changed APIs in this upcoming Eclipse release, which we are going to fix soon. The Spring tooling is ready to be used on Eclipse 4.4. The next version of STS and GGTS (3.6.0) is scheduled for July 2014 and will ship on top of the Eclipse Luna release.

New Dashboard Improvements

We received a lot of feedback on the forum about the new web-based dashboard in 3.4.0 - mostly telling us how much you missed the features of the old dashboard! So we've improved the look and feel of the dashboard, but also brought back the good stuff: RSS feeds, tooling updates, search support and even more getting started content. So, keep that feedback coming - we're listening.

The dashboard is based on leading-edge technology (using the JavaFX web browser) so that we can provide a more consistent and reliable user experience across platforms. That means that it will only work on recent versions of Java (1.7 and 1.8) and Eclipse (4.2, 4.3, and 4.4). Other configurations will fall-back to the old browser. (And, yes, if you're not quite ready for the future, you can still opt for the old dashboard by selecting the "Use Old Dashboard" option in the Dashboard Preferences page.)

The dashboard icon in the toolbar got an indicator icon added to show you when new feed items are available that you haven't read or seen yet. This allows you to keep the dashboard closed and still see if there are any news coming along.



In addition to that we changed the design of the dashboard to open separate new editors when you select something instead of opening new tabs inside the dashboard itself. This gives you a much more natural and browser-like experience when using the dashboard. For the sake of consistency, we also moved the extension installation part out of the dashboard and into a separate editor. You can still open it by clicking on the "Manage Extensions" button on the dashboard.



This also allows much more flexibility in arranging those different parts in your workbench. You can have the extension install part open and looking at the documentation page at the same time by moving those editors to different places in your workbench layout.



Spring Roo

Spring Roo support and the Spring Roo runtime is now installable from the dashboard rather than being directly included in STS.

Spring Tooling updates

Spring Boot: New Add/Edit Starters Dialog

To add and remove 'boot starter' dependencies to a Maven Spring Boot project, right click its pom and select "Add/Edit Starters" from the "Spring" context menu.

Edit Starters opens a dialog that lets you check or uncheck multiple starters to add or remove them from the pom:

Add Starter opens a simpler dialog that lets you add just one starter:

Note: one of these two dialogs (most likely the simpler "Add Starter") may be removed in future because the functionality they provide is so similar. If you have a preference please let us know! (jira)

Spring Boot: Jar-type Content Assist

For spring-boot projects STS keeps an index of potential types you may want on your boot project's classpath. STS will suggest these types even when they are not yet on your classpath. The 'Jar' suggestions are shown below any types already on your classpath and are recognisable by the special 'jar type' icon.

When you select a 'Jar Type' it will be imported as usual. In addition, the required dependency is added to your project's 'pom.xml' (This feature only works for Maven-based projects).

The Jar type content assist suggestion engine also detects the spring-boot version of spring-boot maven projects. This includes projects created via the 'New Spring Starter' wizard. The index file used to compute the suggestions is no longer embedded inside STS but downloaded for your specific version of spring-boot from a CloudFoundry web service. This allows us to update the suggestions for future versions of spring boot without requiring a new version of STS.

Open the Live Beans Graph for Standalone Spring Boot Apps

There is now an easy way to open the Live Beans Graph View for a Spring Boot App. Just run your app with Run As >> Spring Boot App. The needed VM arguments are added to your newly created launch configuration. Once the app is running you can open the Live Beans View from the Project's "Spring Tools" context menu.

Minimal Support for Running Spring Groovy CLI apps

You can now easily run Spring Groovy CLI apps from within STS. Right click a app.groovy file and select Run As >> Spring Groovy CLI. The app will be started and its output appears in a Eclipse Console.



A recent spring-boot runtime for running the app is automatically configured for you, but it can be overridden via preferences.



Support for Importing `General' Getting Started Content

The wizard for importing spring.io getting started content has been extended with a `General' content type. This allows it to import projects that don't have any explicit build-logic (pom.xml or build.gradle) as generic Eclipse projects.



Groovy-Eclipse

Groovy 2.2 available

Groovy Eclipse now includes Groovy 2.1 compiler by default but the Groovy 2.2 compiler is available and can be installed from the STS or GGTS Dashboard Extensions page.

Simple Refactorings Available as Quick Fixes

Simple refactorings are also available via quick fixes:

  • Extract to Constant
  • Extract to Local Variable
  • Convert Local Variable to Field


  • Gradle Tooling

    Aggregate Tasks Support

    Aggregate gradle tasks of a Gradle project is a union of all Gradle tasks for the project and all of its children. For example if one runs a Gradle task 'clean' this task would be run on the current project and all of its children. Gradle tasks view now supports two modes for displaying tasks of the selected project:

  • Tasks defined by selected project or any of its children projects
  • Tasks defined by the selected project
  • The toggle button in the Gradle Tasks view allows to switch the viewing mode. (Marked in red on the screenshot below)



    Tasks Launch Configuration

    Gradle Tasks Launch Configuration wizard Gradle Tasks tab contents have been redesigned. Instead of a Gradle tasks tree for picking Gradle tasks to run and a list to order gradle tasks the UI became a single Gradle tasks editor. The editor allows users to type in Gradle tasks as one would type them in the command line. The editor has content assist and error checking available:



    Tasks Quick Launcher

    Tasks Quick Launcher is available from Gradle project context menu Gradle group menu and from a view action in Gradle Tasks view. Tasks Quick Launcher is a small dialog similar to the Grails command prompt dialog that allows users to type in names of Gradle tasks to run. Content assist and error checking help to find and enter valid task names. Although the dialog immitates the gradle command line interface it only supports Gradle tasks, but not the Gradle command line interface commands.



    Working set context menu

    A Gradle actions menu has been added for a working set (just like Maven has). Now Gradle actions can be executed via this working set context menu. A Gradle action will be executed on all Gradle projects within a working set.



    "Refresh All" Action Performance Improvement

    The Refresh All action now executes Gradle project refresh operations on batches of projects under the same root project. This results in an order of magnitude running time improvement for the refresh operation in common refresh scenarios.

    Project Configurators Extension Point

    It is now possible to contribute project configurator classes via the org.springsource.ide.eclipse.gradle.core.projectConfigurators extension point. These classes allow clients to configure a project based on the information inferred from the project's Gradle model.

    Cloud Foundry Eclipse

    Spring Boot Support

    Cloud Foundry Eclipse 1.6.0 now allows Spring Boot applications to be pushed to a Cloud Foundry server instance within STS. Right-click the Spring Boot project in the workspace, and select Configure -> Enable as Cloud Foundry App:


    After this simple configuration step, the project can now be dragged and dropped to a Cloud Foundry server instance like any other application. The Cloud Foundry console will show the Spring Boot application being pushed and started in the Cloud Foundry server:



    1.6.0 only supports Java Spring Boot apps. That is, only Spring Boot apps that are packaged as jar files can be configured and pushed to a Cloud Foundry server instance.

    Private Clouds Using Self-Signed Certificates

    Cloud Foundry server instances can now be created to private clouds that use self-signed certificates. In the Cloud Foundry New Server wizard, click on Manage Cloud... in the credentials page. This opens a dialogue where a list of server URLs can be added.



    After adding a URL to a private cloud, the user may be prompted to keep the URL (select "Yes"), and afterward, when validating the user credentials, the wizard will detect that the server is using self-signed certificates and prompt the user whether to continue. If the user clicks "Yes" a second time, the Cloud Foundry plug-in will remember the decision for any future server instance creations using this URL.






    AJDT/AspectJ

    AJDT now includes the AspectJ 1.8.0.RC2 build. AspectJ has been rebased on the latest Eclipse Java8 compiler.



    Miscellaneous

    Issues resolved in this release

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

    STS/GGTS issue tracker

    Spring IDE issue tracker

    Groovy-Eclipse issue tracker


    Useful Links

    Download STS: https://spring.io/tools/sts/all

    Download GGTS: https://spring.io/tools/ggts/all

    STS/GGTS forum: http://forum.spring.io/forum/spring-projects/springsource-tool-suite

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


    Known issues in this release

    Dashboard and Retina Displays

    When running STS/GGTS on top of a JDK7, the new dashboard looks a bit blurry when using a HiRes (Retina) display, for example on a Retina MacBook Pro. This is due to the underlying browser technology that is used to display the dashboard content and that is coming from JavaFX. The JavaFX version that ships with JDK7 doesn't support retina displays. The solution for this is to run STS/GGTS on top of a JDK8 build. The JavaFX version that comes with JDK8 supports retina displays.


    Spring Roo 1.2.4 issue when using GWT add-on in combination with java.lang.Float or java.lang.Byte

    There was a bug reported against Spring Roo 1.2.4 about a problem when using the GWT support together with java.lang.Float (or Byte) field types. In case we hit this issue we recommend to download and use Spring Roo 1.2.3. You can configure the Spring Roo runtime that STS should use in the preferences (Preferences -> Spring -> Roo support).


    The issue in Roo is tracked here: https://jira.springsource.org/browse/ROO-3466


    Update: This problem has been fixed and will be available as part of Spring Roo 1.2.6.


    Mixed Java 8 and Groovy Setup

    The Groovy compiler at this time does not yet support Java 8 JVM. However, it is possible to use both Java 8 and Groovy in the same workspace if you use the following recommended setup to keep Groovy and Java 8 from stepping on eachother:

    The issue in Roo is tracked here: https://jira.springsource.org/browse/ROO-3466


    GGTS throwing exceptions when running on top of Eclipse 4.4

    There is an issue with the Groovy and Grails tooling throwing exceptions when running on top of Eclipse 4.4, due to incompatible changes to some internal APIs. We will provide a fixed version via the nightly update sites and distribution builds soon.



    New and Noteworthy for previous releases

    STS/GGTS 3.4.0

    STS/GGTS 3.3.0

    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.6.1.SR1

    STS 2.5.2.SR1