BT

IntelliJ IDEA 2017.3: Enhanced Support for Java EE 8, Spring Boot, and JUnit

| by Michael Redlich Follow 11 Followers on Dec 20, 2017. Estimated reading time: 3 minutes |

A note to our readers: You asked so we have developed a set of features that allow you to reduce the noise: you can get email and web notifications for topics you are interested in. Learn more about our new features.

JetBrains recently released version 2017.3 of their flagship product, IntelliJ IDEA, with a host of new features including enhanced support for Java, Java EE 8, Spring Boot, Kotlin, and Docker. This latest version comes just three months after the release of version 2017.2. Before this release, JetBrains provided a public review of this latest version to solicit feedback and bug reports from the community. We highlight some of these enhancements here.

Java EE 8

A few key features of Java EE 8 have been expanded to support for CDI 2.0 and HTTP/2 for Servlet 4.0.

Enhancements for CDI 2.0 include:

  • Asynchronous events - allows navigation between fired and received CDI asynchronous events
  • Dynamic beans - a CDI extension that allows navigation between an injection point and injected bean
  • Supports new built-in interfaces, RequestContextController and InterceptionFactory
  • Supports implicit (no beans.xml required) and explicit bean archives

A demonstration of CDI 2.0 asynchronous events is shown below.

The Java Servlet 4.0 specification (JSR 369) introduced a server push feature that includes a new interface, PushBuilder. As demonstrated below, this latest release of IntelliJ IDEA offers path completion for PushBuilder.

Configurable Command Line Shortener

When a project's classpath reaches the operating system's command line limit, the configurable command line shortener offers methods for shortening the classpath. Zlata Kalyuzhnaya, marketing manager at JetBrains, described the challenges of implementing this feature:

There are several approaches to shorten the classpath. Initially, IntelliJ IDEA tried to write the long classpath into the text file (which means an intermediate classloader to the application). But unfortunately, this didn't work for some frameworks, e.g. JMock. Then, IntelliJ IDEA tried to use a more or less standard way, which was to pack the long classpath into the classpath.jar. Unfortunately, that didn't work either, for some other frameworks.

And, sadly, there is no way to predict which kind of shortening would work for the user application. So the user is left having to make this decision. For Application, JUnit and TestNG configurations, 2017.3 provides a way to configure the shortener.

Spring Boot/Spring MVC

Additional support for Spring Boot and Spring MVC includes syntax highlighting for Spring Boot configuration files, Spring Boot 2.0 actuator endpoints, the Spring Cloud framework and automatic detection of an MVC context. As demonstrated below, it is now easier to navigate among related files in a Spring MVC application.

For Spring Boot 2.0 applications, the Run Dashboard provides pertinent actuator endpoint information while the application is running.

JUnit 5

While IntelliJ IDEA offered JUnit 5 support before the official release of JUnit 5, this latest release offers even more features including an option to migrate unit tests to JUnit 5. For example, consider the following JUnit 4 unit test:

    
import org.junit.Assert;
import org.junit.Test;

public class FirstTest {

    @Test
    public void myFirstTest() {
        Assert.assertEquals("one plus one should equal two", 2, 1 + 1);
        }
    }
    

Selecting the "Migrate to JUnit 5" from the inspection menu will transform the unit test to JUnit 5:

    
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

public class FirstTest {

    @Test
    public void myFirstTest() {
        Assertions.assertEquals(2, 1 + 1, "one plus one should equal two");
        }
    }
    

Resources

IntelliJ iDEA 2017.2: Smarter, Neater, and Faster by InfoQ (August 27, 2017)

IntelliJ IDEA 2017.3 EAP: Configurable Command Line Shortener and More by Zlata Kalyuzhnaya (October 11, 2017)

What's New in IntelliJ IDEA 2017.3 EAP for Java EE 8 by Zlata Kalyuzhnaya (October 17, 2017)

What's New in IntelliJ IDEA 2017.3 for Spring Boot by Zlata Kalyuzhnaya (November 3, 2017)

IntelliJ IDEA 2017.3: JUnit Support by Zlata Kalyuzhnaya (November 15, 2017)

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT