Spring Tool Suite 3.8.4: New and Noteworthy

General introduction video to the Spring Tool Suite

Josh Long published a nice Spring Tips video, introducing the Spring Tool Suite.


This video doesn't feature all the latest enhancements and changes from this 3.8.4 release, but provides a great introduction to the Spring Tool Suite in general.

Updates and New/Enhanced Features in 3.8.4

Eclipse Neon.3 (4.6.3)

The default STS distribution is now based on the recently released Eclipse Neon.3 (4.6.3) release.

Pivotal tc Server updated to 3.2.4.SR1

The latest Pivotal tc Server release 3.2.4.SR1 is now included in the STS distribution bundle.

Early Access for Eclipse Oxygen 4.7 available

Since STS 3.8.4 we have early-access versions available for the latest Eclipse Oxygen 4.7 builds. You can find the update site here:

https://dist.springsource.com/release/TOOLS/update/e4.7

Attention: Eclipse Oxygen M6 has a severe bug that prevents the JEE, Java, and STS packages working properly. If you want to install STS into Eclipse 4.7, you need to make sure to use post-M6 builds of Eclipse Oxygen as a base.

You can also download complete STS distribution packages based on early Eclipse 4.7 versions from our nightly downloads page at: https://dist.springsource.com/snapshot/STS/nightly-distributions.html. Those distribution packages already contain a fix for the bug and therefore can be used out-of-the-box.

Eclipse Data Tools removed

Due to various users reporting issues related to the Eclipse Data Tools that we included in STS, we decided to remove those features from the default STS distribution. We added an item to the dashboard extension install listing that makes it easy for you to get them back into your STS in case you would like to use them. More details on the exact issue behind this can be found here: https://issuetracker.springsource.com/browse/STS-4416

Buildship 2 import strategy for Getting Started Wizards

The "New Spring Starter Project" and "Import Getting Started Content" now provide a "Buildship 2.x" import strategy. For backwards compatibility the old import startegy which supports "Buildship 1.x" is also still available.




This allows you to use the STS wizards to import those projects while using the new version of the Buildship project in the same installation. STS recognizes the installed version of the Buildship plugin and offers the matching option in those wizards automatically. For more information about Buildship version 2, here is the announcement blog post: https://blog.gradle.org/announcing-buildship-2.0

Revamped UI for the "New Spring Starter" and "Edit Starters" Wizards

Users can now specify a custom initializr service in the first page of the wizard. A new dropdown widget at the top of the page allows users to type a URL or select one from the dropdown. URLs entered in the widget will be saved in the Initializr Preference page only after the starter wizard finishes, and users can edit the URLs from there. The content of the wizard dynamically changes when a valid service URL is entered.

This is particularly useful when you have your own or even multiple custom spring initilizr services running in-house.



The UI for the dependencies page now features a more intuitive two-column layout. Available dependencies are shown in the left column and selected dependencies on the right. A search box at the top of the first column filters the list of available dependencies.

You can easily select dependencies from the left list by checking them and remove them from the list of selected items on the right via the grey "x" in front of their name.


There are also links to further documentation available for most of the spring boot starter modules. Hover with the mouse over the item and links to the relevant documentation will appear.


If you edit your dependencies in the pom.xml editor that comes with Eclipse and STS, we added a shortcut to open the wizard to the list of available content-assists. That way you can easily open the wizard and add or remove spring boot starter modules to and from your pom.xml file.



Spring Cloud CLI Integration - Local Services in the Boot Dash

Spring Cloud CLI available services are shown in the Boot Dashboard under local run target below the Spring Boot project entries. The Boot Dashboard provides the expected life cycle management control features over Cloud services provided by Spring Cloud CLI such as starting and stopping a service. In order to see these services in the Boot Dashboard one would need to point STS to a Spring Boot CLI installation with Spring Cloud CLI installed in it via preferences Spring->Boot->CLI.

Attention:The current limitation with this STS integration is that it is not aware of any Spring Cloud CLI services that you started started manually on the command line (instead of within STS).

There is also an option in the dashboard view menu to disable (and hide) the local cloud services from your boot dashboard, in case you don't want to use this and don't want to spend cycles to access them.




Cloud Foundry - Added support for "routes"

Users can now specify routes with paths, or TCP routes with ports if the Cloud Foundry target supports TCP.


Attention: "random-route" property does not yet work with "routes", so if specifying a TCP route, an explicit port needs to be set in the route.

We also added content assist and basic validation in the manifest editor. The basic validation in the manifest editor detects if legacy domain(s), host(s) or no-hostname were used with the new routes property in the same manifest and report errors appropriately.


The merge dialog for deployment manifests also got support for routes. Additional paths on routes are not yet supported (known limitation). That will follow soon.


Important Changes and Fixes


Important Notes for 3.8.4

Issues now tracked on GitHub Issues

Issues around the Spring Tool Suite and the Spring IDE are tracked on GitHub from now on: https://github.com/spring-projects/spring-ide/issues.

Thanks for using the automatic error reporting

We would also like to thank our users for using the automated error reporting that we included since the 3.8.2 release and for sending us all those error reports. We used them to fix issues and improve reliability in this release. And we will continue to do that. So please keep those error reports coming!

macOS Sierra causes lost settings and lost add-on installs

If you unpackage the STS archive on macOS Sierra and use it without moving it to a different location on your drive, macOS Sierra Gatekeeper activates a security feature called "Path Randomization" for the app. This causes the STS.app bundle to be copied to a private and randomized read-only folder on your disc every time you start STS after a restart of your machine. As a result, all your third-party installs are lost as well as your global configuration. As a workaround, please move the STS.app bundle to a different location on your drive before starting it.

