diff --git a/pom.xml b/pom.xml
index 7af92fbd11..7cb57a9077 100644
--- a/pom.xml
+++ b/pom.xml
@@ -577,12 +577,12 @@
spring-4
spring-5
+ spring-5-webflux
spring-5-mvc
spring-5-reactive
spring-5-reactive-client
spring-5-reactive-oauth
spring-5-reactive-security
- spring-5-reactive-netty
spring-5-security
spring-5-security-oauth
diff --git a/spring-5-reactive-netty/.gitignore b/spring-5-reactive-netty/.gitignore
deleted file mode 100644
index 70ed41e73a..0000000000
--- a/spring-5-reactive-netty/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-# Folders #
-**/.idea
-**/target
-
-# Files #
-*.log
-
-# Packaged files #
-*.jar
-*.war
-*.ear
\ No newline at end of file
diff --git a/spring-5-reactive-netty/README.md b/spring-5-reactive-netty/README.md
deleted file mode 100644
index 09f7cc0e24..0000000000
--- a/spring-5-reactive-netty/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-## Spring 5 Reactive Project With Netty Server
-
-Includes configuration options for Netty server.
diff --git a/spring-5-reactive-netty/pom.xml b/spring-5-reactive-netty/pom.xml
deleted file mode 100644
index 48fc0b201f..0000000000
--- a/spring-5-reactive-netty/pom.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
- 4.0.0
- com.baeldung
- spring-5-reactive-netty
- 0.0.1-SNAPSHOT
- spring-5-reactive-netty
- jar
- Spring 5 sample project about reactive web with Netty server
-
-
- com.baeldung
- parent-boot-2
- 0.0.1-SNAPSHOT
- ../parent-boot-2
-
-
-
-
- org.springframework.boot
- spring-boot-starter-webflux
-
-
-
- org.projectlombok
- lombok
-
-
-
- org.springframework.boot
- spring-boot-devtools
- runtime
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
diff --git a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/CustomNettyWebServerFactory.java b/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/CustomNettyWebServerFactory.java
deleted file mode 100644
index 8a1cdbba97..0000000000
--- a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/CustomNettyWebServerFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.baeldung.serverconfig;
-
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.channel.socket.nio.NioServerSocketChannel;
-import org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory;
-import org.springframework.boot.web.embedded.netty.NettyServerCustomizer;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import reactor.netty.http.server.HttpServer;
-
-@Configuration
-@Profile("skipAutoConfig")
-public class CustomNettyWebServerFactory {
-
- @Bean
- public NettyReactiveWebServerFactory nettyReactiveWebServerFactory() {
- NettyReactiveWebServerFactory webServerFactory = new NettyReactiveWebServerFactory();
- webServerFactory.addServerCustomizers(new EventLoopNettyCustomizer());
- return webServerFactory;
- }
-
- private static class EventLoopNettyCustomizer implements NettyServerCustomizer {
-
- @Override
- public HttpServer apply(HttpServer httpServer) {
- EventLoopGroup parentGroup = new NioEventLoopGroup();
- EventLoopGroup childGroup = new NioEventLoopGroup();
- return httpServer
- .tcpConfiguration(tcpServer -> tcpServer.bootstrap(
- serverBootstrap -> serverBootstrap.group(parentGroup, childGroup).channel(NioServerSocketChannel.class)
- ));
- }
- }
-}
diff --git a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/GreetingController.java b/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/GreetingController.java
deleted file mode 100644
index 9cb5b27ac5..0000000000
--- a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/GreetingController.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.baeldung.serverconfig;
-
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import reactor.core.publisher.Mono;
-
-@RestController
-@RequestMapping("/greet")
-public class GreetingController {
-
- private final GreetingService greetingService;
-
- public GreetingController(GreetingService greetingService) {
- this.greetingService = greetingService;
- }
-
- @GetMapping("/{name}")
- private Mono greet(@PathVariable String name) {
- return greetingService.greet(name);
- }
-}
diff --git a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/GreetingService.java b/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/GreetingService.java
deleted file mode 100644
index 5440f526aa..0000000000
--- a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/GreetingService.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.baeldung.serverconfig;
-
-import org.springframework.stereotype.Service;
-import reactor.core.publisher.Mono;
-
-@Service
-public class GreetingService {
-
- public Mono greet(String name) {
- return Mono.just("Greeting " + name);
- }
-}
diff --git a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/NettyWebServerFactoryPortCustomizer.java b/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/NettyWebServerFactoryPortCustomizer.java
deleted file mode 100644
index 152e1285aa..0000000000
--- a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/NettyWebServerFactoryPortCustomizer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.baeldung.serverconfig;
-
-import org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory;
-import org.springframework.boot.web.embedded.netty.NettyServerCustomizer;
-import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.stereotype.Component;
-import reactor.netty.http.server.HttpServer;
-
-@Component
-public class NettyWebServerFactoryPortCustomizer implements WebServerFactoryCustomizer {
-
- @Override
- public void customize(NettyReactiveWebServerFactory serverFactory) {
- serverFactory.addServerCustomizers(new PortCustomizer(8443));
- }
-
- private static class PortCustomizer implements NettyServerCustomizer {
-
- private final int port;
-
- private PortCustomizer(int port) {
- this.port = port;
- }
-
- @Override
- public HttpServer apply(HttpServer httpServer) {
- return httpServer.port(port);
- }
- }
-}
diff --git a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/NettyWebServerFactorySslCustomizer.java b/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/NettyWebServerFactorySslCustomizer.java
deleted file mode 100644
index d0ad0dcac5..0000000000
--- a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/NettyWebServerFactorySslCustomizer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.baeldung.serverconfig;
-
-import org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory;
-import org.springframework.boot.web.embedded.netty.SslServerCustomizer;
-import org.springframework.boot.web.server.Http2;
-import org.springframework.boot.web.server.Ssl;
-import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.stereotype.Component;
-
-@Component
-public class NettyWebServerFactorySslCustomizer implements WebServerFactoryCustomizer {
-
- @Override
- public void customize(NettyReactiveWebServerFactory serverFactory) {
- Ssl ssl = new Ssl();
- ssl.setEnabled(true);
- ssl.setKeyStore("classpath:sample.jks");
- ssl.setKeyAlias("alias");
- ssl.setKeyPassword("password");
- ssl.setKeyStorePassword("secret");
- Http2 http2 = new Http2();
- http2.setEnabled(false);
- serverFactory.addServerCustomizers(new SslServerCustomizer(ssl, http2, null));
- serverFactory.setPort(8443);
- }
-}
diff --git a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/ServerConfigApplication.java b/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/ServerConfigApplication.java
deleted file mode 100644
index 9d420cc7da..0000000000
--- a/spring-5-reactive-netty/src/main/java/com/baeldung/serverconfig/ServerConfigApplication.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.baeldung.serverconfig;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class ServerConfigApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(ServerConfigApplication.class, args);
- }
-}
diff --git a/spring-5-reactive-netty/src/main/resources/logback.xml b/spring-5-reactive-netty/src/main/resources/logback.xml
deleted file mode 100644
index 48b68c6bf1..0000000000
--- a/spring-5-reactive-netty/src/main/resources/logback.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
- %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
-
-
-
-
-
- netty-access.log
-
- %msg%n
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/spring-5-reactive-netty/src/main/resources/sample.jks b/spring-5-reactive-netty/src/main/resources/sample.jks
deleted file mode 100644
index 6aa9a28053..0000000000
Binary files a/spring-5-reactive-netty/src/main/resources/sample.jks and /dev/null differ
diff --git a/spring-5-reactive-netty/src/test/java/com/baeldung/serverconfig/GreetingControllerIntegrationTest.java b/spring-5-reactive-netty/src/test/java/com/baeldung/serverconfig/GreetingControllerIntegrationTest.java
deleted file mode 100644
index 3c2c08321a..0000000000
--- a/spring-5-reactive-netty/src/test/java/com/baeldung/serverconfig/GreetingControllerIntegrationTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.baeldung.serverconfig;
-
-import static org.mockito.Mockito.when;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.test.web.reactive.server.WebTestClient;
-import reactor.core.publisher.Mono;
-
-@RunWith(SpringRunner.class)
-@WebFluxTest
-public class GreetingControllerIntegrationTest {
-
- @Autowired
- private WebTestClient webClient;
-
- @MockBean
- private GreetingService greetingService;
-
- private final String name = "Baeldung";
-
- @Before
- public void setUp() {
- when(greetingService.greet(name)).thenReturn(Mono.just("Greeting Baeldung"));
- }
-
- @Test
- public void shouldGreet() {
- webClient.get().uri("/greet/{name}", name)
- .exchange()
- .expectStatus()
- .isOk()
- .expectBody(String.class)
- .isEqualTo("Greeting Baeldung");
- }
-}
diff --git a/spring-5-reactive-netty/src/test/java/com/baeldung/serverconfig/GreetingLiveTest.java b/spring-5-reactive-netty/src/test/java/com/baeldung/serverconfig/GreetingLiveTest.java
deleted file mode 100644
index 7c4a37c890..0000000000
--- a/spring-5-reactive-netty/src/test/java/com/baeldung/serverconfig/GreetingLiveTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.baeldung.serverconfig;
-
-import io.netty.handler.ssl.SslContext;
-import io.netty.handler.ssl.SslContextBuilder;
-import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
-import javax.net.ssl.SSLException;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.http.client.reactive.ReactorClientHttpConnector;
-import org.springframework.test.context.ActiveProfiles;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.test.web.reactive.server.WebTestClient;
-import org.springframework.test.web.reactive.server.WebTestClient.ResponseSpec;
-import reactor.netty.http.client.HttpClient;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)
-public class GreetingLiveTest {
-
- private static final String BASE_URL = "https://localhost:8443";
-
- private WebTestClient webTestClient;
-
- @Before
- public void setup() throws SSLException {
- webTestClient = WebTestClient.bindToServer(getConnector())
- .baseUrl(BASE_URL)
- .build();
- }
-
- @Test
- public void shouldGreet() {
- final String name = "Baeldung";
-
- ResponseSpec response = webTestClient.get()
- .uri("/greet/{name}", name)
- .exchange();
-
- response.expectStatus()
- .isOk()
- .expectBody(String.class)
- .isEqualTo("Greeting Baeldung");
- }
-
- private ReactorClientHttpConnector getConnector() throws SSLException {
- SslContext sslContext = SslContextBuilder
- .forClient()
- .trustManager(InsecureTrustManagerFactory.INSTANCE)
- .build();
- HttpClient httpClient = HttpClient.create().secure(t -> t.sslContext(sslContext));
- return new ReactorClientHttpConnector(httpClient);
- }
-}
diff --git a/spring-5-reactive-netty/src/test/java/com/baeldung/serverconfig/GreetingSkipAutoConfigLiveTest.java b/spring-5-reactive-netty/src/test/java/com/baeldung/serverconfig/GreetingSkipAutoConfigLiveTest.java
deleted file mode 100644
index 646742b3d7..0000000000
--- a/spring-5-reactive-netty/src/test/java/com/baeldung/serverconfig/GreetingSkipAutoConfigLiveTest.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.baeldung.serverconfig;
-
-import org.springframework.test.context.ActiveProfiles;
-
-@ActiveProfiles("skipAutoConfig")
-public class GreetingSkipAutoConfigLiveTest extends GreetingLiveTest {
-
-}
diff --git a/spring-5-reactive-netty/src/test/resources/logback-test.xml b/spring-5-reactive-netty/src/test/resources/logback-test.xml
deleted file mode 100644
index 12cedf5952..0000000000
--- a/spring-5-reactive-netty/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
-
-
-
-
-
-
-