A Pivotal liberou recentemente a versão 3.9.1 do Spring Tool Suite (STS), a IDE baseada no Eclipse para o desenvolvimento de aplicações usando o framework Spring.
Nessa versão, o STS foi atualizado para o Eclipse Oxygen.1a, que suporta o JDK 9 e JUnit 5 com algumas customizações.
JDK 9
O compilador do Eclipse para o Java implementa todas as novas melhorias do Java 9. A IDE adicionou novas funcionalidades para suportar o Java Modules, incluindo atualizações no compilador e funcionalidades de busca.
A documentação do Eclipse diz que não é mandatório o runtime do Java 9 para suportar o Java 9. Entretanto, o runtime do Java 9 deve estar no build path para a compilação de um projeto modular.
Um projeto existente não modular pode ser convertido para um projeto modular criando um module.info para o projeto.
Fonte: Eclipse documentation
Uma biblioteca ou container podem ser adicionados ao module path ao invés do classpath.
Fonte: Eclipse documentation
A busca do Java agora inclui o escopo "Module".
Source: Eclipse documentation
JUnit 5
De acordo com a documentação do Eclipse Oxygen.1a, o suporte ao JUnit 5 inclui:
- Criação de teste JUnit Jupiter via New Junit Test Case wizard;
Fonte: Eclipse documentation
- Um desenvolvedor pode adicionar a biblioteca do JUnit 5 ao build path;
- Criar um método de teste do JUnit Jupiter com o novo template test_jupiter;
- Criar um método @TestFactory com o novo template test_factory;
- As classes JUnit Jupiter's Assertions, Assumptions, DynamicContainer e DynamicTest agora são adicionados ao Eclipse Favorites por padrão;
- É possível fornecer tags para serem incluídas ou excluídas de um teste em execução em Configure Tags do JUnit launch configuration.
Consulte a documentação para a lista completa de funcionalidades.
A documentação do Eclipse declara que se um desenvolvedor está executando um teste JUnit 5 através do @RunWith(JUnitPlatform.class) no Eclipse sem suporte ao JUnit 5, significa que o executor de testes padrão em launch configurations é o JUnit 4. O desenvolvedor deve mudar o executor para o JUnit 5 ou remover o JUnit 4 de forma que novas launch configurations serão criadas com o executor de testes do JUnit 5.
A documentação também destaca:
Também não suportamos testes em execução em uma configuração onde um build antigo do Eclipse (sem suporte ao JUnit 5) está usando o novo build do Eclipse(com suporte ao JUnit 5) como alvo. Desenvolvedores que tem bundles de tempo de execução do JDT JUnit (org.eclipse.jdt.junit.runtime, org.eclipse.jdt.junit4.runtime) também terão o mesmo problema. É esperado que seja utilizado o novo build do Eclipse para o desenvolvimento.
Alertas de compatibilidade
O STS inclui um alerta de compatibilidade do JDK9 para projetos usando o Spring Boot 1.5.x ou anterior que tem plugin de build não compatível com o Java 9. Nesses casos, a documentação do STS 3.9.1 recomenda executar a IDE no JDK8. Os desenvolvedores podem configurar ainda a JRE do Java 9 e desenvolver aplicações Java 9, mas a IDE em si deve executar no runtime do Java 8.
Novos templates de códigos
Novos templates de código foram adicionados para meta anotações tais como GetMapping, PostMapping, PutMapping, e DeleteMapping.
Fonte: STS Documentation
Outras melhorias notáveis
- Versão macOS do STS vem como DMG;
- Pivotal tc Server atualizado para a versão 3.2.8;
- Conversão automática de arquivos de propriedade do Spring boot para YAML;
- Spring Cloud CLI completamente guiado ao usuário ao invés de auto instalação;
- Experimental: uso do wrapper Spring Boot Thin JAR para execução de aplicações do Spring boot.
De acordo com o blog do Spring, a versão STS 3.9.2 está agendada para ser liberada sobre o Eclipse Oxygen.2 (4.7.2) no final de Dezembro de 2017.