Manual Maven support going to be removed soon

We plan to remove the support for manual Maven projects from STS and Spring IDE in future versions of STS and Spring IDE. The manual maven support was used in the past when projects used Maven, but didn't opt-in to use the direct Maven support in Eclipse via the m2e project. While projects can still decide to not use m2e for their projects, the support for that via additional menu actions in STS will be gone.



Miscellaneous

Issues resolved in this release

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

STS issue tracker

Spring IDE issue tracker

Please remember that we will close those issuetrackers soon and move to GitHub issues.


Useful Links

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

STS Issue tracker: https://github.com/spring-projects/spring-ide/issues


Known issues in this release

macOS Sierra might cause loss of settings and installed plugins

If you unpackage the STS archive on macOS Sierra and use it without moving it to a different location on your drive, macOS Sierra Gatekeeper activates a security feature called "Path Randomization" for the app. This causes the STS.app bundle to be copied to a private and randomized read-only folder on your disc every time you start STS after a restart of your machine. As a result, all your third-party installs are lost as well as your global configuration. As a workaround, please move the STS.app bundle to a different location on your drive before starting it.

The corresponding issue in the STS issue tracker: STS-4406: STS 3.8.2 and MacOS Sierra

The corresponding bug at Eclipse: Bug 507328 - Eclipse forgets about global settings and installed features


Spring Boot dashboard ngrok tunneling feature doesn't support Spring Cloud Services yet

The Spring Boot Dashboards ngrok tunnel feature doesn't work yet with remote service registries from Spring Cloud Services. Instead it works with self-deployed Eureka service registry apps on CF only (as described here). We are working on enhancing the ngrok tunnel feature to directly support Spring Cloud Services in the near future. In the meantime we published a tech note that describes how to setup ngrok tunneling in combination with SCS manually.


Conflicting duplicate lifecycle mapping errors in Maven projects upgrading from STS 3.6.x

Sometimes Maven projects show up with a red error (talking about a duplicate lifecycle mapping conflict) after upgrading STS from 3.6.x to the latest 3.7.2 version. In this case, please update the Maven support for Eclipse/STS to the latest version, as described here: STS-4236.


Error after updating from STS 3.7.0

Sometimes after updating an existing STS 3.7.0 installation to 3.7.1 an error dialog pops up and STS doesn't start. This is a known but not yet solved problem. If you come across this issue, please press "OK" on the dialog and restart STS. It will open up fine, including all the updated components.


No repository available when checking for updates

If you have used a pre-release version of Eclipse Mars or STS, the embedded Eclipse Oomph technology created a cache of p2 repositores in your home directory. This cached p2 data can cause issues when using STS 3.7.0 or Eclipse Mars. The error message looks like STS/Eclipse fails to read information from the main Eclipse Mars p2 repository.

In case you encounter this error, please stop Eclipse/STS, go to your home directory, delete "~/.eclipse/org.eclipse.oomph.p2", and restart Eclipse/STS. The related Eclipse bug is: Bug 470912.


Live configuration-metadata generation requires Spring Boot 1.2.2

Spring Boot 1.2.1 configuration processor does not work correctly when executed from Eclipse's incremental build. This issue is fixed in Spring Boot 1.2.2. This only affects 'live' metadata generated from your own source code, not the metadata that is packaged inside spring-boot jars themselves. So you can still use older versions of Boot, but the 'live metadata' updates will not be accurate. See Spring Boot issue GH-2313 for details.


Dashboard and Retina Displays

When running STS 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 on top of a JDK8 build. The JavaFX version that comes with JDK8 supports retina displays.


Dashboard on JDK9

The JavaFX-based main STS dashboard doesn't work when running STS on top of an early-access version of JDK9. As a workaround run STS on a JDK8 or switch the dashboard back to the old (non-JavaFX-based) version via the preferences.


Silent loss of Functionality on Java 7 or earlier

STS 3.8.0 requires a JDK 8 to run on top of. If you are running it with an older JDK this may not be immediatlely apparant, but some of STS functionality will simply be 'absent' because the corresponding plugins are automatically disabled by OSGI because their requirements are not satisfied at runtime. See also below 'Setting the JDK'.


Setting the JDK

STS 3.8.0 requires a JDK 8 to run on top of. Nevertheless the native Eclipse launcher component might pick up a JRE or an older JDK automatically if you don't specify which JDK to run STS on top of. To avoid this, you can specify the JDK in the sts.ini file that comes with your STS installation. Add a line at the beginning "-vm" and an additional line below that which points to the "javaw" executable of the JDK on your machine.


Issues on Linux (GTK3)

Eclipse 4.5, upon which STS and GGTS are based, is the first Eclipse release where GTK3 is the default for the SWT widget library. There are some issues with this still:

You may also experience other UI rendering glitches. If you exprience any of these problems you can avoid them by forcing SWT to switch back to using GTK2. Just set the environment variable "SWT_GTK3=0" before launching STS or GGTS.


New and Noteworthy for previous releases

STS 3.8.0 - 3.8.3

STS 3.7.3

STS 3.7.2

STS 3.7.1

STS 3.7.0

STS/GGTS 3.6.4

STS/GGTS 3.6.3.SR1

STS/GGTS 3.6.3

STS/GGTS 3.6.2

STS/GGTS 3.6.1

STS/GGTS 3.6.0

STS/GGTS 3.5.1

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